📄 三子棋tic_tac_toc.cpp
字号:
#include<iostream>
using namespace std;
class game
{public:
game();
void display();
void playone(char c);
char win();
private:
char a[3][3];
};
int main()
{ loop:game m;
char q='f';
int i=0;
m.display();
do
{i=i+1;
if(i%2==1)
{m.playone('x');m.display();
if(i>4) q=m.win();}
else
{m.playone('o');m.display();
if(i>4) q=m.win();}
}while(q=='f'&&i<10);
if(i==10) cout<<"没人赢!"<<endl;
else cout<<q<<"赢了"<<endl;
cout<<"还要继续玩吗?(y/n)"<<endl;
cin>>q;
if(q=='y')
goto loop;
else return 0;
}
game::game()
{for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
a[i][j]=48+i*3+j+1;
}
void game::display()
{for(int i=0;i<3;i++)
{for(int j=0;j<3;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
void game::playone(char c)
{cout<<"请"<<c<<"走棋:";
int m,i,j;
cin>>m;
i=(m+2)/3-1;
j=(m-1)%3;
a[i][j]=c;
}
char game::win()
{int i;
for(i=0;i<3;i++)
{if((a[i][0]==a[i][1]&&a[i][0]==a[i][2])||(a[0][i]==a[1][i]&&a[0][i]==a[2][i]))
return a[i][i];
else if((a[0][0]==a[1][1]&&a[0][0]==a[2][2])||(a[0][2]==a[1][1]&&a[1][1]==a[2][0]))
return a[1][1];
else return 'f';
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -