放一个"游戏"在游戏中

时间:2017-10-23 19:35:47

标签: python python-3.x

我正在用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 很抱歉这个问题很长,而且形式不好,我还是新手,我想尽可能多地学习

1 个答案:

答案 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}')