码迷,mamicode.com
首页 > 编程语言 > 详细

【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合

时间:2015-10-20 19:39:40      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:c语言:编写一个棋盘游戏   数组的使用   电脑遍历整个数组   输入‘0’   玩家随意在数组arr[3][3]内下棋   但之前电脑或玩家下过的地方不可再下棋   

#include<stdio.h>
#include<stdlib.h>
char arr[3][3];
void print()
{
 int i=0;
 for(i=0;i<3;i++)
 {
  printf("%c|%c|%c|\n",arr[i][0],arr[i][1],arr[i][2]);
  printf("_|_|_|\n");
 }
}
void init_arr()
{
 int i=0;
 int j=0;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   arr[i][j]=‘ ‘;
  }
 }
}
void player()
{
 int i=0;
 int j=0;
 printf("输入i,j:\n");
 scanf("%d %d",&i,&j);
 i--;
 j--;
 if (arr[i][j]!=‘ ‘)
 {
  printf("此格已输入,请重新输入i,j:\n");
  player();
 }
 else
 {
  arr[i][j]=‘X‘;
 }
}
void computer_move()
{
 int i=0;
 int j=0;
 for(i=0;i<3;i++)
 {
  for(j=0;j<3;j++)
  {
   if(arr[i][j]==‘ ‘)
   {
    arr[i][j]=‘0‘;
    break;
   }
  }
  break;
 }
}
char win()
{
 int i=0;
 for(i=0;i<3;i++)
 {
  if((arr[i][0]==arr[i][1])&&
   (arr[i][1]==arr[i][2]))
  {
   return arr[i][0];
  }
 }
 
 for(i=0;i<3;i++)
 {
  if((arr[0][i]==arr[1][i])&&
   (arr[1][i]==arr[2][i]))
  {
   return arr[0][i]; 
  }
 } 
}
int main()
{
 char done;
 int i;
 int j;
 done=‘ ‘;
 init_arr();
 printf("棋盘游戏:\n");
  do
  {
   print();
   player();
   done=win();
   if(done!=‘ ‘)
   {
    break;
   }
   computer_move();
   done=win();
  }while(done==‘ ‘);
   if(done==‘0‘)
   {
    printf("电脑赢\n");
   }
   else
   {
    printf("玩家赢\n");
   }
   print();
   
}

 

    编写了五个函数,再用主函数调用技术分享技术分享

【经典游戏编程题】C语言:编写一个棋盘游戏,与二维数组结合

标签:c语言:编写一个棋盘游戏   数组的使用   电脑遍历整个数组   输入‘0’   玩家随意在数组arr[3][3]内下棋   但之前电脑或玩家下过的地方不可再下棋   

原文地址:http://10740184.blog.51cto.com/10730184/1704599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!