五子棋游戏

头文件:game.h

#pragma warning (disable:4996)
#ifndef _GAME_H_
#define _GAME_H_
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>




#define R 5
#define C 5


void play_person(char a[R][C],int r,int c);
void play_computer(char a[R][C],int r,int c);
void display_board(char a[R][C],int r,int c);
void is_board(char a[R][C],int r,int c);
char decide(char a[R][C],int r,int c);
int full(char a[R][C],int r,int c);
#endif


game.cpp


#include"game.h"
void is_board(char a[R][C],int r,int c)
{
int i=0;
int j=0;
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
a[i][j]=' ';
}
}
}
void display_board(char a[R][C],int r,int c)
{
int i=0;
for(i=0;i<R;i++)
{
printf("|_%c_|_%c_|_%c_|_%c_|_%c_|\n",a[i][0],a[i][1],a[i][2],a[i][3],a[i][4]);
}
}
void play_person(char a[R][C],int r,int c)
{
int i=0;
int j=0;
printf("想想走哪里呢?\n");
while(1)
{
scanf("%d %d",&i,&j);
fflush(stdin);
i--;
j--;
if((i>=0)&&(i<=R)&&(j>=0)&&(j<=C))
{
if(a[i][j]==' ')
{
a[i][j]='X';
break;
}
else
{
printf("请重新输入\n");
}
}
else
{
printf("请重新输入\n");
}


}


}
void play_computer(char a[R][C],int r,int c)
{
srand((unsigned int)time(NULL));
int x=0;
int y=0;
while(1)
{
int x=rand()%5;
int y=rand()%5;
if(a[x][y]==' ')
{
printf("电脑计算中\n");
a[x][y]='O';
break;
}
else
{
printf("请重新输入\n");
}
}
}


int full(char a[R][C],int r,int c)
{
int i=0;
int j=0;
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
if(a[i][j]==' ')
{
return 0;
}
}
}
return 1;
}








char decide(char a[R][C],int r,int c)
{int i=0;
int j=0;
for(i=0;i<R;i++)
{
if((a[i][0]==a[i][1])&&(a[i][1]==a[i][2])&&(a[i][2]==a[i][3])&&(a[i][3]==a[i][4]))
{
return a[i][0];
}
}
for(j=0;j<C;j++)
{
if((a[0][j]==a[1][j])&&(a[1][j]==a[2][j])&&(a[2][j]==a[3][j])&&(a[3][j]==a[4][j]))
{
return a[0][j];
}
   if((a[0][0]==a[1][1])&&(a[1][1]==a[2][2])&&(a[2][2]==a[3][3])&&(a[3][3]==a[4][4]))
   {
      return a[0][0];
   }
   if((a[0][4]==a[1][3])&&(a[1][3]==a[2][2])&&(a[2][2]==a[3][1])&&(a[3][1]==a[4][0]))
   {
      return a[0][4];
   }
  if(full(a,R,C))
  {
      return 'q';
  }
  return ' ';
}
}


测试文件:test.cpp

#include"game.h"
void menu()
{
printf("***************************************\n");
printf("***************************************\n");
printf("*********1 进入游戏********************\n");
printf("*********0 退出游戏********************\n");
printf("***************************************\n");
printf("***************************************\n");
}


void game()
{
char ret=0;
char a[R][C]={0};
is_board(a,R,C);
display_board(a,R,C);


while(1)
{
play_person(a,R,C);
display_board(a,R,C);
ret=decide(a,R,C);
if(ret!=' ')
{
break;
}
play_computer(a,R,C);
display_board(a,R,C);
ret=decide(a,R,C);
if(ret!=' ')
{
break;
}
}
if(ret=='q')
{
printf("平局\n");
}
else if(ret=='X')
{
printf("哇!你真厉害\n");
}
else
{
printf("真遗憾,再来一局吧\n");
}
}






int main()
{
int n=0;
do
{
menu();
printf("请输入选项\n");
scanf("%d",&n);
switch(n)
{
case 1:
{
game();
//printf("进入游戏\n");
}
break;
case 0:
{
printf("谢谢使用\n");
system("pause");
    return 1;
}
break;
default:
break;
}
}
while(n);
return 0;
}



猜你喜欢

转载自blog.csdn.net/huaijiu123/article/details/77450493
今日推荐