#include<iostream>
using namespace std;
int m[3][3];
int array[10001],step;
void paint(){
string pho[7];//
pho[0] = " ||";
pho[1] = "▇▇ ▇▇||";
pho[2] = " ▇▇ ▇▇ ||";
pho[3] = " ▇▇ ▇▇ ||";
pho[4] = " ▇▇ ||";
pho[5] = " ▇▇▇▇▇▇▇▇▇▇ ||";
pho[6] = "▇▇ ▇▇||";
int quan[7] = {5,6,6,6,6,6,5};
int cha[7] = {1,2,3,4,3,2,1};
int kong[7] = {0,0,0,0,0,0,0};
string tx;
int i,j,r;
for(i=0;i<3;i++){
for(r=0;r<7;r++){
for(j=0;j<3;j++){
if(m[i][j]==0)
tx = pho[kong[r]];
else if(m[i][j]==1)
tx = pho[quan[r]];
else tx = pho[cha[r]];
cout<<tx;
}
cout<<endl;
if(r==6) cout<<"================================================"<<endl;
}
}
}
bool win(){
int flag = 0;
if(m[0][0]==m[0][1]&&m[0][1]==m[0][2]&&m[0][0]!=0) flag = m[0][0];
if(m[1][0]==m[1][1]&&m[1][1]==m[1][2]&&m[1][0]!=0) flag = m[1][0];
if(m[2][0]==m[2][1]&&m[2][1]==m[2][2]&&m[2][0]!=0) flag = m[2][0];
if(m[0][0]==m[1][0]&&m[1][0]==m[2][0]&&m[0][0]!=0) flag = m[0][0];
if(m[0][1]==m[1][1]&&m[1][1]==m[2][1]&&m[0][1]!=0) flag = m[0][1];
if(m[0][2]==m[1][2]&&m[1][2]==m[2][2]&&m[0][2]!=0) flag = m[0][2];
if(m[0][0]==m[1][1]&&m[1][1]==m[2][2]&&m[1][1]!=0) flag = m[1][1];
if(m[0][2]==m[1][1]&&m[1][1]==m[2][0]&&m[1][1]!=0) flag = m[1][1];
if(flag==1)cout<<"quan win!";
else if(flag==2) cout<<"cha win!";
return flag;
}
void game(){
int key,kk;
if(step%2==0) cout<<"quan 第"<<step/2+1<<"手"<<endl;
else cout<<"cha 第"<<step/2+1<<"手"<<endl;
cin>>key;
while(m[key/3][key%3]!=0){
cout<<"重新输入";
cin>>key;
}if(step>5){
kk = array[step-5];
m[kk/3][kk%3] = 0;
}
m[key/3][key%3] = step%2 + 1;
array[++step] = key;
}
int main()
{
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
m[i][j] = 0;
}
}
while(!win()){
game();
paint();
cout<<"step="<<step<<endl;
}
return 0;
}
c++井字棋
最新推荐文章于 2024-07-29 13:48:22 发布