Python - создать 2 кубика, чтобы бросить честно и сложить их вместе?
Поэтому я должен был сделать код, который честно бросит кубик и посчитал, сколько я получил 4. С помощью людей здесь я получил это на работу. Что ж, теперь я должен создать еще один кубик и бросить их, а затем добавить продукты вместе. Это инструкции, которые мне дали.
"Затем напишите другую функцию, которая имитирует бросание двух честных кубиков. Самый простой способ - дважды вызвать функцию, которую вы только что написали, и добавить полученные числа. Это должно вернуть число от 2 до 12".
Я добавил бросок костей во второй раз, но как мне сложить суммы двух бросков вместе - мой вопрос? И это мой код.
from random import randrange
def roll():
rolled = randrange(1,7)
if rolled == 1:
return "1"
if rolled == 2:
return "2"
if rolled == 3:
return "3"
if rolled == 4:
return "4"
if rolled == 5:
return "5"
if rolled == 6:
return "6"
def rollManyCountTwo(n):
twoCount = 0
for i in range (n):
if roll() == "2":
twoCount += 1
if roll() == "2":
twoCount +=1
print ("In", n,"rolls of a pair of dice, there were",twoCount,"twos.")
rollManyCountTwo(6000)
2 ответа
Вам вообще не нужно иметь дело со строками, это можно сделать полностью, используя int
ценности
from random import randint
def roll():
return randint(1,6)
def roll_twice():
total = 0
for turn in range(2):
total += roll()
return total
Например
>>> roll_twice()
10
>>> roll_twice()
7
>>> roll_twice()
8
И для вашей функции, которая должна рассчитывать количество 2
с, которые были свернуты, снова вы можете сделать целочисленное сравнение
def rollManyCountTwo(n):
twos = 0
for turn in range(n):
if roll() == 2:
twos += 1
print('In {} rolls of a pair of dice there were {} twos'.format(n, twos))
return twos
>>> rollManyCountTwo(600)
In 600 rolls of a pair of dice there were 85 twos
85
from random import randint
def roll():
return randint(1,6)
def rollManyCountTwo(n):
twoCount = 0
for _n in xrange(n*2):
if roll() == 2:
twoCount += 1
print "In {n} rolls of a pair of dice, there were {cnt} twos.".format(n=n, cnt=twoCount)
Так как вы бросаете две кубики для n
раз и считать каждые два проката, просто цикл для n*2
и проверьте, если результат игры в кости равен двум.