Reversi
サーバー側のCGIをさくっと実装して、取得した一覧から対戦相手を選択できるようにしました。 サーバーから取得したプレーヤーの中から、相手を選択して対戦できます。 対戦相手のアルゴリズムはエディタ(CodePressを利用)でカスタマイズできます。 →今日ま…
プレーヤーを入力して対戦できるようにしました。 テキストエリアにプレーヤのコード(石を置く場所をコールバックするJavaScript関数)を入力し、「対戦する」をクリックするとそれと対戦できます。 デフォルトでは、「おける場所に置くプレーヤー」のコード…
Reversiにタイマー機能を実装。自分のターンになった後、一定時間石を置かないと反則負けになります。あと、不具合もいくつか直しました。 処理フローが複雑になってきたので一旦リファクタしたい。 コンテナのバインドメソッドを使ってイベント通知をしてい…
UIを作った。といっても見た目じゃなくて実装の話。 MVCに切り分けて正当派な構成にしてみた。 UIは「ボート」とか「結果表示」といった単位で個別に実装。 エンジンには「次のターン」や「ゲーム終了」などのイベント通知機能を付けた。UIコンポーネントは…
ユーザー入力を受け付けるプレーヤーを用意して、人対人で対戦できるようにしました。 プレーヤーの仕様が「盤の情報を受け取って次に石を置く場所を返す関数」だと処理が永遠にUIスレッドに移らず上手く動かないので、次に置く石の位置はコールバック関数に…