makeMove method
Implementation
void makeMove(int num) {
int sow;
int color = _toguzFields[22];
bool capturedTuzdyk = false;
int finishedOtau;
int numotau = num + (9 * color) - 1;
int numkum = _toguzFields[numotau];
if (numkum <= 0) return;
if (numkum == 1) {
_toguzFields[numotau] = 0;
sow = 1;
} else {
_toguzFields[numotau] = 1;
sow = numkum - 1;
}
for (var i = 0; i < sow; i++) {
numotau++;
if (numotau > 17) numotau = 0;
if (_toguzFields[numotau] == ToguzBoard.TUZ) {
if (numotau > 8) {
_toguzFields[18]++;
} else {
_toguzFields[19]++;
}
} else {
_toguzFields[numotau]++;
}
}
if (_toguzFields[numotau] == 3) {
if ((color == 0) &&
(_toguzFields[20] == 0) &&
(numotau > 8) &&
(numotau < 17) &&
(_toguzFields[21] != numotau - 8)) {
_toguzFields[18] += 3;
_toguzFields[numotau] = ToguzBoard.TUZ;
_toguzFields[20] = numotau - 8;
capturedTuzdyk = true;
} else if ((color == 1) &&
(_toguzFields[21] == 0) &&
(numotau < 8) &&
(_toguzFields[20] != numotau + 1)) {
_toguzFields[19] += 3;
_toguzFields[numotau] = ToguzBoard.TUZ;
_toguzFields[21] = numotau + 1;
capturedTuzdyk = true;
}
}
if (_toguzFields[numotau] % 2 == 0) {
if ((color == 0) && (numotau > 8)) {
_toguzFields[18] += _toguzFields[numotau];
_toguzFields[numotau] = 0;
} else if ((color == 1) && (numotau < 9)) {
_toguzFields[19] += _toguzFields[numotau];
_toguzFields[numotau] = 0;
}
}
if (numotau > 8) {
finishedOtau = numotau - 9 + 1;
} else {
finishedOtau = numotau + 1;
}
String moveStr = num.toString() + finishedOtau.toString();
if (capturedTuzdyk) moveStr += "x";
_gameMoves.add(moveStr);
_toguzFields[22] = (_toguzFields[22] == 0 ? 1 : 0);
checkPos();
}