現在の見出し:3.2節:最終版ゲームの作成
見出し一覧
- 3.2節:最終版ゲームの作成
- - 完全版ゲームの実装
- - ユーザー体験向上の追加
【PR】『Python』を学べる企業・個人向けのプログラミングコース
完全版ゲームの実装
前節(第3章 3.1節)で作成したコードを基盤として、第3章3.2節では「完全版ゲームの実装」と「ユーザー体験向上の追加」を行っていきます。前節では基本的なゲームループループは一連の命令を繰り返し実行する構造です。と継続確認機能を実装しましたが、コンピュータコンピュータは様々な計算やデータ処理を行う電子機器です。ーの選択が固定値になっているため、ゲームとしての面白さが不足しています。
本セクションでは、算術演算子算術演算子は数値の計算を行うための記号や命令です。と条件分岐条件分岐はプログラム内で指定した条件によって処理の分岐を行う制御構造です。を組み合わせた簡易的な選択変動処理により、コンピューター選択に変動性を持たせる機能を追加し、プレイヤーが予測しづらい挑戦的なゲームを実現します。変数変数はデータを一時的に記憶しておく場所です。を使用した計算処理によってコンピューターの選択を動的に変更し、プレイヤーが何度プレイしても新鮮な体験を得られる実用的なじゃんけんゲームとしての完成度を高めます。
# コード
print("=== じゃんけんゲームへようこそ! ===")
game_count = 0
playing = True
while playing:
print("\n--- 新しいゲーム ---")
print("選択肢: グー、チョキ、パー")
player_choice = input("あなたの選択を入力してください: ")
if player_choice == "グー" or player_choice == "チョキ" or player_choice == "パー":
print(f"【プレイヤー】あなたが選んだのは: {player_choice}")
print("有効な選択です。")
game_count = game_count + 1
computer_number = (game_count * 7 + 3) % 3 + 1
if computer_number == 1:
computer_choice = "グー"
elif computer_number == 2:
computer_choice = "チョキ"
else:
computer_choice = "パー"
print(f"【コンピューター】コンピューターが選んだのは: {computer_choice}")
print(f"【対戦】{player_choice} vs {computer_choice}")
if player_choice == computer_choice:
result = "引き分け"
elif player_choice == "グー" and computer_choice == "チョキ":
result = "あなたの勝ち"
elif player_choice == "チョキ" and computer_choice == "パー":
result = "あなたの勝ち"
elif player_choice == "パー" and computer_choice == "グー":
result = "あなたの勝ち"
elif player_choice == "グー" and computer_choice == "パー":
result = "あなたの負け"
elif player_choice == "チョキ" and computer_choice == "グー":
result = "あなたの負け"
elif player_choice == "パー" and computer_choice == "チョキ":
result = "あなたの負け"
print(f"【最終結果】{result}")
if result == "あなたの勝ち":
print("🎉 おめでとうございます!素晴らしい勝利です!")
elif result == "あなたの負け":
print("😅 残念でした。次回はきっと勝てますよ!")
else:
print("😐 引き分けです。もう一回チャレンジしてみましょう!")
else:
print("❌ 無効な選択です。グー、チョキ、パーのいずれかを入力してください。")
print("\n--- 継続確認 ---")
continue_game = input("もう一度プレイしますか? (y/n): ")
continue_game_lower = continue_game.lower()
if continue_game_lower != "y":
playing = False
print("🎮 ゲームを終了します。ありがとうございました!")
else:
print("🔄 次のゲームを開始します...")
# 実行結果
=== じゃんけんゲームへようこそ! ===
--- 新しいゲーム ---
選択肢: グー、チョキ、パー
あなたの選択を入力してください: グー
【プレイヤー】あなたが選んだのは: グー
有効な選択です。
【コンピューター】コンピューターが選んだのは: グー
【対戦】グー vs グー
【最終結果】引き分け
😐 引き分けです。もう一回チャレンジしてみましょう!
--- 継続確認 ---
もう一度プレイしますか? (y/n): y
🔄 次のゲームを開始します...
--- 新しいゲーム ---
選択肢: グー、チョキ、パー
あなたの選択を入力してください: パー
【プレイヤー】あなたが選んだのは: パー
有効な選択です。
【コンピューター】コンピューターが選んだのは: チョキ
【対戦】パー vs チョキ
【最終結果】あなたの負け
😅 残念でした。次回はきっと勝てますよ!
--- 継続確認 ---
もう一度プレイしますか? (y/n): n
🎮 ゲームを終了します。ありがとうございました!
| 行数 | 種別 | コード | 解説 |
|---|---|---|---|
| 2行目 | 新規 | game_count = 0 |
ゲーム回数をカウントするための変数を初期化する処理 |
| 12行目 | 新規 | game_count = game_count + 1 |
ゲーム回数をカウントアップする処理 |
| 13行目 | 変更 | computer_number = (game_count * 7 + 3) % 3 + 1 |
ゲーム回数を使用した計算でコンピューター選択値を動的に算出する処理 |
| 33行目 | 変更 | print("🎉 おめでとうございます!素晴らしい勝利です!") |
勝利時に絵文字付きの祝福メッセージを表示する処理 |
| 35行目 | 変更 | print("😅 残念でした。次回はきっと勝てますよ!") |
敗北時に絵文字付きの励ましメッセージを表示する処理 |
| 37行目 | 変更 | print("😐 引き分けです。もう一回チャレンジしてみましょう!") |
引き分け時に絵文字付きの再挑戦メッセージを表示する処理 |
| 39行目 | 変更 | print("❌ 無効な選択です。グー、チョキ、パーのいずれかを入力してください。") |
無効入力時に絵文字付きのエラーメッセージを表示する処理 |
| 45行目 | 変更 | print("🎮 ゲームを終了します。ありがとうございました!") |
ゲーム終了時に絵文字付きの終了メッセージを表示する処理 |
| 47行目 | 変更 | print("🔄 次のゲームを開始します...") |
ゲーム継続時に絵文字付きの継続メッセージを表示する処理 |

















