如何找到完成蛇梯游戏所需的平均掷骰数?

2023-12-10

编写代码来模拟一名玩家的游戏并计算完成游戏所需的掷骰子次数。应允许用户指定模拟的游戏数量,并且代码应计算每场游戏的平均掷骰子数量。

#Snakes and Ladders simulation

import random #importing the random function to be able to use it later on

counterposition = 0 #setting counterposition and diceroll to 0
currentDiceroll = 0

def diceroll (): #when user rolls the 1-6 dice this does it randomly
    return random.randint (1,6)
userInput = int(input("How many games would you like to play snakes and ladders?"))

for i in range (userInput):
    currentDiceroll = diceroll()
    print("The currentDiceroll is", currentDiceroll)

    if counterposition == 1:                    #all the if statements show what happens if the one player lands on a snake or a ladder
        counterposition = counterposition + 37
    if counterposition == 4:
        counterposition = counterposition + 10
    if counterposition == 9:
        counterposition = counterposition + 22
    if counterposition == 21:
        counterposition = counterposition + 21
    if counterposition == 28:
        counterposition = counterposition + 56
    if counterposition == 51:
        counterposition = counterposition + 16
    if counterposition == 72:
        counterposition = counterposition + 19
    if counterposition == 80:
        counterposition = counterposition + 19
    if counterposition == 17:
        counterposition = counterposition - 10
    if counterposition == 54:
        counterposition = counterposition - 20
    if counterposition == 63:
        counterposition = counterposition - 4
    if counterposition == 64:
        counterposition = counterposition - 4
    if counterposition == 87:
        counterposition = counterposition - 51
    if counterposition == 92:
        counterposition = counterposition - 19
    if counterposition == 95:
        counterposition = counterposition - 20
    if counterposition == 98:
        counterposition = counterposition - 19
    if counterposition >= 100:
        print ("Congratulations end of game")

    counterposition = counterposition + currentDiceroll
    print("the counter position is", counterposition) 

您编写的代码仅掷骰子一次。您需要继续滚动,直到赢得比赛。最好创建一个函数来玩一次游戏并返回所需的骰子数量。

def playGame():
    counterPosition = 0
    numberOfRolls = 0
    while (counterPosition < 100):
        numberOfRolls += 1
        currentDiceroll = diceroll()
        print("The currentDiceroll is", currentDiceroll)
        counterPosition += currentDiceroll
        # your if statements go here
    return numberOfRolls

然后您可以根据需要多次调用该函数。

totalDiceRolls = 0
for i in range(userInput):
    totalDiceRolls += playGame()
avgRolls = totalDiceRolls / userInput
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到完成蛇梯游戏所需的平均掷骰数? 的相关文章

随机推荐