現在の見出し:2.3節:試行回数管理機能の構築
見出し一覧
- 2.3節:試行回数管理機能の構築
- - 試行カウンタの実装
- - 試行回数表示の実装
【PR】『Python』を学べる企業・個人向けのプログラミングコース
試行カウンタの実装
第2章2.3節では、前節(第2章2.2節)で作成したコードを基盤として、ゲームの実用性を向上させるため、試行回数管理機能を追加実装していきます。
試行回数の管理機能は、ユーザーが何回で正解できたかを表示することによって、ゲーム体験を向上させる重要な要素です。試行カウンタの実装では、attempt_count変数変数はデータを一時的に記憶しておく場所です。を0で初期化し、ユーザーが数値を入力するたびに代入代入は変数に値を割り当てる操作です。演算子演算子は数値や文字列などのデータを扱う際に使用される記号や記述方法です。を使用して、カウンタを1ずつ増加させる仕組みを構築します。
カウンタの更新タイミングは、whilewhile文はプログラミングの制御構造の一つで、条件が真である間に指定された処理を繰り返し実行するループ構文です。文の各ループループは一連の命令を繰り返し実行する構造です。開始時にカウンタを更新することによって、実際の試行回数と表示される回数の一致を保証できます。この仕組みによってユーザーの挑戦回数を正確に追跡し、最終的な成績評価に活用できる機能を実現していきます。
以下が前節のコードに、試行カウンタ機能を追加したプログラムプログラムはコンピュータに対して何をすべきかを指示する一連の命令です。です。試行回数管理変数の初期化、代入演算子による効率的なカウンタ増加処理、各試行時の回数更新機能を実装しています。
# コード
answer_number = 42
attempt_count = 0
while True:
attempt_count += 1
user_input = input("1から100までの数値を入力してください: ")
user_number = int(user_input)
print("あなたの入力:", user_number)
if user_number == answer_number:
print(f"正解です!{answer_number}が正解でした。")
print("おめでとうございます!")
break
elif user_number > answer_number:
print(f"不正解です。あなたの予想{user_number}は正解より大きいです。")
print("もう少し小さな数字を試してみてください。")
else:
print(f"不正解です。あなたの予想{user_number}は正解より小さいです。")
print("もう少し大きな数字を試してみてください。")
print("ゲームが終了しました。お疲れ様でした!")
# 実行結果
1から100までの数値を入力してください: 75
あなたの入力: 75
不正解です。あなたの予想75は正解より大きいです。
もう少し小さな数字を試してみてください。
1から100までの数値を入力してください: 35
あなたの入力: 35
不正解です。あなたの予想35は正解より小さいです。
もう少し大きな数字を試してみてください。
1から100までの数値を入力してください: 42
あなたの入力: 42
正解です!42が正解でした。
おめでとうございます!
ゲームが終了しました。お疲れ様でした!
行数 | コード | 解説 |
---|---|---|
1行目 | answer_number = 42 |
ゲームの正解となる数値42をanswer_number変数に代入する |
2行目 | attempt_count = 0 |
試行回数を管理するカウンタ変数を0で初期化する |
3行目 | while True: |
常にTrueの条件でwhile文を設定し無限ループ無限ループはプログラムが終了条件を満たさずに永続的に繰り返される状態で、意図的に作成される場合とプログラミングエラーの場合があります。を作成する |
4行目 | attempt_count += 1 |
代入演算子を使用してattempt_count変数を1増加させる |
5行目 | user_input = input("1から100までの数値を入力してください: ") |
ループ内でinput()関数関数は一定の処理をまとめたプログラムの塊です。を使用してユーザーから文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。形式で数値を受け取る |
6行目 | user_number = int(user_input) |
int()関数を使用して文字列を整数型に変換し、user_number変数に代入する |
7行目 | print("あなたの入力:", user_number) |
ユーザーが入力した数値を分かりやすいメッセージと共に表示する |
8行目 | if user_number == answer_number: |
等価性演算子(==)を使用してユーザー入力値と正解数値を比較する |
9行目 | print(f"正解です!{answer_number}が正解でした。") |
正解時のメッセージをf-stringを使用して動的に生成し表示する |
10行目 | print("おめでとうございます!") |
正解時の追加メッセージを表示してユーザーを祝福する |
11行目 | break |
break文を使用してwhile文から即座に脱出しループを終了する |
12行目 | elif user_number > answer_number: |
比較演算子比較演算子は二つの値を比較する際に使用する記号です。(>)を使用してユーザー入力値が正解数値より大きいかを判定する |
13行目 | print(f"不正解です。あなたの予想{user_number}は正解より大きいです。") |
入力値が大きい場合のメッセージをf-stringで動的に生成し表示する |
14行目 | print("もう少し小さな数字を試してみてください。") |
ユーザーへの具体的なヒントメッセージを表示する |
15行目 | else: |
上記の条件に該当しない場合(入力値が小さい場合)に実行される処理を定義する |
16行目 | print(f"不正解です。あなたの予想{user_number}は正解より小さいです。") |
入力値が小さい場合のメッセージをf-stringで動的に生成し表示する |
17行目 | print("もう少し大きな数字を試してみてください。") |
ユーザーへの具体的なヒントメッセージを表示する |
18行目 | print("ゲームが終了しました。お疲れ様でした!") |
while文終了後に実行される最終的なゲーム完了メッセージを表示する |