我有 2 个单独的板供 2 个玩家使用:X 和 O。现在我想确定输入的位置 (int x, int y) 是否有效,但我不知道应该如何将其转换为位板表示并将其与给定的棋盘状态进行比较,这让我很头疼。还编写了一个辅助函数来查看棋盘状态 bin()。有没有办法将 X 和 O 板合并为一个,或者我应该保留单独的所有板来检查游戏状态?
#include <bits/stdc++.h>
using namespace std;
bool xmove = true;
const int win[] = { 0b111000000,
0b000111000,
0b000000111,
0b100100100,
0b010010010,
0b001001001,
0b100010001,
0b001010100 };
struct Board {
int b = 0b000000000;
};
int iswin(int x) {
for (size_t i = 0; i < 8; i++) {
if (win[i] == x) return 1;
}
return 0;
};
void bin(int x){
cout << "0b" + bitset<9>(x).to_string() << endl;
};
int main() {
Board x, o, all;
x.b |= 0b000000111;
o.b |= 0b000111000;
all.b = x.b | o.b;
bin(all.b);
cout << iswin(x.b);
return 0;
}