#ifndef _WUZIQI_H_
#define _WUZIQI_H_
#include <iostream>
using namespace std;
class chessboard;
class chessboard
{
public:
int judge();
void build();
void changeblack(int goalx, int goaly, int& goal);
void changewhite(int goalx, int goaly, int& goal);
void out();
private:
string arr[15][15];
};
#endif
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int chessboard::judge()
{
for (int i = 0; i < 11; i++)
{
for (int j = 0; j < 11; j++)
{
if (
arr[i][j] == "●" &&
arr[i][j + 1] == "●" &&
arr[i][j + 2] == "●" &&
arr[i][j + 3] == "●" &&
arr[i][j + 4] == "●"
) return 0;
}
for (int j = 0; j < 11; j++)
{
if (
arr[j][i] == "●" &&
arr[j + 1][i] == "●" &&
arr[j + 2][i] == "●" &&
arr[j + 3][i] == "●" &&
arr[j + 4][i] == "●"
) return 0;
}
for (int j = 0; j < 11; j++)
{
if (
arr[i][j] == "●" &&
arr[i + 1][j + 1] == "●" &&
arr[i + 2][j + 2] == "●" &&
arr[i + 3][j + 3] == "●" &&
arr[i + 4][j + 4] == "●"
) return 0;
}
for (int j = 14; j > 3; j--)
{
if (
arr[i][j] == "●" &&
arr[i + 1][j - 1] == "●" &&
arr[i + 2][j - 2] == "●" &&
arr[i + 3][j - 3] == "●" &&
arr[i + 4][j - 4] == "●"
) return 0;
}
for (int j = 0; j < 11; j++)
{
if (
arr[i][j] == "○" &&
arr[i][j + 1] == "○" &&
arr[i][j + 2] == "○" &&
arr[i][j + 3] == "○" &&
arr[i][j + 4] == "○"
) return 0;
}
for (int j = 0; j < 11; j++)
{
if (
arr[j][i] == "○" &&
arr[j + 1][i] == "○" &&
arr[j + 2][i] == "○" &&
arr[j + 3][i] == "○" &&
arr[j + 4][i] == "○"
) return 0;
}
for (int j = 0; j < 11; j++)
{
if (
arr[i][j] == "○" &&
arr[i + 1][j + 1] == "○" &&
arr[i + 2][j + 2] == "○" &&
arr[i + 3][j + 3] == "○" &&
arr[i + 4][j + 4] == "○"
) return 0;
}
for (int j = 14; j > 3; j--)
{
if (
arr[i][j] == "○" &&
arr[i + 1][j - 1] == "○" &&
arr[i + 2][j - 2] == "○" &&
arr[i + 3][j - 3] == "○" &&
arr[i + 4][j - 4] == "○"
) return 0;
}
}
return 1;
}
void chessboard::build()
{
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 15; j++)
{
arr[i][j] = " ";
}
}
}
void chessboard::changeblack(int goalx, int goaly, int& goal)
{
if (arr[goalx][goaly] != " ")
{
cout << "这一点已经有子了,请重新下一次黑棋" << endl;
goal--;
}
else
arr[goalx][goaly] = "○";
}
void chessboard::changewhite(int goalx, int goaly, int& goal)
{
if (arr[goalx][goaly] != " ")
{
cout << "这一点已经有子了,请重新下一次白旗" << endl;
goal--;
}
else
arr[goalx][goaly] = "●";
}
void chessboard::out()
{
cout << " 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 " << endl;
for (int i = 0; i < 15; i++)
{
cout << "---------------------------------------------------------------" << endl;
if (i < 10)
cout << i << " | ";
else
cout << i << "| ";
for (int j = 0; j < 15; j++)
{
cout << arr[i][j] << "| ";
}
cout << endl;
}
cout << "---------------------------------------------------------------" << endl;
}
#include <iostream>
using namespace std;
int main(void)
{
chessboard goalboard;
goalboard.build();
goalboard.out();
for (int i = 1; i < 10000; i++)
{
if (i % 2 != 0)
{
int x = 0, y = 0;
cout << "请输入黑棋x坐标和y坐标" << endl;
cin >> y >> x;
goalboard.changeblack(x, y, i);
goalboard.out();
if (goalboard.judge() == 0)
{
cout << "游戏结束 黑棋胜利!" << endl;
cout << "输入任意坐标重新开始" << endl;
goalboard.build();
}
}
else
{
int x = 0, y = 0;
cout << "请输入白棋x坐标和y坐标" << endl;
cin >> y >> x;
goalboard.changewhite(x, y, i);
goalboard.out();
if (goalboard.judge() == 0)
{
cout << "游戏结束 白旗胜利!" << endl;
cout << "输入任意坐标重新开始" << endl;
goalboard.build();
}
}
}
return 0;
}