我正在用python编写一个简单的骰子游戏,感谢来自这里的一些帮助,我已经对它进行了改进,但是我的麻烦始于这样一个事实:当我希望实现一个时,我不知道从哪里开始投掷硬币以确定哪个玩家先行。
骰子游戏代码:
import random
(a, b, c, d) = [random.randint(1, 6) for _ in range(4)]
a=b=c=d=ta=tb=0
while ta<100 and tb<100:
ta+=a+b
tb+=c+d
(a, b, c, d) = [random.randint(1, 6) for _ in range(4)]
print("Vai vēlaties mest?")
mest=input("Y/N==>")
if mest == "y" or mest=="Y":
print("Jūs uzmetāt:")
print (a,"un",b,"|", a+b+ta,)
print("Pretinieks uzmeta:")
print (c,"un",d,"|", c+d+tb)
elif mest=="n" or mest=="N":
print ("Jūs zaudējāt")
print("Jūsu punktu skaits:",ta)
print("Pretinieka punktu skaits:",tb)
break
if ta>=100 or tb>=100:
print("Spēle beigusies")
if ta>tb:
print("Jūs uzvarējāt!")
print("Jūsu punktu skaits:",ta)
print("Pretinieka punktu skaits:",tb)
elif tb>ta:
print ("Jūs zaudējāt!")
print("Jūsu punktu skaits:",ta)
print("Pretinieka punktu skaits:",tb)
掷硬币代码:
import random
izvele=[]
moneta=random.choice(["moneta","cipars"])
print("Izvēlieties Moneta vai Cipars")
izvele=input("moneta / cipars ==>")
if izvele==moneta:
print("Jūs sākat pirmais, monēta nokrita uz",moneta)
else:
print("Jūs sākat otrais, monēta nokrita uz",moneta)
总而言之,我希望实现的是这两个代码的组合。我希望程序从第一个代码开始,如果猜测正确,骰子游戏将首先显示a + b + ta的结果,如果猜测不正确,它将首先显示c + d + tb的结果剩下的比赛。 另外,为了使它更方便,我还有一个关于第二个代码的问题,你如何从一个单词中选择一个定义字母,例如,如果我输入m它会将它识别为moneta等等。 P.S 很抱歉这个问题很长,而且形式不好,我还是新手,我想尽可能多地学习
答案 0 :(得分:1)
我不确定你的代码究竟应该如何工作,但我认为你想做这样的事情:首先我将一个播放器名称列表改名,所以player1
是人类玩家或计算机。然后,您可以检查第一个播放器== 'human'
或== 'computer'
的其余代码。
在我的例子中,我只是让用户重新掷骰子,如果他是第一个或变量a
,如果他是第二个玩家,则更改变量b
。
import random
players = ['human', 'computer']
random.shuffle(players)
# Assign the shuffled player names to these two variables.
player1, player2 = players
a = random.randint(1, 6)
b = random.randint(1, 6)
# Then print the dice of the players.
print(f'{player1} rolled {a} and {player2} rolled {b}')
user_input = input('Enter "y" to roll again: ')
# Just check if the input starts with 'y'.
if user_input.lower().startswith('y'):
# Change either variable a or b depending on the first player.
if player1 == 'human':
a = random.randint(1, 6)
else:
b = random.randint(1, 6)
print(f'{player1} rolled {a} and {player2} rolled {b}')