`import time
WarriorSpellOne, WarriorSpellTwo, WarriorSpellThree, WarriorSpellUltimite = ("Slash"), ("Hammer Down"), ("Flame Strike"), ("Ragnarok")
MageSpellOne, MageSpellTwo, MageSpellThree, MageSpellUltimite = ("Fireball"), ("Lightning Strike"), ("Necromancy"), ("Mutation")
ArcherSpellOne, ArcherSpellTwo, ArcherSpellThree, ArcherSpellUltimite = ("Tri-Shot"), ("Aimed Shot"), ("Snare"), ("Arrow Rain")
RougeSpellOne, RougeSpellTwo, RougeSpellThree, RougeSpellUltimite = ("Backstab"), ("Smoke Bomb"), ("Blade Toss"), ("Shadow Wars")
SpellOne, SpellTwo, SpellThree, SpellUltimite = ("N/A"), ("N/A"), ("N/A"), ("N/A")
WarriorHealth, WarriorAttack, WarriorMana = int(200), int(10), int(100)
MageHealth, MageAttack, MageMana = int(75), int(10), int(200)
ArcherHealth, ArcherAttack, ArcherMana = int(150), int(15), int(150)
RougeHealth, RougeAttack, RougeMana = int(100), int(20), int(50)
ClassHealth, ClassAttack, ClassMana = int(0), int(0), int(0)
ClassSelected = ("N/A")
Class = int(0)
Confirm = int(0)
try:
Class = int(input("\nSelect a class, Warrior(1), Mage(2), Archer(3), Rouge(4)"))
while Confirm != 1:
while Class <= 4 and Class >= 1 :
if Class == 1:
ClassHealth, ClassAttack, ClassMana = WarriorHealth, WarriorAttack, WarriorMana
SpellOne, SpellTwo, SpellThree, SpellUltimite = WarriorSpellOne, WarriorSpellTwo, WarriorSpellThree, WarriorSpellUltimite
ClassSelected = ("Warrior")
if Class == 2:
ClassHealth, ClassAttack, ClassMana = MageHealth, MageAttack, MageMana
SpellOne, SpellTwo, SpellThree, SpellUltimite = MageSpellOne, MageSpellTwo, MageSpellThree, MageSpellUltimite
ClassSelected = ("Mage")
if Class == 3:
ClassHealth, ClassAttack, ClassMana = ArcherHealth, ArcherAttack, ArcherMana
SpellOne, SpellTwo, SpellThree, SpellUltimite = ArcherSpellOne, ArcherSpellTwo, ArcherSpellThree
ClassSelected = ("Archer")
if Class == 4:
ClassHealth, ClassAttack, ClassMana = RougeHealth, RougeAttack, RougeMana
SpellOne, SpellTwo, SpellThree, SpellUltimite = RougeSpellOne, RougeSpellTwo, RougeSpellThree, RougeSpellUltimite
ClassSelected = ("Rouge")
print ("\nYou have selected the {} class. {} Health, {} Attack, {} Mana".format(ClassSelected, ClassHealth, ClassAttack, ClassMana))
print ("\nYour spells are; {}, {}, {} and {}".format(SpellOne, SpellTwo, SpellThree, SpellUltimite))
time.sleep(3)
Confirm = int(input("\nDo you want to continue with this class? Yes(1), No(0)"))
if Confirm == 0:
ClassHealth, ClassAttack, ClassMana, SpellOne, SpellTwo, SpellThree, SpellUltimite = int(0), int(0), int(0), ("N/A"), ("N/A"), ("N/A"), ("N/A")
except (ValueError, TypeError):
Class = int(input("\nInvalid Class, try again | Warrior(1), Mage(2), Archer(3), Rouge(4)"))`
我试图让自己的游戏变得有趣,这是类选择阶段 虽然验证不起作用,但当使用IDLE时,如果范围之外的数字例如5被输入,没有任何反应。当我输入一个字符时,它会说错误短语,但是当我重新输入相同的字符时,它会使程序崩溃。双重验证错误,如何解决?
任何建议,以改善验证?我还新的Python,所以我的代码知识欠缺一点
编辑 它的工作,只是把它当作书签打开,但不需要新的答案
仅供参考这里,但你的数据结构(或缺乏)是想给你添麻烦。游戏是[对象]的理想用例(https://docs.python.org/3.4/tutorial/classes.html)。另外,像'20'这样的整数已经是整数。你不必用'int(20)'来施放它们。 “Rouge”是一款化妆品产品(你正在寻找“Rogue”)。 – TigerhawkT3
有一件事可以真正帮助你:组织! – Zizouz212
之后(并且仅在**之后**),您可以按照您的要求执行此操作,请转至http://codereview.stackexchange.com。 – leekaiinthesky