mirror of
https://github.com/kokonect-link/cherrypick
synced 2024-10-31 07:11:47 +09:00
Refactor: Remove the magick numbers
This commit is contained in:
parent
c8dbf5776e
commit
b717e575ea
@ -1,3 +1,5 @@
|
||||
const BOARD_SIZE = 8;
|
||||
|
||||
export default class Othello {
|
||||
public board: Array<Array<'black' | 'white'>>;
|
||||
|
||||
@ -142,7 +144,7 @@ export default class Othello {
|
||||
|
||||
// 右上
|
||||
iterate = createIterater();
|
||||
for (let c = 0, i = 1; i < Math.min(8 - targetx, targety); c++, i++) {
|
||||
for (let c = 0, i = 1; i < Math.min(BOARD_SIZE - targetx, targety); c++, i++) {
|
||||
if (iterate(targetx + i, targety - i)) {
|
||||
res.push([1, c]);
|
||||
break;
|
||||
@ -151,7 +153,7 @@ export default class Othello {
|
||||
|
||||
// 右
|
||||
iterate = createIterater();
|
||||
for (let c = 0, x = targetx + 1; x < 8; c++, x++) {
|
||||
for (let c = 0, x = targetx + 1; x < BOARD_SIZE; c++, x++) {
|
||||
if (iterate(x, targety)) {
|
||||
res.push([2, c]);
|
||||
break;
|
||||
@ -160,7 +162,7 @@ export default class Othello {
|
||||
|
||||
// 右下
|
||||
iterate = createIterater();
|
||||
for (let c = 0, i = 1; i < Math.min(8 - targetx, 8 - targety); c++, i++) {
|
||||
for (let c = 0, i = 1; i < Math.min(BOARD_SIZE - targetx, BOARD_SIZE - targety); c++, i++) {
|
||||
if (iterate(targetx + i, targety + i)) {
|
||||
res.push([3, c]);
|
||||
break;
|
||||
@ -169,7 +171,7 @@ export default class Othello {
|
||||
|
||||
// 下
|
||||
iterate = createIterater();
|
||||
for (let c = 0, y = targety + 1; y < 8; c++, y++) {
|
||||
for (let c = 0, y = targety + 1; y < BOARD_SIZE; c++, y++) {
|
||||
if (iterate(targetx, y)) {
|
||||
res.push([4, c]);
|
||||
break;
|
||||
@ -178,7 +180,7 @@ export default class Othello {
|
||||
|
||||
// 左下
|
||||
iterate = createIterater();
|
||||
for (let c = 0, i = 1; i < Math.min(targetx, 8 - targety); c++, i++) {
|
||||
for (let c = 0, i = 1; i < Math.min(targetx, BOARD_SIZE - targety); c++, i++) {
|
||||
if (iterate(targetx - i, targety + i)) {
|
||||
res.push([5, c]);
|
||||
break;
|
||||
@ -238,11 +240,11 @@ export function ai(color: string, othello: Othello) {
|
||||
// 左上
|
||||
(p[0] == 0 && p[1] == 0) ||
|
||||
// 右上
|
||||
(p[0] == 7 && p[1] == 0) ||
|
||||
(p[0] == (BOARD_SIZE - 1) && p[1] == 0) ||
|
||||
// 右下
|
||||
(p[0] == 7 && p[1] == 7) ||
|
||||
(p[0] == (BOARD_SIZE - 1) && p[1] == (BOARD_SIZE - 1)) ||
|
||||
// 左下
|
||||
(p[0] == 0 && p[1] == 7)
|
||||
(p[0] == 0 && p[1] == (BOARD_SIZE - 1))
|
||||
);
|
||||
|
||||
if (corners.length > 0) { // どこかしらの角に打てる場合
|
||||
|
Loading…
Reference in New Issue
Block a user