我正在制作一款可以解决风险骰子滚动的游戏,但是我只能让它比较最后两个数字并告诉我谁赢了,但是我希望它可以对数字进行排序,然后比较每组中的最高数字(例如一个普通的风险游戏),这是我的代码
import random
import time
from random import randrange
from random import randint
r = randint
min = 1
max = 6
def main():
print("Welcome to risk dice")
playing = input("Press Enter to Roll or Q to quit")
if playing == 'q':
print("Thanks for Playing")
time.sleep(2)
quit()
elif playing != 'q':
rolls = int(float(input('how many soliders are you attacking with:')))
for x in range(rolls):
print ('you got a...')
a = (r(min, max))
print(a)
rolls = int(float(input('how many soliders are you defending with:')))
for x in range(rolls):
print ('you got a...')
d = (r(min, max))
print(d)
if d >= a:
print('defence wins')
else:
print('attackers win')
main()
main()
欢迎任何想法,即时通讯完全卡住(使用python 3.4.4)
attacker_dice = []
defender_dice = []
初始化空数组以在掷出骰子时放入骰子。
rolls = int(float(input('how many soliders are you attacking with:')))
for x in range(rolls):
print ('you got a...')
attacker_dice.append(r(min, max))
print(attacker_dice[-1])
在这里,我们append
将新值添加到数组,将它们添加到末尾。然后,我们在[-1]
作为最后一项的索引处打印数字。
attacker_dice.sort(reverse=True)
defender_dice.sort(reverse=True)
一旦有了数组,我们就进行排序(从高到低)
paired_dice = zip(attacker_dice, defender_dice)
然后,我们将骰子与拉链配对。默认情况下,Zip丢弃所有无法配对的骰子。这反映了风险规则,即您丢弃了最低的未配对骰子。
attacker_wins = 0
defender_wins = 0
for pair in paired_dice:
attacker, defender = pair
在这里,我们解压骰子:for pair in paired_dice
每对之间循环。attacker, defender = pair
将线对拆成其组件骰子。
if attacker > defender:
attacker_wins += 1
else:
defender_wins += 1
重要的是要注意“风险”,attacker_wins
即防御者失去了多少支军队,反之亦然。
这个例子适用于repl.it。由于输入不受限制,因此我在50上将其测试为50,并且可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句