「Reversi : リバーシ」 はシンプルなリバーシです。
- CUI と GUI の両方で動作します
- 人間 vs 人間、人間 vs COM、COM vs COM の対戦が可能です
- 棋譜を表示できます
- 対戦中の石の数の推移を、結果画面でグラフィカルに確認できます
「Windows 11 22H2」での動作することを確認しています。(他のOSでの動作は未検証です)
本プログラムのプログラミング言語は Java を使用しています。 また、GUIフレームワークは JavaFX を使用しています。
- JDK 21
- Java FX 21
以下のように状態遷移します。
stateDiagram-v2
[*] --> PlayerSelect
PlayerSelect --> Reversi: Enter player setting
State Reversi {
state if_skip <<choice>>
state if_manual <<choice>>
state if_judege <<choice>>
[*] --> PLAY
PLAY --> if_skip
if_skip --> SKIP:Skip
SKIP --> JUDGE
if_skip --> if_manual:No Skip
if_manual --> PLAY_MANUAL:Manual
if_manual --> PLAY_COM:COM
PLAY_MANUAL --> JUDGE:put
PLAY_MANUAL --> SKIP:skip
PLAY_COM --> JUDGE:put
PLAY_COM --> SKIP:skip
JUDGE --> if_judege
if_judege --> PLAY:Not Finish
if_judege --> FINISH:Finish
FINISH --> [*]
}
Reversi --> Result
state Result {
DetailResult
Record
Graph
}
Result --> [*]
スキップ処理は原則、システム側で自動的に石を置く場所がないか探索し、場所がない場合のみ SKIP 状態になります。 ただし、プレイヤー側が正しく算出できなかった場合のために、プレイヤーから SKIP に遷移することもあります。
- komoto