現在の見出し:2.2節:繰り返し処理の構築
見出し一覧
- 2.2節:繰り返し処理の構築
- - while文によるゲーム継続の実装
- - 終了条件判定の実装
【PR】『Python』を学べる企業・個人向けのプログラミングコース
while文によるゲーム継続の実装
>第2章2.2節では、前節(第2章2.1節)で作成したコードを基盤として、ゲームの実用性を大幅に向上させるため、while文による繰り返し処理を実装していきます。前節では一度の入力で正解・不正解を判定し終了していましたが、実際の数当てゲームでは「不正解の場合は再度挑戦できる」機能が必要です。while文を使用することによって、ユーザーが正解するまで何度でも挑戦できるゲームを実現できます。
while文による繰り返し処理では、ループループは一連の命令を繰り返し実行する構造です。継続条件をブール値で管理することが基本的な実装パターンです。game_continuecontinue文は、ループ処理で特定条件時に現在の繰り返しをスキップして次の繰り返しに進む制御文で、多くの言語でサポートされています。という変数変数はデータを一時的に記憶しておく場所です。にTrueを代入代入は変数に値を割り当てる操作です。し、この変数がTrueである限りゲームを継続する仕組みを構築します。正解時にgame_continueをFalseに変更することによって、while文の条件が偽になりループから脱出する制御構造制御構造はプログラムの処理を制御するために使われる命令の流れです。を実現していきます。
ループ内では前節で実装した入力・判定・出力の一連の処理を実行し、さらに適切な終了条件を設定することが重要です。各試行でユーザーからの入力を受け取り、大小比較による判定を行い、結果メッセージを表示する処理を繰り返します。各試行とは、ユーザーが数値を入力して、正解判定を受ける一回分の挑戦を指します。ブール値による継続条件管理によって、プログラムプログラムはコンピュータに対して何をすべきかを指示する一連の命令です。の制御が明確になり、保守性が向上します。
以下が前節のコードに、while文による繰り返し処理を追加したプログラムです。ブール値変数による継続条件管理、while文による基本的なゲームループ、適切な終了条件設定を実装しています。
# コード
answer_number = 42
game_continue = True
while game_continue:
user_input = input("1から100までの数値を入力してください: ")
user_number = int(user_input)
print("あなたの入力:", user_number)
if user_number == answer_number:
print(f"正解です!{answer_number}が正解でした。")
print("おめでとうございます!")
game_continue = False
elif user_number > answer_number:
print(f"不正解です。あなたの予想{user_number}は正解より大きいです。")
print("もう少し小さな数字を試してみてください。")
else:
print(f"不正解です。あなたの予想{user_number}は正解より小さいです。")
print("もう少し大きな数字を試してみてください。")
# 実行結果
1から100までの数値を入力してください: 60
あなたの入力: 60
不正解です。あなたの予想60は正解より大きいです。
もう少し小さな数字を試してみてください。
1から100までの数値を入力してください: 30
あなたの入力: 30
不正解です。あなたの予想30は正解より小さいです。
もう少し大きな数字を試してみてください。
1から100までの数値を入力してください: 42
あなたの入力: 42
正解です!42が正解でした。
おめでとうございます!
行数 | コード | 解説 |
---|---|---|
1行目 | answer_number = 42 |
ゲームの正解となる数値42をanswer_number変数に代入する |
2行目 | game_continue = True |
ゲーム継続条件を管理するブール値変数にTrueを代入して初期化する |
3行目 | while game_continue: |
game_continue変数がTrueである限り繰り返し処理を実行するwhile文を設定する |
4行目 | user_input = input("1から100までの数値を入力してください: ") |
ループ内でinput()関数関数は一定の処理をまとめたプログラムの塊です。を使用してユーザーから文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。形式で数値を受け取る |
5行目 | user_number = int(user_input) |
int()関数を使用して文字列を整数型に変換し、user_number変数に代入する |
6行目 | print("あなたの入力:", user_number) |
ユーザーが入力した数値を分かりやすいメッセージと共に表示する |
7行目 | if user_number == answer_number: |
等価性演算子演算子は数値や文字列などのデータを扱う際に使用される記号や記述方法です。(==)を使用してユーザー入力値と正解数値を比較する |
8行目 | print(f"正解です!{answer_number}が正解でした。") |
正解時のメッセージをf-stringを使用して動的に生成し表示する |
9行目 | print("おめでとうございます!") |
正解時の追加メッセージを表示してユーザーを祝福する |
10行目 | game_continue = False |
正解時にgame_continue変数をFalseに変更してwhile文の終了条件を設定する |
11行目 | elif user_number > answer_number: |
比較演算子比較演算子は二つの値を比較する際に使用する記号です。(>)を使用してユーザー入力値が正解数値より大きいかを判定する |
12行目 | print(f"不正解です。あなたの予想{user_number}は正解より大きいです。") |
入力値が大きい場合のメッセージをf-stringで動的に生成し表示する |
13行目 | print("もう少し小さな数字を試してみてください。") |
ユーザーへの具体的なヒントメッセージを表示する |
14行目 | else: |
上記の条件に該当しない場合(入力値が小さい場合)に実行される処理を定義する |
15行目 | print(f"不正解です。あなたの予想{user_number}は正解より小さいです。") |
入力値が小さい場合のメッセージをf-stringで動的に生成し表示する |
16行目 | print("もう少し大きな数字を試してみてください。") |
ユーザーへの具体的なヒントメッセージを表示する |