创建骰子游戏时卡住了

2024-04-24 15:00:05 发布

您现在位置:Python中文网/ 问答频道 /正文

游戏中,你必须用3个骰子赢2英镑,或用2个骰子赢1英镑。你从5英镑开始,每次20便士。你知道吗

我想得到它,这样它就可以在赢的时候把钱加到可变的“钱包”里 当你有机会的时候就把20便士减下来。我总是得到错误:作业前引用。谢谢您。你知道吗

这是我的密码:

import sys, time, random

wallet=5


print("*****************************")      
print("**********Dice Game**********")
print("********By ShinLeona*********")
print("*****************************")


def menu():

    start=input("Would you like to play?").lower()

    if (start[0] == "y"):
        wallet= wallet - 0.2
        print("Wallet:", wallet ,)

    elif (start[0] == "n"):
        print("Withdrawing Funds....")
        print("Thanks for playing!")
        sys.exit()

    else:
        print("That is not a valid option")
        menu()





def diceroll():
    randomnumber = random.randint(1,6)
    randomnumber2 = random.randint(1,6)
    randomnumber3 = random.randint(1,6)

    print("Generating dice...")
    print(randomnumber)
    print(randomnumber2)
    print(randomnumber3)

    if (randomnumber == randomnumber2) or (randomnumber == randomnumber3) or (randomnumber2 == randomnumber3):
        wallet= wallet + 1
        print("You've won £1")
        menu()

    elif (randomnumber and randomnumber2 == randomnumber3) or (randomnumber3 and randomnumber2 == randomnumber) or (randomnumber3 and randomnumber == randomnumber2):
        wallet= wallet + 2 
        print("You've won £2")
        menu()

    else:
        print("You lose")
        menu()



menu()
diceroll()

Tags: orandyousysrandom骰子startmenu
2条回答
import sys, time, random

def menu(wallet):
  start=input("Would you like to play?").lower()
  if (start[0] == "y"):
    wallet= wallet - 0.2
    print("Wallet:", wallet ,)
    diceroll(wallet)
  elif (start[0] == "n"):
    print("Withdrawing Funds....")
    print("Thanks for playing!")
    menu(wallet)
  elif (start[0] == "e"):
    sys.exit()
  else:
    print("That is not a valid option")
    menu(wallet)

 def diceroll(wallet):
  randomnumber = random.randint(1,6)
  randomnumber2 = random.randint(1,6)
  randomnumber3 = random.randint(1,6)

  print("Generating dice...")
  print(randomnumber)
  print(randomnumber2)
  print(randomnumber3)

  if (randomnumber == randomnumber2) or (randomnumber == randomnumber3) or (randomnumber2 == randomnumber3):
    wallet = wallet + 1
    print("You've won 1")
    menu(wallet)
  elif (randomnumber and randomnumber2 == randomnumber3) or (randomnumber3 and randomnumber2 == randomnumber) or (randomnumber3 and randomnumber == randomnumber2):
    wallet = wallet + 2 
    print("You've won 2")
    menu(wallet)
  else:
    print("You lose")
    menu(wallet)

wallet=5
menu(wallet)

嗯,差不多了。但是,它仍然有很多事情要做:如果你只是在开始时按回车键-错误,如果你没有钱,你仍然可以玩。由你来完成这些。你知道吗

您在执行wallet= wallet - 0.2操作时没有首先将值设置为wallet。你知道吗

试试这个

wallet = 0
wallet = wallet - 0.2

或者通过在每个函数中设置global wallet使变量成为全局变量

相关问题 更多 >