在python中添加两个骰子的结果

问题描述 投票:2回答:4

我是Python的绝对初学者,但我真的想挑战自己。我想创造一个游戏,每个玩家(现在,两个玩家)掷骰子2次。添加骰子的结果,如果加上偶数10个点,如果是奇数,则减去5个点。球员最多可以打5轮。到目前为止,我已将代码保持在while循环中并随机导入以“掷骰子”,但我不知道如何将随机结果添加到一起。

我的代码可能完全错误但我希望得到一些关于如何解决它的帮助和建议(这是在python 3上完成的)

我的代码:

person1_name = input("What is your name: ")
person2_name = input("What is your name: ")

import random
number = random.randint(1,6)
rounds = "yes"
while rounds == "yes":
    print(person1_name, "- 1st roll = ",number, " and 2nd roll = ",number)
    total_1 = number + number
    if total_1 % 2 == 0:
        total_1 = total_1 + 10
        print(person1_name," has ",total_1, "points")
    else:
        total_1 = total_1 - 5
        print(person1_name, " has ",total_1, "points")
    print(person2_name, "- 1st roll = ",number, "and 2nd roll = ",number)
    total_2 = number + number
    if total_2 % 2 == 0:
        total_2 = total_2 + 10
        print(person2_name," has ",total_2, "points")
    else:
        total_2 = total_2 - 5
        print(person2_name," has ",total_2, "points")
    rounds = input("Do you want to play again (yes/no): ")
python python-3.x
4个回答
3
投票

您可以使用random.choices()直接获得金额。

sum_dices = sum(random.choices(range(1,7),k=2))

或直接检查:

if sum(random.choices(range(1,7),k=2)) % 2:
     pass
else:
     pass

1
投票

如上所述,您需要调用random.randint()在循环内生成随机数。要保持轮次数,请使用另一个变量。试试这个 :

import random

person1_name = input("What is your name: ")
person2_name = input("What is your name: ")
rounds = "yes"
person1_tot, person2_tot = 0,0 ##
numround = 1 # Number of rounds
while rounds == "yes" and numround<=5:
    number1 = random.randint(1,6)
    number2 = random.randint(1,6)
    print(person1_name, "- 1st roll = ",number1, " and 2nd roll = ",number2)
    total_1 = number1 + number2
    if total_1 % 2 == 0:
        total_1 = total_1 + 10
        print(person1_name," has ",total_1, "points")
    else:
        total_1 = total_1 - 5
        print(person1_name, " has ",total_1, "points")
    person1_tot += total_1 ##
    print(person1_name, " : ", person1_tot) ##
    number1 = random.randint(1,6)
    number2 = random.randint(1,6)
    print(person2_name, "- 1st roll = ",number1, "and 2nd roll = ",number2)
    total_2 = number1 + number2
    if total_2 % 2 == 0:
        total_2 = total_2 + 10
        print(person2_name," has ",total_2, "points")
    else:
        total_2 = total_2 - 5
        print(person2_name," has ",total_2, "points")
    person2_tot += total_2 ##
    print(person2_name, " : ", person2_tot) ##
    numround+=1
    rounds = input("Do you want to play again (yes/no): ")

0
投票

你应该注意你创建随机数的位置。在你的代码中它不在循环中意味着在整个会话期间你只会产生一个随机数。我猜你也想要使用两个模具,这意味着你需要另一个数字变量。

import random

person1_name = input("What is your name: ")
person2_name = input("What is your name: ")

rounds = "yes"
while rounds == "yes":
    number, number2 = random.randint(1,6), random.randint(1,6)
    total_1 = number + number2
    print(person1_name, "- 1st roll = ",number, " and 2nd roll = ",number2)
    if total_1 % 2 == 0:
        total_1 = total_1 + 10
        print(person1_name," has ",total_1, "points")
    else:
        total_1 = total_1 - 5
        print(person1_name, " has ",total_1, "points")
    number, number2 = random.randint(1,6), random.randint(1,6)
    total_2 = number + number2
    print(person2_name, "- 1st roll = ",number, "and 2nd roll = ",number2)
    if total_2 % 2 == 0:
        total_2 = total_2 + 10
        print(person2_name," has ",total_2, "points")
    else:
        total_2 = total_2 - 5
        print(person2_name," has ",total_2, "points")
    rounds = input("Do you want to play again (yes/no): ")    

-1
投票

在这里你可以看到骰子数量和玩家数量:

number_of_players = int(raw_input("Number of players: "))
number_of_dice = int(raw_input("Number of dice: "))
player_names = []
player_points = []
for i in range(number_of_players):
    name = raw_input("What is your name: ")
    player_names.append(name)
    player_points.append(0)

import random

def roll(number_of_dice=2):
    total = 0
    rolls = []
    for i in range(number_of_dice):
        dice = random.randint(1,6)
        print("dice "+str(i+1)+": "+str(dice))
        total += dice
        rolls.append(dice)
    return rolls,total
rounds = "yes"
while rounds == "yes":
    for i in range(number_of_players):

        print("rolling dice for "+player_names[i]+"....")
        rolls,total = roll(number_of_dice)
        if total % 2 == 0:
            player_points[i] += 10
        else:
            player_points[i] -= 5
        print(player_names[i]+" has "+str(player_points[i])+" points")
    rounds = raw_input("Do you want to play again (yes/no): ")
© www.soinside.com 2019 - 2024. All rights reserved.