五子棋c++语言最简单代码,c++实现五子棋
测试。丙:
#define _CRT_SECURE_NO_WARNINGS
#包含标准视频
#包含" game.h "
#包含windows.h
#包含标准库
#包含时间。h
无效菜单()
{
printf( # # # # # # # # # # # # # # # # # \ n );
printf( # # # 1。播放0。退出# # # # # # \ n );
printf( # # # # # # # # # # # # # # # # # \ n );
}
无效游戏()
{
int board[Row][Col]={ };
Initcheck(board,Row,Col);//初始化棋盘
Putcheck(board,Row,Col);//输出棋盘
srand((无符号)时间(空));
菜单2();
printf(请选择— //增加了谁先下载的模块
(同Internationalorganizations)国际组织输入2;
scanf(%d ,输入2);
int w=0;
如果(输入2==1)
{
int * p=board[0][0];
int k=0;
而(k行*列)
{
My_Part(p,Row,Col);
k;//我下棋
Putcheck(board,Row,Col);
如果(k 2)
w=Gudje(p,Row,Col);
如果(w==1)
打破;
睡眠(1000);
如果(k 9)
{
printf(机器已下:\ n’);
报告_部分(p,行,列);
k;//机器下棋
Putcheck(board,Row,Col);//输出棋盘
if (k 5)
w=Gudje(p,Row,Col);
如果(w==1)
打破;
}
}
如果(k==9 w==0)
printf( -平——局-\ n );
}
其他
{
int * p=board[0][0];
int k=0;
而(k行*列)
{
睡眠(1000);
printf(机器已下:\ n’);
报告_部分(p,行,列);
Putcheck(p,Row,Col);
如果(k 2)
w=Gudje(p,Row,Col);
如果(w==1)
打破;
k;//我下棋
如果(k 9)
{
My_Part(board,Row,Col);
Putcheck(board,Row,Col);//输出棋盘
k;//机器下棋
if (k 5)
w=Gudje(p,Row,Col);
如果(w==1)
打破;
}
}
如果(k==9 w==0)
printf( -平——局-\ n );
}
}
int main()
{
int input=0;
做
{
menu();
printf(请输入-
scanf(%d ,输入);
开关(输入)
{
案例1:
printf( -开始游戏-\ n );
game();
打破;
案例0:
printf( -成功退出游戏-\ n );
默认值:
printf(选择错误,重新选择\ n’);
打破;
}
}而(输入);
返回0;
}game.h:
#定义第3行
#定义第3列
#包含标准视频
void init check(int board[Row][Col],int row,int Col);//初始化棋盘
void put check(int board[Row][Col],int row,int Col);//输出棋盘
void菜单2();//菜单二选择谁先手
void My_Part(int *p,int row,int col);//我开始下棋
void Report_Part(int* p,int row,int col);//机器随机下棋
int Gudje(int* p,int row,int col);//判断输赢游戏。c
#define _CRT_SECURE_NO_WARNINGS
#包含" game.h "
void init check(int board[Row][Col],int row,int col)
{
int I=0;
int j=0;
for(I=0;我我)
{
for(j=0;j colj)
{
board[I][j]=" ";
}
}
}
void put check(int board[Row][Col],int row,int col)
{
int I;
int j;
for(I=0;我划船;我)
{
for(j=0;j colj)
{
printf( %c ,board[I][j]);
如果(j列1)
printf( );
}
printf( \ n );
for(j=0;j colj)
{
如果(我行-1)
printf( _ _ _ _ _ _ );
其他
printf(" ");
如果(j列1)
printf( );
}
printf( \ n );
}
}
void Menu2()//界面2
{
printf( # # # # # # # # # # # # # # # # # # # # # n );
printf( # # 1。你先0。先报告# # \ n );
printf( # # # # # # # # # # # # # # # # # # # # # n );
}
void My_Part(int *p,int row,int col)
{
printf(输入几行几列\ n’);
int m=0,n=0;
scanf(%d%d ,m,
*(p(m-1)* col n-1)= # ;
}
void Report_Part(int* p,int row,int col)
{
while (1)
{
int m=rand()% row;
int n=rand()% col 1;
if (*(p m * col n)=")
{
*(p m * coln)= * ;
打破;
}
}
}
int Gudje(int* p,int row,int col)
{
int I;
for(I=0;我划船;i )//判断纵横
{
if(*(p I * col 0)==*(p I * col 1)*(p I * col 0)==*(p I * col 2)*(p I * col 0)== # )
{
printf(你赢了!\ n’);
返回1;
}
if(*(p I * col 0)==*(p I * col 1)*(p I * col 0)==*(p I * col 2)*(p I * col 0)== * )
{
printf(机器赢了哦!\ n’);
返回1;
}
}
for(I=0;我coli )//判断纵横
{
if(*(p 0 *大肠)==*(p 1 *大肠)*(p 1 *大肠)==*(p 2 *大肠)*(p 0 *大肠)== # )
{
printf(你赢了!\ n’);
返回1;
}
if(*(p 0 * coli)==*(p 1 * coli)*(p 1 * coli)==*(p 2 * coli)*(p 0 * coli)== *
{
printf(机器赢了哦!\ n’);
返回1;
}
}
if (*p==*(p 4) *(p 4)==*(p 8) *p==# )
{
printf(‘你赢了!\ n’);
返回1;
}
else if(*(p 2)==*(p 4)*(p 4)==*(p 6)* p== * )
{
printf(‘机器赢了!\ n’);
返回1;
}
其他
返回0;
}输出结果示例:
因为代码基本都是自己完成的,不是最优的,很难理解。
总结:
1.写代码的时候可以把函数声明和函数定义分开,有利于编写、利用和理解。
2.写代码不一定都是对的,但一定是实验。一些特殊情况是可以考虑和编写的,这才是一个程序员真正需要写好代码的。
3.因为使用了全局变量,所以我觉得可以从五子棋推导出五子棋,但是因为输赢的判断是直接的,所以不能直接改变。
希望在以后的学习中能找到更好的解决方法。
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。