Tiebreaker для игры с 2 монетами? - PullRequest
0 голосов
/ 02 мая 2018

Так вот мой код:

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 или проф. Программа должна уметь обрабатывать двусторонние и трехсторонние связи.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Чтобы не давать ответ напрямую, я просто дам вам представление о том, как вы могли бы решить эту проблему. Вы можете поместить все свои проценты выигрыша в список. После этого используйте понимание и перечисление списков, чтобы получить индексы наибольших процентов. Когда у вас есть индексы, выберите случайный из них и объявите победителя.

0 голосов
/ 02 мая 2018

Похоже, что это просто вопрос выбора случайного имени из списка всех игроков с одним условным условием, когда это просто двусторонняя ничья. Не уверен, что это то, что вы ищете.

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