У меня есть 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;
}
Хорошо, как вы хотите ввести позиции?
@ACB как координаты int x, int y