重复主要任务
我正在做一个个人项目,是一个老虎机游戏。我需要用户输入是否想要再玩一次,但我不知道怎么让它重复进行。
我尝试创建一个叫做repeat的函数:
def repeat(Money):
Win(Money)
print(WinCheckValue, Money)
playagain(Money)
repeat(Money)
我定义了这个函数,意思是它会重复运行,但它只会执行“再玩一次”,而不会执行其他的函数。
所有代码(我对Python还很陌生):
import random
Money = 10
def SlotRoller(number1, number2):
return random.randint(number1, number2)
slot1 = SlotRoller(1, 3)
slot2 = SlotRoller(1, 3)
slot3 = SlotRoller(1, 3)
match slot1:
case 1:
slot1 = "cherry"
case 2:
slot1 = "grape"
case 3:
slot1 = "orange"
match slot2:
case 1:
slot2 = "cherry"
case 2:
slot2 = "grape"
case 3:
slot2 = "orange"
match slot3:
case 1:
slot3 = "cherry"
case 2:
slot3 = "grape"
case 3:
slot3 = "orange"
WinCheckValue = [slot1, slot2, slot3]
def Win(Money):
Money = Money - 1
match WinCheckValue:
case ["orange", "orange", "orange"]:
print("!Big Win!")
Money+=25
return Money
case ["grape", "grape", "grape"]:
print("!Big Win!")
Money+=25
return Money
case ["cherry", "cherry", "cherry"]:
print("!Big Win!")
Money+=25
return Money
playagain(Money)
def playagain(Money):
n = input("Would you like to play again? (y/n)")
if n == "y":
Win(Money)
else: print("Ok")
def repeat(Money):
Win(Money)
print(WinCheckValue, Money)
playagain(Money)
repeat(Money)
repeat(Money)
2 个回答
-1
这里有一些伪代码供你参考:
def game():
print('Game on..')
while True:
game()
res = input("Do you want to continue (y/n) ?")
if res == 'n' or res == 'N':
break
0
我做了一些小的调整,但这应该能满足你的需求。
import random
def slot_roller(number1, number2):
return random.randint(number1, number2)
def check_slot(number_input):
match number_input:
case 1:
return "cherry"
case 2:
return "grape"
case 3:
return "orange"
case _:
return None
def check_results(slot_results):
print(slot_results)
match slot_results:
case ["orange", "orange", "orange"]:
print("!Big Win!")
return True
case ["grape", "grape", "grape"]:
print("!Big Win!")
return True
case ["cherry", "cherry", "cherry"]:
print("!Big Win!")
return True
return False
def play_again():
n = input("Would you like to play again? (y/n)")
if n.lower() == "y":
return True
else:
return False
def gamble(gambling_money):
gambling_money -= 1
slot1 = slot_roller(1, 3)
slot2 = slot_roller(1, 3)
slot3 = slot_roller(1, 3)
slot1_result = check_slot(slot1)
slot2_result = check_slot(slot2)
slot3_result = check_slot(slot3)
result_list = [slot1_result, slot2_result, slot3_result]
if check_results(result_list):
gambling_money += 25
return gambling_money
def main():
current_money = 10
while True:
print('current_money', current_money)
current_money = gamble(current_money)
if current_money <= 0 or not play_again():
return
if __name__ == '__main__':
main()
关于While循环的额外信息: