python tkinterで三目並べ(OXゲーム)をつくってみた。[Op.1] その2
OXゲームをつくる
リプレイ機能を実装してみる
というわけで、前回:python tkinterで三目並べ(OXゲーム)をつくってみた。[Op.1] の続きです。まだREPLAY機能は作っていなかったので、今回はその部分を作成しました。やりたいことは明確で、先にイメージもできていたのでそれほど苦労はしませんでした。
リプレイ機能で実装したいこと
・REPLAYボタンはPLAYが始まってから有効になる。
ゲーム開始前に押しても無効(何もしない)
・REPLAYボタンを押すと、最初から自動でリプレイする。
リプレイ中は何手目かを示す表示を出す。
・リプレイ終了後は、表示したバーをドラッグすることで指定の手までを表示する。
リプレイ機能の動作
とりあえず動作については以下の動画を参照ください。
多少考えたところ
今回はほぼイメージ通り滞りなく進められましたが、1つあるとすれば、前回の反省を逆手に取ったような実装にしてみました。前回詰まったところで図形描画タイミングの問題がありましたが、今回はあえてそれを利用しています。リプレイ時の表示はtkinter.Scaleを利用しました。Scaleの値が変わったときに自作関数を呼び出すのですが、それはおよそ次のような動作をします。
1.全マスの表示を消去
2.Scaleの値までの手を表示(ここでfor文を使って一気に表示)
Scaleの値がゼロの場合は何も表示しない。
最後に
今回はこんな感じです。このOXゲームに関してはやりたいことを実装できたので、一応終了です。凝り出すときりがないので...。
さて、次は何を作ろうかな...