C/C++知识点之c语言实现小游戏_三子棋
小标 2018-09-19 来源 : 阅读 1786 评论 0

摘要:本文主要向大家介绍了C/C++知识点之c语言实现小游戏_三子棋,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之c语言实现小游戏_三子棋,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

游戏规则:玩家走一步,电脑走一步。当然电脑怎么走的代码也是你写的。#include 
#include 
/*******************************************************************************/
//函数功能:初始化棋盘
/*******************************************************************************/
void init_chess(char (*chess_arr)[3])
{
 int i,j;
 printf("游戏开始:\n");

 for(i = 0;i<3;i++)
 {
  for(j = 0;j<3;j++)
  {
   *(*(chess_arr+i)+j) = ‘ ‘;
  }
 }
 for(i = 0;i<3;i++)
 {
  printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
  if(i!=2)
  {
   printf("\n---|---|---\n");
  }
 }
 printf("\n");
}
/*******************************************************************************/
//函数功能:玩家输入下棋的坐标
/*******************************************************************************/
void input_player_xy(char (*chess_arr)[3],int x,int y)
{
 int i = 0;
 if(chess_arr[x][y]==‘ ‘)
 {
  chess_arr[x][y] = ‘Y‘;
 }
 else
 {
  printf("该步以走过\n");
 }
 for(i = 0;i<3;i++)
 {
  printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
  if(i!=2)
  {
   printf("\n---|---|---\n");
  }
 }
    printf("\n");
}
/*******************************************************************************/
//函数功能:打印电脑下棋的坐标
/*******************************************************************************/
void input_computer_xy(char (*chess_arr)[3])
{
 int i = 0;
 for(i = 0;i<3;i++)
 {
  printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
  if(i!=2)
  {
   printf("\n---|---|---\n");
  }
 }
 printf("\n");
}
/*******************************************************************************/
//函数功能:确定玩家下棋的坐标
/*******************************************************************************/
void input_player(char (*chess_arr)[3])
{
 int x = 0,y = 0;
 printf("请下您的棋:");
 scanf("%d%d",&x,&y);
 input_player_xy(chess_arr,x,y);

}
/*******************************************************************************/
//函数功能:确定电脑下棋的坐标
/*******************************************************************************/
void input_computer(char (*chess_arr)[3])
{
 int i =0,j = 0;
 for(i = 0;i<3;i++)
 {
  for(j = 0;j<3;j++)
  {
   if(chess_arr[i][j]==‘ ‘)
   {
     chess_arr[i][j] = ‘O‘;
     goto flag;
   }
  }
 }
flag:
    input_computer_xy(chess_arr);
}
/*******************************************************************************/
//函数功能:主函数判断电脑还是玩家获胜
/*******************************************************************************/
int main()
{
 char chess_arr[3][3];
 int flag = 1;
 
 init_chess(chess_arr);
 while(flag)
 {
  int i = 0,j = 0;
  int diag_flag_player = 0,diag_flag_computer = 0,count = 0;
  input_player(chess_arr);
  input_computer(chess_arr);
  for(i = 0;i<3;i++)
  {
   if(((chess_arr[i][0]==‘Y‘)&&(chess_arr[i][1]==‘Y‘)&&(chess_arr[i][2]==‘Y‘))||
        ((chess_arr[0][i]==‘Y‘)&&(chess_arr[1][i]==‘Y‘)&&(chess_arr[2][i]==‘Y‘))
     )
   {
    printf("player win!\n");
    flag = 0;
    break;
   }
   if(((chess_arr[i][0]==‘O‘)&&(chess_arr[i][1]==‘O‘)&&(chess_arr[i][2]==‘O‘))||
             ((chess_arr[0][i]==‘O‘)&&(chess_arr[1][i]==‘O‘)&&(chess_arr[2][i]==‘O‘))
          )
   {
    printf("computer win!\n");
    flag = 0;
    break;
   }
      for(j = 0;j<3;j++)
   {
    if(chess_arr[i][j]!=‘ ‘)
    {
     count++;
    }
   }
   if(chess_arr[i][i]==‘Y‘)
   {
    diag_flag_player++;
   }
   if(chess_arr[i][2-i]==‘O‘)
   {
    diag_flag_computer++;
   }
  }
  if(diag_flag_player==3)
  {
   flag = 0;
   printf("player win!\n");
  }
  if(diag_flag_computer==3)
  {
   flag = 0;
   printf("computer win!\n");
  }
  if(count==9)
  {
   flag = 0;
   printf("player equal computer!\n");
  }
 }
 system("pause");
 return 0;
}

由于让大家看的清楚,没有放在多个文件中。我来解释电脑怎么走的:当人走完后电脑只要看见有空的位置就走。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved