五子棋游戏
2017-08-21 15:47
92 查看
头文件: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;
}
#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;
}
相关文章推荐
- 五子棋游戏-2(落子与悔棋)
- 十四步实现拥有强大AI的五子棋游戏
- 小项目の五子棋游戏
- Android下SDL2实现五子棋游戏
- Java实现一个简单的两人五子棋游戏(一) 系统设计
- Java简单实现五子棋游戏
- JS+canvas实现的五子棋游戏【人机大战版】
- winform实现五子棋游戏
- 五子棋游戏-3(判断五子连心)
- 十四步实现拥有强大AI的五子棋游戏
- VC实现五子棋游戏的一个算法示例
- java实现单人版五子棋游戏
- Java实现一个简单的两人五子棋游戏(二) 画棋盘
- Android 自定义 View --- 实现五子棋游戏
- JAVA实现简单控制台五子棋游戏
- 自定义View实现五子棋游戏
- vc配合sdl编写五子棋游戏
- HTML5 canvas五子棋游戏
- 五子棋游戏——HGE
- 十四步实现拥有强大AI的五子棋游戏