Skip to content
Snippets Groups Projects
Commit 498094b3 authored by Aya Morisawa's avatar Aya Morisawa Committed by syuilo
Browse files

Refactor reversi engine (#2633)

* Refactor reversi engine

* Add puttablePlaces
parent 1cc183ec
No related branches found
No related tags found
No related merge requests found
import { count } from "../../prelude/array";
import { count, countIf } from "../../prelude/array";
// MISSKEY REVERSI ENGINE
......@@ -90,8 +90,8 @@ export default class Reversi {
//#endregion
// ゲームが始まった時点で片方の色の石しかないか、始まった時点で勝敗が決定するようなマップの場合がある
if (this.canPutSomewhere(BLACK).length == 0) {
if (this.canPutSomewhere(WHITE).length == 0) {
if (!this.canPutSomewhere(BLACK)) {
if (!this.canPutSomewhere(WHITE)) {
this.turn = null;
} else {
this.turn = WHITE;
......@@ -172,9 +172,9 @@ export default class Reversi {
private calcTurn() {
// ターン計算
if (this.canPutSomewhere(!this.prevColor).length > 0) {
if (this.canPutSomewhere(!this.prevColor)) {
this.turn = !this.prevColor;
} else if (this.canPutSomewhere(this.prevColor).length > 0) {
} else if (this.canPutSomewhere(this.prevColor)) {
this.turn = this.prevColor;
} else {
this.turn = null;
......@@ -206,10 +206,17 @@ export default class Reversi {
/**
* 打つことができる場所を取得します
*/
public canPutSomewhere(color: Color): number[] {
public puttablePlaces(color: Color): number[] {
return Array.from(this.board.keys()).filter(i => this.canPut(color, i));
}
/**
* 打つことができる場所があるかどうかを取得します
*/
public canPutSomewhere(color: Color): boolean {
return this.puttablePlaces(color).length > 0;
}
/**
* 指定のマスに石を打つことができるかどうかを取得します
* @param color 自分の色
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment