重复主要任务

0 投票
2 回答
70 浏览
提问于 2025-04-14 17:34

我正在做一个个人项目,是一个老虎机游戏。我需要用户输入是否想要再玩一次,但我不知道怎么让它重复进行。

我尝试创建一个叫做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循环的额外信息:

撰写回答