Pythonの戦闘ゲーム作成に当たって、分からない事が色々と……
概要
現在Pythonで、以前C言語で作成していたゲームの移植を行っています。
しかし、その中で上手くいかない点が多々あるのですが、それについてご指摘いただきたいです。少々拙いコードですが、色々とご指摘いただけるとありがたいです。
現段階での問題点
1.プレイヤーの名前が最初の部分(「勇者○○よ、行け!」の部分)でしか反映されず、以降ゲーム内では無記入状態になってしまう所。
2.ダメージの数値が常時一定(例:ゲーム開始から敵撃破まで与えられるダメージがずっと5のままでとても単調になってしまう)で、ゲーム終了時までそれが続く。
class Player:
def __init__ (self,name:str):
self.name=name
import keyboard
import random
import sys
import time
from random import randint
from player import Player
playerHP=200
enemyHP=200
playerMP=20
MPuse=25
random.seed(20)
attack_my=random.randint(20,30)
attack_cpu=random.randint(20,30)
player_name=str()
button=None
playerguard=10
enemyguard=10
def title():
print("******************")
print("*かんたんクエスト*")
print("******************")
def name_entry():
player_name=input('名前を入力してください>>>')
player=Player(player_name)
print('勇者{}よ、行け!'.format(player.name),sep='')
def show_text(player_name):
print(format(player_name))
def standby():
print("aキー(攻撃)を押してください\n")
print("何かキーを打ってください\n")
def turn():
global player_name
print("***{}のターン!***".format(player_name),sep='')
button=input("ボタンを押してね")
if button=="a":
global enemyHP
global playerHP
global attack_my
global attack_cpu
global playerguard
global enemyguard
if enemyHP > 0:
time.sleep(1)
enemyHP=enemyHP-(attack_my-enemyguard)
print("モンスター:{}のダメージ".format(int(attack_my-playerguard)))
print("\n")
if playerHP > 0:
if enemyHP > 0:
print("***敵のターン!***\n")
playerHP=playerHP-(attack_cpu-playerguard)
print("{}:{}のダメージ".format(player_name,int(attack_cpu-playerguard)))
else:
time.sleep(1)
print("WAIT")
while True:
title()
name_entry()
while True:
print("\n")
print("",str(player_name),"のHP:",int(playerHP)," 敵のHP:",int(enemyHP),"\n")
standby()
turn()
if enemyHP<=0:
print("モンスターを倒した!\n")
print("************")
print("*GAME CLEAR*")
print("************")
sys.exit()
elif playerHP<=0:
print("{}は敗れた・・・\n".format(player_name))
print("GAME OVER")
sys.exit()
自分で試したこと
インターネットでPythonのゲーム作成についての記事を色々と調べてみたのですが、なかなか上手くいかず苦戦しています。