2025-08-08 13:29:07
发布于:浙江
using namespace std;
char a[4][4];
int cnt=0;
int Gs=1;
int R=0;
int random(int a, int b){
cnt++;
srand(time(0)+cnt*cnt-cnt);
return a+rand()%(b-a+1);
}
int f(int x){
if (x!=0) return x;
return 3;
}
int ifVic(){
if(
a[1][1]==a[1][2] && a[1][2]==a[1][3] && a[1][1]=='X'||
a[2][1]==a[2][2] && a[2][2]==a[2][3] && a[2][1]=='X'||
a[3][1]==a[3][2] && a[3][2]==a[3][3] && a[3][1]=='X'||
a[1][1]==a[2][1] && a[2][1]==a[3][1] && a[1][1]=='X'||
a[1][2]==a[2][2] && a[2][2]==a[3][2] && a[1][2]=='X'||
a[1][3]==a[2][3] && a[2][3]==a[3][3] && a[1][3]=='X'||
a[1][1]==a[2][2] && a[2][2]==a[3][3] && a[1][1]=='X'||
a[1][3]==a[2][2] && a[2][2]==a[3][1] && a[3][1]=='X'){
return 1;
}
if(
a[1][1]==a[1][2] && a[1][2]==a[1][3] && a[1][1]=='O'||
a[2][1]==a[2][2] && a[2][2]==a[2][3] && a[2][1]=='O'||
a[3][1]==a[3][2] && a[3][2]==a[3][3] && a[3][1]=='O'||
a[1][1]==a[2][1] && a[2][1]==a[3][1] && a[1][1]=='O'||
a[1][2]==a[2][2] && a[2][2]==a[3][2] && a[1][2]=='O'||
a[1][3]==a[2][3] && a[2][3]==a[3][3] && a[1][3]=='O'||
a[1][1]==a[2][2] && a[2][2]==a[3][3] && a[1][1]=='O'||
a[1][3]==a[2][2] && a[2][2]==a[3][1] && a[3][1]=='O'){
return 2;
}
if (R==51){
return 3;
}
return 0;
}
int Assi(){
if (a[1][1]==a[1][2] && a[1][3]=='*' && a[1][1]!='*') {a[1][3]='O'; return 1;}
if (a[1][1]==a[1][3] && a[1][2]=='*' && a[1][1]!='*') {a[1][2]='O'; return 1;}
if (a[1][3]==a[1][2] && a[1][1]=='*' && a[1][2]!='*') {a[1][1]='O'; return 1;}
if (a[2][1]==a[2][2] && a[2][3]=='*' && a[2][1]!='*') {a[2][3]='O'; return 1;}
if (a[2][1]==a[2][3] && a[2][2]=='*' && a[2][2]!='*') {a[2][2]='O'; return 1;}
if (a[2][3]==a[2][2] && a[2][1]=='*' && a[2][3]!='*') {a[2][1]='O'; return 1;}
if (a[3][1]==a[3][2] && a[3][3]=='*' && a[3][1]!='*') {a[3][3]='O'; return 1;}
if (a[3][1]==a[3][3] && a[3][2]=='*' && a[3][1]!='*') {a[3][2]='O'; return 1;}
if (a[3][3]==a[3][2] && a[3][1]=='*' && a[3][3]!='*') {a[3][1]='O'; return 1;}
//
if (a[1][1]==a[2][1] && a[3][1]=='*' && a[1][1]!='*') {a[3][1]='O'; return 1;}
if (a[1][1]==a[3][1] && a[2][1]=='*' && a[1][1]!='*') {a[2][1]='O'; return 1;}
if (a[3][1]==a[2][1] && a[1][1]=='*' && a[2][1]!='*') {a[1][1]='O'; return 1;}
if (a[1][2]==a[2][2] && a[3][2]=='*' && a[1][2]!='*') {a[3][2]='O'; return 1;}
if (a[1][2]==a[3][2] && a[2][2]=='*' && a[1][2]!='*') {a[2][2]='O'; return 1;}
if (a[3][2]==a[2][2] && a[1][2]=='*' && a[2][2]!='*') {a[1][2]='O'; return 1;}
if (a[1][3]==a[2][3] && a[3][3]=='*' && a[1][3]!='*') {a[3][3]='O'; return 1;}
if (a[1][3]==a[3][3] && a[2][3]=='*' && a[1][3]!='*') {a[2][3]='O'; return 1;}
if (a[3][3]==a[2][3] && a[1][3]=='*' && a[2][3]!='*') {a[1][3]='O'; return 1;}
//
if (a[1][1]==a[2][2] && a[3][3]=='*' && a[1][1]!='*') {a[3][3]='O'; return 1;}
if (a[3][3]==a[1][1] && a[2][2]=='*' && a[3][3]!='*') {a[2][2]='O'; return 1;}
if (a[2][2]==a[3][3] && a[1][1]=='*' && a[3][3]!='*') {a[1][1]='O'; return 1;}
//
if (a[1][3]==a[2][2] && a[3][1]=='*' && a[1][3]!='*') {a[3][1]='O'; return 1;}
if (a[2][2]==a[3][1] && a[1][3]=='*' && a[3][1]!='*') {a[1][3]='O'; return 1;}
if (a[1][3]==a[3][1] && a[2][2]=='*' && a[1][3]!='*') {a[2][2]='O'; return 1;}
return 0;
}
int PrintBoard(){
for (int i=1; i<=3; i++){
for (int j=1; j<=3; j++){
if (j!=1) cout << "|";
cout << a[i][j];
}
cout << endl;
if (i!=3){
cout << "-----\n";
}
}
}
int MainGameP(){
cout << "你的回合!\n";
PrintBoard();
int fi=0;
int pl=0;
while (!fi){
cout << "你想下在哪里? 告诉我你的位置";
cin >> pl;
if (a[(pl-1)/3+1][f(pl%3)]!='*'){
cout << "没有这个位置. 请再输入一次\n" ;
}else{
cout << "好的,谢谢.\n";
fi=1;
}
}
cout << (pl-1)/3+1 << " " << f(pl%3) << endl;
a[(pl-1)/3+1][f(pl%3)]='X';
}
int MainGameC(){
cout << "我的回合!\n";
if (!Assi()){
int pl=0;
while (true){
pl=random(1,9);
if (a[(pl-1)/3+1][f(pl%3)]=='*'){
break;
}
}
a[(pl-1)/3+1][f(pl%3)]='O';
cout << (pl-1)/3+1 << " " << f(pl%3) << endl;
}else{
cout << "assi\n";
}
cout << "我下完了!\n";
}
int main(){
for (int i=1; i<=4; i++){
for (int j=1; j<=4; j++){
a[i][j]='*';
}
}
while (true){
MainGameP();
R++;
cout << ifVic() << " " << R << endl;
if (ifVic()!=0){
cout << "----- -----\n";
PrintBoard();
if (ifVic()==1){
cout << "你赢了!";
}else if (ifVic()==2){
cout << "你输了 :(";
}else{
cout << "平局";
}
return 0;
}
MainGameC();
R++;
if (ifVic()!=0){
cout << "----- -----\n";
PrintBoard();
if (ifVic()==1){
cout << "你赢了";
}else if (ifVic()==2){
cout << "你输了 :(";
}else{
cout << "平局";
}
return 0;
}
}
}
这里空空如也
有帮助,赞一个