Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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使这个骰子游戏在模拟中运行10000次?_Python - Fatal编程技术网

如何使用python使这个骰子游戏在模拟中运行10000次?

如何使用python使这个骰子游戏在模拟中运行10000次?,python,Python,我正在做家庭作业。我似乎找不到一个解决方案,如何使骰子滚动10000次,再加上创建一个变量,当你正确滚动骰子时,每当你赢得一些钱时,该变量就会更新。下面我有一些关于家庭作业的说明,有人能给我解释一下吗 游戏如下:掷一个六面骰子。 如果你掷1、2或3,游戏就结束了。 如果你掷4、5或6个骰子,你赢了那么多美元($4、5或$6),然后再掷一次。 每增加一次掷骰,你就有机会赢得更多的钱,或者你可以掷一个以1、2或3结尾的游戏,此时游戏结束,你保留你积累的任何赢款 使用Python随机模块中的randi

我正在做家庭作业。我似乎找不到一个解决方案,如何使骰子滚动10000次,再加上创建一个变量,当你正确滚动骰子时,每当你赢得一些钱时,该变量就会更新。下面我有一些关于家庭作业的说明,有人能给我解释一下吗

游戏如下:掷一个六面骰子。 如果你掷1、2或3,游戏就结束了。 如果你掷4、5或6个骰子,你赢了那么多美元($4、5或$6),然后再掷一次。 每增加一次掷骰,你就有机会赢得更多的钱,或者你可以掷一个以1、2或3结尾的游戏,此时游戏结束,你保留你积累的任何赢款

使用Python随机模块中的randint函数来获得掷骰结果 (有关整数,请参见函数)

运行10000次游戏模拟(蒙特卡罗方法)。 打印平均赢得金额和最大赢得金额

作为一个思想实验,你会为玩这个游戏支付3美元吗

示例输出:

平均金额=x.xx韩元 最高金额=xx韩元

import random

class diceGame:

    def __init__(self,dice):
        self.dice = dice

    def gameOutCome(self):

            askUser = str(input("Roll to play the game? Y/N: "))
            while True:
                if askUser == 'y':
                    print(self.dice)
                    if self.dice == 1:
                        print("Sorry, Try Again!")
                    elif self.dice == 2:
                        print("Sorry, Try Again!")
                    elif self.dice == 3:
                        print("Sorry, Try Again!")
                    elif self.dice == 4:
                        print("You win $4")
                    elif self.dice == 5:
                        print("You win $5")
                    elif self.dice == 6:
                        print("You win $6")

                askUser = str(input("Roll to play the game? Y/N: "))









x = random.randint(1,6)
dd = diceGame(x)
dd.gameOutCome()

欢迎来到stackoverflow。因为这是你的家庭作业,我认为在这里发布完整的解决方案是不合适的

然而,我确实认为一些指向正确方向的指针可能会有所帮助:

1) 您正在运行模拟10000次。每卷需要2个用户输入。因此,为了完成模拟,您需要至少20000个用户输入。。。是的,那将是令人厌烦的;)。。。。因此,让我们剪切用户输入-只需编写一个函数来执行游戏,直到游戏结束。一旦你有了一个执行一个游戏的函数,你怎么能执行它多次呢

2) 想想看,每一次掷骰都有两种可能的结果——是否继续游戏。继续下去意味着什么?比赛结束必须满足什么条件

3) 游戏结束后,你需要用这些钱做什么

4) 您可以使用sum和max函数计算平均值和最大值

import random

def play_game():
    #The function that executes the game - you have to write that on your own
    pass

wins = [play_game() for i in range(0,10000)]
win_average = sum(wins)/10000.0
max_win = max(wins)

欢迎来到StackOverflow!请阅读。不要在模拟中要求输入。你想回答这些问题10000次吗?编写一个函数,玩一次游戏,然后使用for循环调用该函数10000次,例如
for-sim-in-range(10000):
。在Python和许多其他编程语言中,重复的标准方法是什么?@MarkTolonen for循环正在工作,但骰子没有更新。为什么会发生这种情况呢?我认为,使用random.randint的实例会一直更新。为什么我的骰子没有更新?这就是我被卡住的原因?只有你再次调用
random.randint()
。编辑您的问题并显示您的代码尝试。