この記事において、Hangmanという相手の考えた単語を当てる2人用のゲームをPythonコードで書く方法を皆さんに教示したい。
初期設定としては、このコードを書いたらいい。
単語の選択と変数の初期化が必要になってくる。
hangman_words.word_listからランダムに単語を選びます。
選ばれた単語の長さをword_lengthに格納します。
end_of_gameはゲームが終了したかどうかを示すフラグです。
livesは6に初期化され、これは許されるミスの回数を表します。
displayは、推測された単語の現在の状態を保持するリストで、最初はアンダースコア(_)で埋められます。
ゲームループ
end_of_gameがFalseの間、ゲームは続きます。
プレイヤーは文字を推測するように促され、その文字は小文字に変換されます。
画面をクリアして表示をきれいに保ちます。
もし推測された文字がすでにdisplayに含まれている場合、プレイヤーにそのことを知らせるメッセージを表示します。
推測の確認
このループは、選ばれた単語の各文字を繰り返します。
各位置で、推測された文字が選ばれた単語の文字と一致するか確認します。
もし一致した場合、"display"の対応する位置をその文字で更新します。
間違った推測の処理
もし推測された文字が選ばれた単語に含まれていない場合、メッセージを表示し、プレイヤーはライフを失います。ライフが0になると、end_of_gameがTrueに設定され、プレイヤーに、負けたことを知らせます。
勝利条件の確認
単語の現在の状態を表示します。もし、"display" にアンダースコアが含まれていない場合、プレイヤーがすべての文字を正しく推測したことを意味し、ゲームは勝利メッセージとともに終了します。
ハングマンの段階を表示
残りのライフ数に基づいて、適切なハングマンの段階のグラフィックを表示します。
これだけでは、わからないと思うので、このコードを利用して、実際にHangmanをしている画像を添付しておく。
今回私は、dをいう文字を予想した。Current Letterが正解のアルファベットで、Guessed Letterが、ユーザが予想した文字だ。この場合は、Fuchsiaというのが正解だ。
そこで、再度試してみた。私は、lという文字を予想した。Current Letterは、Youthfulと出力されたので、一つの文字が的中したことになる。
まとめ
ゲームはランダムな単語を選び、表示とライフを設定します。
プレイヤーは文字を推測し続け、正解なら表示を更新し、不正解ならライフが減ります。
プレイヤーが単語をすべて当てるかライフがなくなるまでゲームは続きます。
各推測後にハングマンのグラフィックが表示され、プレイヤーの進捗が示されます。
皆さんもこのプログラムコードを使い、Hangmanを一度試してみたらいかがでしょうか。
注)このプログラムコードを書くにあたって、このリンクを参考にしました。
https://github.com/Vickyabiodun/Hangman-Game