井子棋游戏1.2.0版本,原创
这个游戏操作简便,适合休闲娱乐
最近更新时间:2020/1/31 17:47
游戏截图:
但此游戏的AI还需加强,我下次再改
代码如下:
#include<bits/stdc++.h>
#include<windows.h>
#include"math.h"
using namespace std;
int vis[5][5],ch,x,y;
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,-1,1};
void s_rj()
{
for(int i=0;i<4;i++)
{
int tx=x+dx[i];
int ty=y+dy[i];
if(tx>=1 and tx<=3 and ty>=1 and ty<=3)
{
if(vis[tx][ty]==0)
{
vis[tx][ty]=2;
return;
}
}
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
if(vis[i][j]==0)
{
vis[i][j]=2;
return;
}
}
}
}
int search()
{
if(vis[1][1]==1 and vis[2][2]==1 and vis[3][3]==1) return 1;
else if(vis[1][1]==2 and vis[2][2]==2 and vis[3][3]==2) return 2;
else if(vis[1][1]==1 and vis[1][2]==1 and vis[1][3]==1) return 1;
else if(vis[1][1]==2 and vis[1][2]==2 and vis[1][3]==2) return 2;
else if(vis[1][1]==1 and vis[2][1]==1 and vis[3][1]==1) return 1;
else if(vis[1][1]==2 and vis[2][1]==2 and vis[3][1]==2) return 2;
else if(vis[1][2]==1 and vis[2][2]==1 and vis[3][2]==1) return 1;
else if(vis[1][2]==2 and vis[2][2]==2 and vis[3][2]==2) return 2;
else if(vis[1][3]==1 and vis[2][3]==1 and vis[3][3]==1) return 1;
else if(vis[1][3]==2 and vis[2][3]==2 and vis[3][3]==2) return 2;
else if(vis[1][3]==1 and vis[2][2]==1 and vis[3][1]==1) return 1;
else if(vis[1][3]==2 and vis[2][2]==2 and vis[3][1]==2) return 2;
else if(vis[2][1]==1 and vis[2][2]==1 and vis[2][3]==1) return 1;
else if(vis[2][1]==2 and vis[2][2]==2 and vis[2][3]==2) return 2;
else if(vis[3][1]==1 and vis[3][2]==1 and vis[3][3]==1) return 1;
else if(vis[3][1]==2 and vis[3][2]==2 and vis[3][3]==2) return 2;
return 0;
}
void Game()
{
if(search()==1)
{
cout<<"你赢了!!"<<endl;
cout<<"是否重来?? 1.yes 2.no"<<endl;
int t;
cin>>t;
if(t==2)
exit(0);
else
memset(vis,0,sizeof vis);
}
else if(search()==2)
{
cout<<"你输了!!"<<endl;
cout<<"是否重来?? 1.yes 2.no"<<endl;
int t;
cin>>t;
if(t==2)
exit(0);
else
memset(vis,0,sizeof vis);
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
if(vis[i][j]==0)
cout<<"*"<<" ";
else if(vis[i][j]==1)
cout<<"X"<<" ";
else if(vis[i][j]==2)
cout<<"O"<<" ";
}
cout<<endl<<endl;
}
cout<<"---------"<<endl;
while(1)
{
cout<<"你选择放在哪里?请输入行坐标和列坐标"<<endl;
cin>>x>>y;
if(vis[x][y]==1 or vis[x][y]==2)
cout<<"那里已有子,请重新选择!"<<endl;
else
{
vis[x][y]=1;
s_rj();
break;
}
}
Game();
}
int main()
{
ProgramCaptain:
system("title 井子棋");
system("color 9F");
system("mode con cols=80 lines=40");
cout<<"井子棋游戏Made By Qym"<<endl;
cout<<"你要先手还是后手?"<<endl;
cout<<"1.先手 (其他).后手"<<endl;
cin>>ch;
if(ch!=1)
{
s_rj();
}
while(1)
{
Game();
}
return 0;
}