2枚硬币投掷游戏的决胜局?

时间:2018-05-01 22:45:55

标签: python python-2.7 random choice

所以这是我的代码:

import random

def coinFlip():
    games = input("How many games? ")
    tosses = input("How many coin tosses per game? ")
    wins = [0, 0, 0]

    for i in range(games):
        gA = 0
        gB = 0
        prof = 0


        for j in range(tosses):
            flip1 = random.randint(0, 1)
            flip2 = random.randint(0, 1)

            if (flip1 == 0 and flip2 == 0):
                gA += 1
            elif (flip1 == 1 and flip2 == 1):
                gB += 1
            else:
                prof += 1

            gAper = ((gA * 1.0) / tosses) * 100
            gBper = ((gB * 1.0) / tosses) * 100
            profper = ((prof * 1.0) / tosses) * 100

        print "Game {}:".format(i)
        print " Group A: {} ({}%); Group B: {} ({}%); Prof: {} 
({}%)".format(gA, gAper, gB, gBper, prof, profper)

        if (gA > gB and gA > prof):
            wins[0] += 1
        elif (gB > gA and gB > prof):
            wins[1] += 1
        elif ( prof > gA and prof > gB):
            wins[2] += 1


    gAWper = ((wins[0] * 1.0) / games) * 100
    gBWper = ((wins[1] * 1.0) / games) * 100
    profWper = ((wins[2] * 1.0) / games) * 100

    print "Wins: Group A = {} ({}%); Group B = {} ({}%); Prof: {} 
({}%)".format(wins[0], gAWper, wins[1], gBWper, wins[2], profWper)

运行时,它可以完成所需的一切。它模拟翻转两个硬币,跟踪每个投掷的赢家,每个游戏的赢家,并计算所有内容的百分比。唯一的问题是我无法弄清楚如何实施决胜局来从A组,B组或教授中选择随机获胜者。该计划需要能够处理双向和3向联系。

2 个答案:

答案 0 :(得分:0)

听起来只是从所有玩家的列表中选择一个随机名称而只需要一个条件来处理它只是一个双向关系。不确定这是否是您正在寻找的。

import random
player_list = ['gA', 'gB', 'prof']
random.choice(player_list)

答案 1 :(得分:0)

不要直接泄露答案,我只想告诉你如何解决这个问题。 您可以将所有胜利百分比放在列表中。之后,使用list comprehension和enumeration来获得最大百分比的索引。获得索引后,从中选择一个随机索引并声明获胜者。