C++で井戸将棋をする
9927 ワード
C++で井戸将棋をする
くだらないことは言わないで、直接コードを貼ってください.
中間のコンピュータIF文は少し多くて、実は少し最適化することができて、しかしこのようにすでにとても難しいコンピュータになって、楽しく遊ぶことができます!
くだらないことは言わないで、直接コードを貼ってください.
中間のコンピュータIF文は少し多くて、実は少し最適化することができて、しかしこのようにすでにとても難しいコンピュータになって、楽しく遊ぶことができます!
#include
using namespace std;
int s[3][3], tf = 0, gofirst = 1, row, column, over = 0;
bool end = false;
void print()
{
cout << "-------" << endl;
for(int x = 0; x < 3; x++)
{
cout << "|";
for(int y = 0; y < 3; y++)
{
if(s[x][y] == 0) cout << " ";
else if(s[x][y] == 1) cout << "O";
else if(s[x][y] == 2) cout << "X";
cout << "|";
}
cout << endl << "-------" << endl;
}
cout << endl;
}
int check()
{
for(int x = 0; x < 3; x++)
{
if(s[x][0] == 1 && s[x][1] == 1 && s[x][2] == 1)
{
cout << "You win!!!" << endl << endl;
end = true;
return 0;
break;
}
}
for(int x = 0; x < 3; x++)
{
if(s[0][x] == 1 && s[1][x] == 1 && s[2][x] == 1)
{
cout << "You win!!!" << endl << endl;
end = true;
return 0;
break;
}
}
for(int x = 0; x < 3; x++)
{
if(s[x][0] == 2 && s[x][1] == 2 && s[x][2] == 2)
{
cout << "You lose!" << endl << endl;
end = true;
return 0;
break;
}
}
for(int x = 0; x < 3; x++)
{
if(s[0][x] == 2 && s[1][x] == 2 && s[2][x] == 2)
{
cout << "You lose!" << endl << endl;
end = true;
return 0;
break;
}
}
if(s[0][0] == 1 && s[1][1] == 1 && s[2][2] == 1)
{
cout << "You win!!!" << endl << endl;
end = true;
return 0;
}
else if(s[0][0] == 2 && s[1][1] == 2 && s[2][2] == 2)
{
cout << "You lose!" << endl << endl;
end = true;
return 0;
}
else if(s[2][2] == 1 && s[1][1] == 1 && s[0][0] == 1)
{
cout << "You win!!!" << endl << endl;
end = true;
return 0;
}
else if(s[2][2] == 2 && s[1][1] == 2 && s[0][0] == 2)
{
cout << "You lose!" << endl << endl;
end = true;
return 0;
}
else
{
int count = 0;
for(int x = 0; x < 3; x++)
{
for(int y = 0; y < 3; y++)
{
if(s[x][y] == 1 || s[x][y] == 2) count++;
}
}
if(count == 9)
{
cout << "Draw!" << endl << endl;
end = true;
return 0;
}
}
}
void computer()
{
int breaktf = 0;
if(tf == 1)
{
if(s[1][1] == 0) s[1][1] = 2;
else s[0][2] = 2;
}
else
{
if(s[1][1] == 1 && s[2][0] == 1 && s[0][2] == 2 && s[2][2] == 0) s[2][2] = 2;
else if(s[0][0] == 2 && s[0][1] == 2 && s[0][2] == 0) s[0][2] = 2;
else if(s[0][0] == 2 && s[0][2] == 2 && s[0][1] == 0) s[0][1] = 2;
else if(s[0][0] == 2 && s[2][2] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[0][0] == 2 && s[2][0] == 2 && s[1][0] == 0) s[1][0] = 2;
else if(s[0][0] == 2 && s[1][0] == 2 && s[2][0] == 0) s[2][0] = 2;
else if(s[0][0] == 2 && s[1][1] == 2 && s[2][2] == 0) s[2][2] = 2;
else if(s[0][2] == 2 && s[0][0] == 2 && s[0][1] == 0) s[0][1] = 2;
else if(s[0][2] == 2 && s[0][1] == 2 && s[0][0] == 0) s[0][0] = 2;
else if(s[0][2] == 2 && s[1][2] == 2 && s[2][2] == 0) s[2][2] = 2;
else if(s[0][2] == 2 && s[2][2] == 2 && s[1][2] == 0) s[1][2] = 2;
else if(s[0][2] == 2 && s[2][0] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[0][2] == 2 && s[1][1] == 2 && s[2][0] == 0) s[2][0] = 2;
else if(s[2][0] == 2 && s[1][0] == 2 && s[0][0] == 0) s[0][0] = 2;
else if(s[2][0] == 2 && s[0][0] == 2 && s[1][0] == 0) s[1][0] = 2;
else if(s[2][0] == 2 && s[2][1] == 2 && s[2][2] == 0) s[2][2] = 2;
else if(s[2][0] == 2 && s[2][2] == 2 && s[2][1] == 0) s[2][1] = 2;
else if(s[2][0] == 2 && s[1][2] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[2][0] == 2 && s[1][1] == 2 && s[1][2] == 0) s[1][2] = 2;
else if(s[2][2] == 2 && s[1][2] == 2 && s[0][2] == 0) s[0][2] = 2;
else if(s[2][2] == 2 && s[0][2] == 2 && s[1][2] == 0) s[1][2] = 2;
else if(s[2][2] == 2 && s[2][0] == 2 && s[2][1] == 0) s[2][1] = 2;
else if(s[2][2] == 2 && s[2][1] == 2 && s[2][0] == 0) s[2][0] = 2;
else if(s[2][2] == 2 && s[0][0] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[2][2] == 2 && s[1][1] == 2 && s[0][0] == 0) s[0][0] = 2;
else if(s[0][1] == 2 && s[2][1] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[1][0] == 2 && s[1][2] == 2 && s[1][1] == 0) s[1][1] = 2;
else if(s[1][2] == 2 && s[1][1] == 2 && s[1][0] == 0) s[1][0] = 2;
else if(s[2][1] == 2 && s[1][1] == 2 && s[0][1] == 0) s[0][1] = 2;
else if(s[1][0] == 2 && s[1][1] == 2 && s[1][2] == 0) s[1][2] = 2;
else if(s[0][1] == 2 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
else if(s[0][0] == 1 && s[0][1] == 1 && s[0][2] == 0) s[0][2] = 2;
else if(s[0][0] == 1 && s[0][2] == 1 && s[0][1] == 0) s[0][1] = 2;
else if(s[0][0] == 1 && s[2][2] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[0][0] == 1 && s[2][0] == 1 && s[1][0] == 0) s[1][0] = 2;
else if(s[0][0] == 1 && s[1][0] == 1 && s[2][0] == 0) s[2][0] = 2;
else if(s[0][0] == 1 && s[1][1] == 1 && s[2][2] == 0) s[2][2] = 2;
else if(s[0][2] == 1 && s[0][0] == 1 && s[0][1] == 0) s[0][1] = 2;
else if(s[0][2] == 1 && s[0][1] == 1 && s[0][0] == 0) s[0][0] = 2;
else if(s[0][2] == 1 && s[1][2] == 1 && s[2][2] == 0) s[2][2] = 2;
else if(s[0][2] == 1 && s[2][2] == 1 && s[1][2] == 0) s[1][2] = 2;
else if(s[0][2] == 1 && s[2][0] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[0][2] == 1 && s[1][1] == 1 && s[2][0] == 0) s[2][0] = 2;
else if(s[2][0] == 1 && s[1][0] == 1 && s[0][0] == 0) s[0][0] = 2;
else if(s[2][0] == 1 && s[0][0] == 1 && s[1][0] == 0) s[1][0] = 2;
else if(s[2][0] == 1 && s[2][1] == 1 && s[2][2] == 0) s[2][2] = 2;
else if(s[2][0] == 1 && s[2][2] == 1 && s[2][1] == 0) s[2][1] = 2;
else if(s[2][0] == 1 && s[1][2] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[2][0] == 1 && s[1][1] == 1 && s[1][2] == 0) s[1][2] = 2;
else if(s[2][2] == 1 && s[1][2] == 1 && s[0][2] == 0) s[0][2] = 2;
else if(s[2][2] == 1 && s[0][2] == 1 && s[1][2] == 0) s[1][2] = 2;
else if(s[2][2] == 1 && s[2][0] == 1 && s[2][1] == 0) s[2][1] = 2;
else if(s[2][2] == 1 && s[2][1] == 1 && s[2][0] == 0) s[2][0] = 2;
else if(s[2][2] == 1 && s[0][0] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[2][2] == 1 && s[1][1] == 1 && s[0][0] == 0) s[0][0] = 2;
else if(s[0][1] == 1 && s[2][1] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[1][0] == 1 && s[1][2] == 1 && s[1][1] == 0) s[1][1] = 2;
else if(s[1][2] == 1 && s[1][1] == 1 && s[1][0] == 0) s[1][0] = 2;
else if(s[2][1] == 1 && s[1][1] == 1 && s[0][1] == 0) s[0][1] = 2;
else if(s[1][0] == 1 && s[1][1] == 1 && s[1][2] == 0) s[1][2] = 2;
else if(s[0][1] == 1 && s[1][1] == 1 && s[2][1] == 0) s[2][1] = 2;
else if(s[0][0] == 1 && s[2][2] == 1 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
else if(s[0][2] == 1 && s[2][0] == 1 && s[1][1] == 2 && s[2][1] == 0) s[2][1] = 2;
else if(s[0][0] == 1 && s[1][1] == 2 && s[0][2] == 0) s[0][2] = 2;
else if(s[0][2] == 1 && s[1][1] == 2 && s[0][0] == 0) s[0][0] = 2;
else if(s[2][0] == 1 && s[1][1] == 2 && s[2][2] == 0) s[2][2] = 2;
else if(s[2][2] == 1 && s[1][1] == 2 && s[2][0] == 0) s[2][0] = 2;
else
{
//cout << "here!" << endl;
for(int x = 0; x < 3; x++)
{
for(int y = 0; y < 3; y++)
{
if(s[x][y] == 0)
{
s[x][y] = 2;
breaktf = 1;
break;
}
}
if(breaktf == 1) break;
}
}
}
}
int main()
{
cout << "This is O and X" << endl;
cout << "Made by Skyzhou" << endl;
cout << "If you want to start, please press 0, else press 1: ";
cin >> over;
while(over == 0)
{
end = false;
for(int x = 0; x < 3; x++)
for(int y = 0; y < 3; y++) s[x][y] = 0;
cout << "You go first(1) or computer go first(0): ";
cin >> gofirst;
if(gofirst == 1) tf = 0;
else if(gofirst == 0) tf = 1;
print();
while(end == false)
{
bool inputtf = true;
if(tf % 2 == 0)
{
while(inputtf)
{
cout << "Which place do you want to choose?" << endl;
cout << "row: ";
cin >> row;
cout << "column: ";
cin >> column;
row--;
column--;
if(s[row][column] != 0)
{
cout << "This place can't choose, please reinput." << endl;
}
else inputtf = false;
}
s[row][column] = 1;
}
else computer();
print();
check();
tf++;
}
cout << "If you want to play again, please press 0, else press 1: ";
cin >> over;
}
return 0;
}
初めてのブログです.よろしくお願いします.ありがとうございます.