python - 不知道如何让用户名存储整齐
问题描述
我希望游戏询问用户他的姓名并整齐地存储它。如果用户只是按 Enter 键,那么游戏会说请输入名称。存储名称后,我需要放置一个表示用户姓名的函数,以便我可以在玩游戏时提及他的姓名。
import random
import time
class Warrior:
def Warrior(self, health, steel_armor, healing_potion, attack, rage):
self.health = health
self.steel_armor = steel_armor
self.healing_potion = healing_potion
self.attack = attack
self.rage = rage
class Mage:
def Mage(self, health_magic, magic_armor, magic_heal, magic_attack, mana):
self.health = health_magic
self.magic_armor = magic_armor
self.magic_heal = magic_heal
self.magic_attack = magic_attack
self.mana = mana
class Archer:
def Archer(self, health_spirit, elevens_armor, spiritual_heal, spiritual_attack, spirit):
self.health = health_spirit
self.elevens_armor = elevens_armor
self.spiritual_heal = spiritual_heal
self.spiritual_attack = spiritual_attack
self.spirit = spirit
classes = ["Warrior", "Mage", "Archer"]
class Name:
def Name(self, input):
self.name = name
Name = input(print("Enter your name {} ").format(player_class) + "!")
name = ["Name"]
run = True
main_menu = True
Play = input
Warrior = Warrior
Mage = Mage
Archer = Archer
while run:
while main_menu:
question = input("To play enter [Play]: ")
if question != 'Play':
print("Please enter a valid option")
continue
else:
break
print("you were a....."),
print("Choose your class!")
player_class = input(classes)
while player_class not in classes:
player_class = input(classes)
print("Enter your name {}!".format(player_class))
player_name = input(Name) #here is my problem
print("Welcome to Glaux, {}!".format(player_name) + " you may choose a weapon to have.")
print("")
break
解决方案
为什么 Name 是它自己的一个类?
我会创建一个类 Player 并将“名称”作为该类的属性。
class Player:
def __init__(self, name, class, ...):
self.name = name
self.class = class
...
那么你可以提示一个这样的名字:
name = input("What's your name?: ")
然后根据提示信息创建一个播放器实例
推荐阅读
- python - 多用户 Conda 工作流程
- scala - 如何将 csv 文件转换为 Seq[String]?
- reactjs - 提交按钮后的对象状态反应
- c# - AUTHORIZATION_INVALID_TOKEN
- java - appengine-maven-插件。JsonSyntaxException:java.lang.IllegalStateException:应为 BEGIN_ARRAY,但在第 2 行第 1 列路径为 STRING
- c++ - boost::asio 下是否有可用的“异步消息队列”?
- c# - 关于构建 LINQ 查询的一个“简单”问题让我抓狂
- java - 使用两个实例变量在对象上切换大小写
- reactjs - Aspnet 核心、身份服务器和反应:如何从外部提供者那里检索访问令牌作为声明
- azure - 如何从 Azure Functions 创建到 SignalR 服务的输出绑定?