Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 一直在制作骰子游戏_Python - Fatal编程技术网

Python 一直在制作骰子游戏

Python 一直在制作骰子游戏,python,Python,游戏中,你必须用3个骰子赢2英镑,或用2个骰子赢1英镑。你从5英镑开始,每次20便士 我想得到它,这样它会在赢的时候把钱加到变量“钱包”中 当你有机会的时候,把20便士减下来。我总是得到错误:作业前引用。多谢各位 这是我的代码: import sys, time, random wallet=5 print("*****************************") print("**********Dice Game**********") print("*******

游戏中,你必须用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()

您正在执行
wallet=wallet-0.2
,而没有先将值设置为wallet

试试这个

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

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)

嗯,差不多就是这样。但是,这仍然有很多事情要做:如果你只是在开始时按回车键——错误,如果你没有钱,你仍然可以玩。由您完成这些任务。

您的问题到底是什么?寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:我建议您准确地指出错误发生在哪一行。