2017-04-20 35 views
-1

所以基本上我试图重新创建一个在守望先锋中打开一个战利品箱到Python中的可运行程序。我试图让数组中的四个随机项目显示出来,每次用户输入'open'打开一个框。在每个盒子打开后,我希望它循环并询问他们是否想要打开另一个盒子,或者如果他们不打开,然后停止该程序。这里是我的代码到目前为止:试图模拟在Python中的守望先锋战利品盒开放程序

import random 

# welcome 
print("Welcome to the Overwatch Loot Box Simulator!") 

OpenBox = input("Type 'open' to open a loot box!") 

OverwatchSkins = [ 
    'Legendary: Oni Genji', 
    'Epic: Frostbite Pharah', 
    'Rare: Banana Winston', 
    'Rare: Cobalt Reinhardt', 
    'Epic: Synaesthesia Lucio', 
    'Legendary: Lone Wolf Hanzo', 
    'Rare: Rose Widowmaker', 
    'Rare: Celestial Mercy', 
    'Epic: Carbon Fiber D.VA', 
    'Legendary: Dr. Junkenstein Junkrat', 
    'Epic: Nihon Genji', 
    'Rare: Blood Reaper', 
    'Rare: Ebony McCree', 
    'Epic: Demon Hanzo', 
    'Rare: Peridot Ana', 
    'Rare: Lemonlime D.VA', 
    'Epic: Taegeukgi D.VA', 
    'Legendary: Mei-rry Mei', 
    'Legendary: Augmented Sombra', 
    'Rare: Technomancer Symmetra', 
    'Rare: Mud Roadhog' 
] 

if OpenBox == "open": 
    print(random.choice(OverwatchSkins)) 

OverwatchSkins数组将只填补更多的名称后。任何帮助是极大的赞赏!

+1

至少懒得去正确地格式化你的问题。 – tambre

+0

[请求用户输入,直到他们给出有效响应]的可能重复(http://stackoverflow.com/questions/23294658/asking-the-user-for-input-until-they-give-a-valid-回复) – WhatsThePoint

回答

0

您可以在while(True) -loop包裹的一切,用break停止循环,如果用户将在比开放以外的东西。

确保只有输入和输出在循环中,因为您不希望在每次传递时重新定义您的列表。

import random 
print("Welcome to the Overwatch Loot Box Simulator!") 
OverwatchSkins = ['Legendary: Oni Genji', 'Epic: Frostbite Pharah', 'Rare: Banana Winston', 'Rare: Cobalt Reinhardt', 'Epic: Synaesthesia Lucio', 'Legendary: Lone Wolf Hanzo', 'Rare: Rose Widowmaker', 'Rare: Celestial Mercy', 'Epic: Carbon Fiber D.VA', 'Legendary: Dr. Junkenstein Junkrat', 'Epic: Nihon Genji', 'Rare: Blood Reaper', 'Rare: Ebony McCree', 'Epic: Demon Hanzo', 'Rare: Peridot Ana', 'Rare: Lemonlime D.VA', 'Epic: Taegeukgi D.VA', 'Legendary: Mei-rry Mei', 'Legendary: Augmented Sombra', 'Rare: Technomancer Symmetra', 'Rare: Mud Roadhog'] 

while(True): 
    OpenBox = input("Type 'open' to open a loot box! ") 
    if OpenBox == "open": 
     print(random.choice(OverwatchSkins)) 
    else: 
     break 
+0

太棒了,谢谢你!每当打开一个“盒子”时,你是否知道如何从阵列中放出四个随机项目? – mastermind

+0

@mastermind,看看['random.sample()'](https://docs.python.org/3.6/library/random.html#random.sample) –

0

至于建议由基督教,类似如下:

import random 
import sys 

OverwatchSkins = ['Legendary: Oni Genji', 'Epic: Frostbite Pharah', 'Rare: Banana Winston', 'Rare: Cobalt Reinhardt', 'Epic: Synaesthesia Lucio', 'Legendary: Lone Wolf Hanzo', 'Rare: Rose Widowmaker', 'Rare: Celestial Mercy', 'Epic: Carbon Fiber D.VA', 'Legendary: Dr. Junkenstein Junkrat', 'Epic: Nihon Genji', 'Rare: Blood Reaper', 'Rare: Ebony McCree', 'Epic: Demon Hanzo', 'Rare: Peridot Ana', 'Rare: Lemonlime D.VA', 'Epic: Taegeukgi D.VA', 'Legendary: Mei-rry Mei', 'Legendary: Augmented Sombra', 'Rare: Technomancer Symmetra', 'Rare: Mud Roadhog'] 

while True: 
    key = raw_input('\nType "open" to open a loot box!\n(Type "q" to exit.)\nYour input: ') 
    if key.lower()=='q': 
     sys.exit() 
    elif key.lower()=='open': 
     print random.choice(OverwatchSkins) 
    else: 
     print "Invalid input, try again!"