c++简单五子棋

默认分类 | 2020-05-03 01:44:59 | 阅读 1858 次 | 评论(3)

简单二人五子棋,二维制图,暴力判断

#include<bits/stdc++.h>
using namespace std;
char a[10][10];
int x,y,f;
bool judge(int yy,int xx)
{
int c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[++c][d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[--c][d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[c][++d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[c][--d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[--c][--d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[++c][++d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[++c][--d]) break;
if(i==4) return false;

c=yy,d=xx;
for(int i=1;i<=4;i++)
{
if(a[c][d]!=a[--c][++d]) break;
if(i==4) return false;

c=yy,d=xx;
return true;
}
void make()
{
system("cls");
cout<<" ";
for(int i=1;i<=9;i++) cout<<" "<<i;
cout<<endl;
for(int i=1;i<=9;i++)
{
cout<<" ";
for(int j=1;j<=19;j++) cout<<"_";
cout<<endl;
cout<<i;
for(int k=1;k<=9;k++)
cout<<"|"<<a[i][k];
cout<<"|"<<endl;
}
cout<<" ";
for(int j=1;j<=19;j++) cout<<"_";
cout<<endl;
return;
}
int main()//made by Tombaugh
{
for(int i=0;i<=10;i++)
for(int j=0;j<=10;j++)
a[i][j]=' ';
make();
do
{
if(++f%2==1) cout<<"玩家一请输入你要下的坐标:"<<endl;
else cout<<"玩家二请输入你要下的坐标:"<<endl;
cin>>x>>y;
while(x<1||x>9||y<1||y>9) cout<<"坐标不合法"<<endl,cin>>x>>y; 
while(a[y][x]!=' ') cout<<"此位置已有棋"<<endl,cin>>x>>y; 
if(f%2==1) a[y][x]='X';
else a[y][x]='O';
make();
}while(judge(y,x));
if(f%2==1) cout<<"游戏结束,玩家一获胜";
else cout<<"游戏结束,玩家二获胜";
return 0;

文章评论,共3条
食切节造(游客)
2020-06-15 09:04
1
食切节造(游客)
2020-06-15 09:05
2
未盐以功(游客)
2020-07-18 11:11
3
以下是引用食切节造在2020-06-15 09:04的发言1
为什么我直接复制粘贴,报错
你要换头文件
游客请输入验证码
浏览1858次
文章分类
文章归档
阅读排行
最新评论
  • 未盐以功:你要换头文件