Pythonでレトロゲームをつろう!!(佐藤 誠 の あくまでも独り言)

Pyhtonで2Dレトロゲームを作っていきます!! たまに、Googleアドセンスからグルメにスイーツ、子供の受験、古墳に神社・・・色々と楽しみながら書い伝えていきます!!

じゃんけんゲームの作り方⑤ モンスターじゃんけん(基本)を完成(time.sleep、while等) Let's Python 10(初級編)

ブログランキング・にほんブログ村へにほんブログ村

どうも〜 Python誠です。

 

じゃんけんゲームの第5回目を解説していきます。


今回で、じゃんけんゲームの基本を完成させて、次回はモンスターとの駆け引きができるように、プログラミングしていきます。

 

今回は・・・

  1. timeモジュールのsleepで進行スピードを調整
  2. 勝敗数をカウントし、タイトルを表示
  3. while(ループ)を使い繰り返し対決

について解説します。

 

www.makotoblog.net

 

じゃんけんゲーム(基本)

こちらが、じゃんけんゲーム(基本)の完成コードです。

あとで解説していくので、まずはPythonコードを打ち込んでみましょう!😀

黄色のラインマーカー部分が、前回からの追加・変更点です。

(コピー&ペーストでもok!)

# ゲーム:「モンスターじゃんけん⑤」(基本)完成

import random
import time

jan = ["グー", "チョキ", "パー"]
judge = ["あいこ", "負け", "勝ち"]
win = 0
lose = 0
draw = 0

print("「モンスターじゃんけん スタート!!」\n")

while True:

    # プレーヤー
    print("0:グー 1:チョキ 2:パー")
    p = int(input("じゃんけん・・・"))
    print("プレーヤー: " + jan[p])
    time.sleep(0.8)

    # モンスター
    m = random.randint(0, 2)
    print("モンスター: " + jan[m])
    time.sleep(0.8)

    # 勝敗判定
    i = (p - m) % 3
    print(judge[i])
    if i == 0:
        draw = draw + 1
    elif i == 1:
        lose = lose + 1
    else:
        win = win + 1
    time.sleep(0.8)

    # バトルの結果を出力
    print("{}勝/{}負/{}引き分け\n".format(win, lose, draw))
    if win == 3:
        print("「3勝で、モンスターを倒しました!」")
        break
    if lose == 3:
        print("「3敗で、プレーヤーは死にました」")
        break
    time.sleep(0.8) 

・じゃんけんゲーム(基本)のルール

「モンスターじゃんけん⑤」をPyhtonで入力できたら、早速実行してみましょう! 

ルールは次の通りです。

プレーヤーとモンスターが「じゃんけん」をして、どちらかが先に3勝した方が、そのバトルに勝利したことになります。

  

www.makotoblog.net

 

追加・変更した行の解説

それでは、プログラムの解説をしていきましょう。

 

1.timeモジュールのsleepで進行スピードを調節

 まずは、timeモジュールをインポートします。

import time

 これで、time.sleep(秒数) で時間を一定の秒数 止めることができるようになります。 

実際には、それぞれプログラムのまとまりごとの最後の行に time.sleep(0.8) を記述しています。

    # プレーヤー
    ・
    ・ time.sleep(0.8) # モンスター
    ・
    ・ time.sleep(0.8) # 勝敗判定     ・
    ・ time.sleep(0.8) # バトルの結果を出力     ・
    ・ time.sleep(0.8) 

こうすることで、順番に# プレーヤー# モンスター# 勝敗判定# バトルの結果を出力 ・・・と0.8秒の間を取りながら、ゲームが進行していきます。

 

2.勝敗数をカウントし、タイトルを表示

新たに、winlosedraw の3つの変数を宣言し、# 勝敗判定 のなかで、勝敗数をカウントしていきます。

 

あと、print()関数で、プログラム実行時にタイトル:「モンスターじゃんけん スタート!!」と表示(出力)します。

 文字列の末尾に「 \n 」と書くことにより、改行することができます。

win = 0
lose = 0
draw = 0

print("「モンスターじゃんけん スタート!!」\n")
   ・
   ・
   ・
# 勝敗判定
   ・
   ・
if i == 0:
draw = draw + 1
elif i == 1:
lose = lose + 1
else:
win = win + 1

 

3.while True(ループ)を使い繰り返し対決

while True: 関数で、つづくブロック(半角スペース4字下げした部分)を繰り返し実行(ループ)します。

while True:

    # プレーヤー
    ・     ・
    ・

 

このままだと、while True のループは永遠に繰り返されるので、 バトルの結果を表示したあと、勝利数に応じて break でプログラムを終了します。

    # バトルの結果を出力
    print("{}勝/{}負/{}引き分け\n".format(win, lose, draw))
    if win == 3:
        print("「3勝で、モンスターを倒しました!」")
        break
    if lose == 3:
        print("「3敗で、プレーヤーは死にました」")
        break
    time.sleep(0.8

 .format()で変数 winlosedraw のカウント数を、左の文字列の中のそれぞれの{}のなかにはめ込み、print() 関数で出力します。

  

www.makotoblog.net

 

まとめ・・・

今回で、じゃんけんゲームの基本を完成しました。

次回はプレーヤーの出し手の履歴を元に、モンスターが出し手を決めるプログラムを作っていきましょう!!(プチAI!?😳)

モンスターとの駆け引きができるようになりますよ!!

 

それでは、また次回お会いしましょう!

「 Let’s Python!!🤗」 

・・・ by Python誠。

  

www.makotoblog.net