2022年8月26日金曜日

Pythonでゲーム作り(Python Monster)④ライバルとの勝負

 """
# とりあえずの変数(前回のプログラムと合体する場合は、削除)
import random
name = "主人公"
rival = "ライバル"
gsk = "主人公御三家"
rgsk = "ライバル御三家"
# --------------------- 削除ここまで ---------------------
"""
# ライバルとの勝負
print("\n  せっかくだから、", name , "!勝負するぞ!?")
print("勝負する!?\nYes -> 1 , No -> 2")
x = int(input(">>>"))
while True:
    if x == 1:
        print("勝負だ!!!")
        break
    elif x == 2:
        print("強制勝負だ!!!")
        break
    else:
        print("無効なkey")
print("--ライバルの", rival ,"が勝負を仕掛けてきた。--")
print("\n",name,"--\
    \n  いけ!", gsk ,"君に決めた!")
print("\n",rival,"--\
    \n  いけ!", rgsk ,"君に決めた!")
# 御三家の初期スペックの設定
gsklv = 5  # 主人公の御三家のLv
gskhp = 50  # 主人公の御三家のHP
gskat = ["たいあたり","なきごえ"]  # 主人公の御三家の覚えている技
gskat_pw = [10 , 0]  # 主人公の御三家の技パワー
gsklv = 5  # ライバルの御三家のLv
rgskhp = 60  # ライバルの御三家のHP
rgskat = ["ずつき","なきごえ"]   # ライバルの御三家の覚えている技
rgskat_pw = [10 , 0]  # ライバルの御三家の技パワー
# 戦闘シーン
while True:
    print(gsk,"HP:",gskhp)  # 主人公御三家の残りHP
    print(rgsk,"HP:",rgskhp)  # ライバル御三家の残りHP
    
    en_at = random.randint(0,1)
    
    while True:
        print("\nたたかう -> 1 , バッグ ->2 , パイモン -> 3 , にげる ->4 ")
        x = int(input(">>>"))
        if x == 1:
            print("たたかう--\n  ",gskat[0],"->1",gskat[1],"->2")
            x = int(input(">>>"))
            if x == 1:
                print(gsk,"のこうげき!", gskat[0])  # 主人公の攻撃
                rgskhp = rgskhp - gskat_pw[0]  # ライバルのライフ計算
                break
            elif x == 2:
                print(gsk,"のこうげき!", gskat[1])  # 主人公の攻撃
                rgskhp = rgskhp - gskat_pw[1]  # ライバルのライフ計算
                break        
            else:
                print("無効なkey")
        elif x == 2:
            print("なにもない")
        elif x == 3:
            print("ひかえのパイモンはいない")
        elif x == 4:
            print("にげられない!")
        else:
            print("無効なkey")
            
    print(rgsk,"のこうげき!", rgskat[en_at])  # ライバルの攻撃
    gskhp = gskhp - rgskat_pw[en_at]  # 主人公のライフ計算
    
    
    
    if gskhp == 0 and rgskhp > 0:  # ライバル勝利
        print("\n",name,"--\
            \n  もう戦える パイモンが残っていない・・・目の前が真っ暗になった。")
        print("\n",rival,"--\
            \n  がはは! まだまだだな~")
        print("\nもう一度勝負する?\n Yes -> 1 , No -> 2")
        x = int(input(">>>"))
                
        if x == 1:
            print("\n",rival,"--\
            \n  さすが", name ,"!!そうこなくっちゃ!")
            gskhp = 50
            rgskhp = 60
        elif x == 2:
            print("\n",rival,"--\
            \n  拒否だと", name ,"!!\
            \n  この、ポンコツデュエリストが!強制勝負。全速前進だ!")
            gskhp = 50
            rgskhp = 60
        else:
            print("無効なkey")
    elif gskhp > 0 and rgskhp == 0:
        print("\n",rival,"--\
            \n  ま、まっ、まけるとは~orz")
        print("\n",name,"は、勝利した。")
        break
    else:
        print()


作成してみたものの、もう少し、簡潔に書きたいところ。
同じ結果でも納得がいっていないのが現状。
セリフ見ればわかると思うが、世界観も変わってしまった