Пример #1
0
def playRPS(player0, player1):
    # Return a random number if both players are ai
    if player0.difficulty != player.PlayerDifficulty.HUMAN and player1.difficulty != player.PlayerDifficulty.HUMAN:
        return random.choice([1, 0])

    # Print alternatives
    console.write(console.coloredText("[1] Rock", console.BLUE))
    console.write(console.coloredText("[2] Paper", console.GREEN))
    console.write(console.coloredText("[3] Scissor", console.RED))
    console.write(console.coloredText("[q] Quit", console.MAGENTA))

    # Let players0 make their choice
    if player0.difficulty == player.PlayerDifficulty.HUMAN:
        choicePlayer0 = getChoice(player0)
    else:
        choicePlayer0 = random.choice([1, 2, 3])

    # Let players0 make their choice
    if player1.difficulty == player.PlayerDifficulty.HUMAN:
        choicePlayer1 = getChoice(player1)
    else:
        choicePlayer1 = random.choice([1, 2, 3])

    # Present choices
    player_choice(player0, choicePlayer0)
    player_choice(player1, choicePlayer1)

    # Return the result
    r = result(player0, player1, choicePlayer0, choicePlayer1)
    if r == 0.5:
        return playRPS(player0, player1)
    return r
Пример #2
0
    def test_console_color(self):
        t0 = console.coloredText("test", console.MAGENTA)
        self.assertEqual(t0,
                         "\033[38;5;" + str(console.MAGENTA) + "mtest\033[0m")

        t1 = console.coloredText("fox", console.CLEAR)
        self.assertEqual(t1, "fox")
Пример #3
0
 def summary(self):
     text = "Summary of tournament:\n"
     text = text + "Type: " + getTournamentTypeName(self.type) + "\n" + "Players:\n"
     for p in self.players:
         playerText = "\t" + p.name + " - " + player.getDifficultyName(p.difficulty) + "\n"
         text = text + console.coloredText(playerText, console.CLEAR)
     return text
Пример #4
0
 def printRanking(self):
     self.ranking.sort(key=lambda x: (x.score, x.winCount), reverse=True)
     rankPresent = 'Rank' + self.SpaceBetweenItems + 'Name        ' + self.SpaceBetweenItems + 'Win' + self.SpaceBetweenItems + 'Lose' + self.SpaceBetweenItems + 'Tie' + self.SpaceBetweenItems + 'Score\n'
     for i, player in enumerate(self.ranking):
         newLine = ''
         rank = str(i + 1)
         newLine += rank + (4 - len(rank)) * ' ' + self.SpaceBetweenItems
         newLine += coloredText(
             player.name, self.colorSetting[player.name]) + (
                 12 - len(player.name)) * ' ' + self.SpaceBetweenItems
         newLine += coloredText(str(player.winCount), 225) + (
             3 - len(str(player.winCount))) * ' ' + self.SpaceBetweenItems
         newLine += coloredText(str(player.loseCount), 196) + (
             4 - len(str(player.loseCount))) * ' ' + self.SpaceBetweenItems
         newLine += coloredText(str(player.tieCount), 190) + (
             3 - len(str(player.tieCount))) * ' ' + self.SpaceBetweenItems
         newLine += coloredText(str(
             player.score), 99) + (5 - len(str(player.score))) * ' ' + '\n'
         rankPresent += newLine
     print(rankPresent)
Пример #5
0
    def add_record(self, result, player0, player1):

        if self.matchIndex == 0:
            self.round += 1
            self.rows[
                self.round //
                5][0] += ' ' + self.BlanksBeforeRoundName * ' ' + coloredText(
                    'Round ' + str(self.round), Front_Colors[
                        colorCode[self.round -
                                  1]]) + ' ' * self.BlanksAfterRoundName + ' '

        record = ' ' + coloredText(
            player0.name, self.colorSetting[player0.name]) + '-' + coloredText(
                player1.name, self.colorSetting[player1.name]) + ' '
        BlanksToAdd = ' ' * (self.namesLen - len(player0.name) -
                             len(player1.name))
        record += BlanksToAdd

        if result == 1:
            player0.winCount += 1
            player1.loseCount += 1
            record += '1:0'

        elif result == 0:
            player1.winCount += 1
            player0.loseCount += 1
            record += '0:1'

        elif result == 0.5:
            player0.tieCount += 1
            player1.tieCount += 1
            record += '0:0'

        record += ' |'
        self.rows[self.round // 5][self.matchIndex + 1] += record
        self.matchIndex = (self.matchIndex + 1) % 4
Пример #6
0
 def __call__(self, info, color='WHITE', end=''):
     colored_text = console.coloredText(info, Front_Colors[color])
     print(colored_text, end=end)
Пример #7
0
    def startRR(self):
        # Get all combinations for the players/AI. nCr = 28 different combinations
        players = self.desc.players.copy() #all players

        RR_Disp = display.RR_displayer_L(players)

        for i in range(7):

            Matches = []

            print('Round' + str(i+1) + ' Schedule:'+ '\n')

            for k in range(3):
                player0 = players[k]
                player1 = players[6-k]
                matchText = console.coloredText(player0.name, RR_Disp.colorSetting[player0.name]) + ' Vs ' + console.coloredText(player1.name, RR_Disp.colorSetting[player1.name])
                Matches.append(MatchRR(player0, player1))
                print(matchText)

            player0 = players[3]
            player1 = players[7]
            Matches.append(MatchRR(player0, player1))
            matchText = console.coloredText(player0.name,RR_Disp.colorSetting[player0.name]) + ' Vs ' + console.coloredText(player1.name, RR_Disp.colorSetting[player1.name])
            print(matchText + '\n\n\n\n')


            for m in Matches:

                print('Next Match : ' + m.player0.name + ' VS ' + m.player1.name)
                result = playGame(m.player0, m.player1)
                RR_Disp.add_record(result, m.player0, m.player1)

                if result == 1:
                    print("Player: " + m.player0.name + " WON!")
                    m.player0.score += 1


                elif result == 0.5:
                    print("Tie!")
                    m.player0.score += 0.5
                    m.player1.score += 0.5

                else:
                    print("player: " + m.player1.name + " WON!")
                    m.player1.score += 1

            Moving = players[0]
            for j in range(7):
                posMoveTo = (j+1) % 7
                nextToMove = players[posMoveTo]
                players[posMoveTo]= Moving
                Moving = nextToMove

            print('\n\n')
            RR_Disp.printRecord()
            print("\n\n")
            RR_Disp.printRanking()

        
        winner =  RR_Disp.ranking[0]

        print(winner.name + " WON with the score of " + str(winner.score) + " points!")