「built wordle」とは?使い方を簡単に解説
Pythonを使用してWordleのクローンを作成する
このチュートリアルでは、ターミナル上で動作するWordleのクローンを作成します。Josh Wardleが2021年10月にWordleを発表して以来、数百万人の人々がこのゲームをプレイしています。オリジナルのゲームはWeb上でプレイできますが、ここではコマンドラインアプリケーションとして独自のバージョンを作成し、それを見栄え良くするためにRichライブラリを使用します。
このステップバイステップのプロジェクトで、シンプルなプロトタイプゲームをセットアップしてから、それを徐々に開発して堅牢なアプリケーションにする方法を実践します。
このチュートリアルでは以下のことを学びます:
- プロトタイプから完成したゲームまでコマンドラインアプリケーションを構築する方法
- ユーザーの入力を読み取り、検証する方法
- Richのコンソールを使用して、ターミナルで魅力的なユーザーインターフェースを作成する方法
- コードを関数に整理する方法
- ユーザーに具体的なフィードバックを提供する方法
Pythonで自分自身のWordleクローンであるWyrdlを作成します。このプロジェクトは、Pythonに慣れてきて、最初からターミナルアプリケーションを構築したい人に向けて作成されています。このチュートリアルでは、ゲームをプレイできる最初からのコードをステップバイステップで構築します。以下のリンクをクリックして、すべてのコードをダウンロードすることができます:
以下で、あなたが作成するものを見てみましょう。
デモ:Python Wordle Clone
Wordleでは、秘密の5文字の単語を推測する6つの試行が与えられます。各予想の後、正しく配置された文字、誤った配置の文字、間違った文字についてフィードバックを受けることができます。
_ニューヨーク・タイムズ_は2022年初めにオリジナルのWordleを購入し、現在ゲームをウェブサイトでプレイできます。このプロジェクトでは再現しない社交的な要素があります。ここでは一つの秘密の単語があります。
以下に、詳細でステップバイステップな実行可能なサンプルコードをできるだけ多く含めます。
プロジェクトの概要
このプロジェクトでは、PythonとRichを使用してターミナル上で動作するWordleクローンを作成します。以下に、プロジェクトの基本的な手順を示します。
ステップ1: 単語を推測する
input()
を使用してユーザーの情報を取得する- 繰り返しコードを避けるためにループを使用する
- 集合を使用して文字をチェックする
ステップ2: ワードリストを使用する
- 手動でワードリストを作成する
- ワードリストからランダムな単語を選ぶ
- テキストを単語のリストに変換する
ステップ3: コードを関数で整理する
- メインループを設定する
- サポート関数を作成する
- コードをテストする
ステップ4: Richでゲームのスタイルを設定する
- Richコンソールプリンターを使用する
- 前回の予想を追跡し、色を付ける
- ゲームをスタイリッシュに終了する
ステップ5: バリデーションとユーザーフィードバックの追加
- ワードリストが空でないことを確認する
- 受け入れる単語を考える
- ユーザーの予想した単語を検証する
ステップ6: ゲームとコードのクリーンアップ
- 定数を使用して概念に名前を付ける
- 使用された文字の概要を追加する
- ゲームをきれいに終了する
これらの手順を実行すると、PythonとRichを使用してターミナル上で動作するWordleクローンが完成します。このチュートリアルを進めるには、Pythonの基本を理解している必要があります。次のセクションでは、このプロジェクトに必要なプレリクイジットについて説明します。
プレリクイジット
このプロジェクトを進めるには、以下のプレリクイジットが必要です。
- Python 3.6以上がインストールされていること
- Richライブラリがインストールされていること
このプロジェクトには、PythonとRichを使用してWordleのクローンを作成します。Pythonの基礎がわかっていれば、このプロジェクトに取り組むことができます。次の手順では、Wordleクローンの作成に必要な各ステップについて詳しく説明します。
ステップ1: 単語を推測する
最初のステップでは、ユーザーに単語を推測させます。以下に、その手順の詳細を示します。
input()
を使用してユーザーの情報を取得する
ユーザーに予想した単語を入力させるためにinput()
関数を使用します。ユーザーが入力した値はguess
変数に保存されます。
ループを使用して繰り返しコードを避ける
繰り返しコードを避けるために、for
ループを使用して6回の予想を行います。
集合を使用して文字をチェックする
集合を使用して、推測した文字を追跡します。set()
関数を使用して空の集合を作成し、add()
メソッドを使用して推測した文字を集合に追加します。
これで、単語を推測するステップが完成しました。次のステップでは、ワードリストを使用してゲームを拡張します。
ステップ2: ワードリストを使用する
次のステップでは、ワードリストを使用してゲームを拡張します。以下に、その手順の詳細を示します。
手動でワードリストを作成する
手動でワードリストを作成します。この例では、5つの単語を含むリストを作成しました。
ワードリストからランダムな単語を選ぶ
random.choice()
関数を使用してワードリストからランダムな単語を選びます。random
モジュールをインポートしてから、random.choice()
関数を使用します。
テキストを単語のリストに変換する
テキストを単語のリストに変換するには、split()
メソッドを使用します。このメソッドは、テキストをスペースで区切り、単語のリストに分割します。
これで、ワードリストを使用するステップが完成しました。次のステップでは、コードを関数で整理します。
ステップ3: コードを関数で整理する
このステップでは、コードを関数に整理して、メインのループとサポート関数を作成します。以下に、その手順の詳細を示します。
メインループを設定する
main_loop()
関数を作成して、メインのループを設定します。for
ループの中にユーザーの予想を入れます。また、if __name__ == "__main__":
のブロックを使用して、スクリプトを直接実行するための条件を追加します。
サポート関数を作成する
check_guess()
関数とprint_result()
関数を作成します。check_guess()
関数では、推測した単語をチェックし、print_result()
関数では結果を出力します。
コードをテストする
テストのために、スクリプトを直接実行します。if __name__ == "__main__":
のブロックを使用してmain_loop()
関数を呼び出します。
これで、コードを関数で整理するステップが完成しました。次のステップでは、ゲームのスタイルをRichで設定します。
ステップ4: Richでゲームのスタイルを設定する
このステップでは、Richを使用してゲームのスタイルを設定します。以下に、その手順の詳細を示します。
Richコンソールプリンターを使用する
rich.console
モジュールからConsole
クラスをインポートし、console
オブジェクトを作成します。
前回の予想を追跡し、色を付ける
前回の予想の結果を追跡するために、集合を使用します。correct_letters
、misplaced_letters
、wrong_letters
という3つの集合を作成し、適切な集合に推測した文字を追加します。
ゲームをスタイリッシュに終了する
最後の予想の後、ゲームが終了することをユーザーに表示します。console.print()
関数を使用してメッセージを出力し、テキストスタイルを適用します。
これで、ゲームのスタイルを設定するステップが完成しました。次のステップでは、バリデーションとユーザーフィードバックを追加します。
ステップ5: バリデーションとユーザーフィードバックの追加
このステップでは、ワードリストが空でないことのバリデーションと、ユーザーの予想した単語を検証します。以下に、その手順の詳細を示します。
ワードリストが空でないことを確認する
ワードリストが空でないことを確認するために、if
ステートメントを使用します。ワードリストが空の場合、エラーメッセージを出力し、関数を終了します。
受け入れる単語を考える
ユーザーの予測した単語が受け入れられるものかを確認するために、if
ステートメントを使用します。予測した単語の長さが5文字でない場合、エラーメッセージを出力し、次のループに進みます。
ユーザーの予想した単語を検証する
ユーザーの予測した単語をチェックし、正しい場所にある文字、誤った場所にある文字、間違った文字にそれぞれ分類します。if
ステートメントを使用して文字をチェックし、適切な集合に追加します。
これで、バリデーションとユーザーフィードバックを追加するステップが完成しました。次のステップでは、ゲームとコードをクリーンアップします。
ステップ6: ゲームとコードをクリーンアップする
このステップでは、ゲームとコードをクリーンアップして整理します。以下に、その手順の詳細を示します。
定数を使用して概念に名前を付ける
定数を使用して、マジックナンバーを置き換え、コード内の概念に意味を持たせます。MAX_ATTEMPTS
はユーザーが持つ試行回数の最大値を表し、WORD_LENGTH
は予測する単語の長さを表します。
使用された文字の概要を追加する
使用された文字の概要をユーザーに表示します。console.print()
関数を使用してメッセージを出力し、リスト内包表記を使用して使用された文字を表示します。
ゲームをきれいに終了する
ゲームの最後に、ゲームが終了したことと正解の単語をユーザーに表示します。テキストスタイルを適用するためにconsole.print()
関数を使用します。
これで、ゲームとコードをクリーンアップするステップが完成しました。最後に、結論と次のステップに進みましょう。
結論
このチュートリアルでは、PythonとRichを使用してターミナル上で動作するWordleのクローンを作成しました。プロトタイプから始めて、徐々にアプリケーションを開発しました。Pythonの基礎を理解していれば、このプロジェクトに取り組むことができます。
次のステップとして、実際のコードをダウンロードして、WordleのクローンをPythonとRichで作成する準備が整いました。楽しんでプログラミングをして、あなた自身のWordleゲームを作り上げてください。
以上が、PythonとRichを使用してWordleのクローンを作成するチュートリアルの詳細です。このチュートリアルには詳細なステップバイステップのサンプルコードが含まれています。
続きは、実際のチュートリアルをご覧ください。