前回のオセロプログラムの更新。
カウンターとリセットイベントとボタンイベントをつけた。
それからCPUの対戦もつけたんだけど、まだちゃんとしたAIはつけてないです。
ダウンロード
(Cキーで終了、Rキーでリセット)
(ソース)
Display.txt
Idle.txt
KeyboardMouseC.txt
KeyboardMouseState.txt
main.txt
MainState.txt
PositionMaps.txt
ResionMap.txt
States.txt
Stones.txt
ResionMap.txt
VectorMaps.txt
Texture.txt
EventFlags.txt
General.txt
SetValue.txt
DisplayState.txt
EventCheck.txt
まずボタンイベントなんだけど、その状況のときボタンを受け付けるかどうかというのを
どうしようかでちょっと悩んだ。
ボタンにactiveみたいな要素をつけてそれで判定させる方法もあったんだけど
GameModeと InputEventから次のGameModeをみちびく関係を集合として
MStateにもたせてみた。
つまりGameModeを頂点にもつグラフとして考えたということ。
haskellにもしかしたらグラフを扱う機能があるかもしれないけど…。
あとボタンなどの位置を示すのにContainerという型を作ったんだけど、
ContainerのなかにContainerが入っているとき、中のContainerのほうは親のContainerの
相対座標で表記できるようにしたい。
まだやってないけどね。
PR