예제 #1
0
def main():
    print("The Dice Roller program")

    #print an image of every possible roll
    die = Die()
    for i in range(1, 7):
        die.value = i

        print(die.image)

    print()

    # get number of dice from user
    count = int(input("Enter the number of dice to roll: "))

    # create Die objects and add to Dice object
    dice = Dice()
    for i in range(count):
        die = Die()
        dice.addDie(die)

    while True:
        # roll the dice
        dice.rollAll()
        print("YOUR ROLL: ")
        for die in dice:
            print(die)
        print("\nTotal:\t" + str(dice.getTotal()))
        print("\n")

        choice = input("Roll again? (y/n): ")
        if choice != "y":
            print("Bye!")
            break
예제 #2
0
class PokerApp:
    def __init__(self, interface):
        self.dice = Dice()
        self.money = 100
        self.highscore = 0
        self.interface = interface

    def run(self):
        while self.money >= 10 and self.interface.wantToPlay():
            self.playRound()
        self.interface.close()

    def playRound(self):
        self.money = self.money - 10
        self.interface.setMoney(self.money)
        self.doRolls()
        result, score = self.dice.score()
        self.interface.showResult(result, score)
        self.money = self.money + score
        self.interface.setMoney(self.money)
        #追踪最高分
        if score > self.highscore:
            self.interface.High(score)

    def doRolls(self):
        self.dice.rollAll()
        roll = 1
        self.interface.setDice(self.dice.values())
        toRoll = self.interface.chooseDice()
        while roll < 3 and toRoll != []:
            self.dice.roll(toRoll)
            roll = roll + 1
            self.interface.setDice(self.dice.values())
            if roll < 3:
                toRoll = self.interface.chooseDice()
예제 #3
0
class PokerApp:
    def __init__(self):
        self.dice = Dice()
        self.money = 100
        self.interface = PokerInterface(self.money)

    def run(self):
        while self.money >= 10 and self.interface.wantToPlay():
            self.playRound()

        self.interface.close()

    def playRound(self):
        self.money -= 10

        self.doRolls()

        result, score = self.dice.getPayoff()
        self.money += score

        self.interface.updateMoney(self.money)
        self.interface.showResults(result, score)

    def doRolls(self):
        self.dice.rollAll()
        roll = 1

        self.interface.updateDice(self.dice.getValues())

        while True:
            if roll < 3:
                diceToRoll = self.interface.chooseDice()

                if diceToRoll == []: break
                else:
                    self.dice.roll(diceToRoll)
                    self.interface.updateDice(self.dice.getValues())

                    roll += 1

            else:
                break
예제 #4
0
class PokerApp:
    def __init__(self, interface):
        self.dice = Dice()
        self.money = 100
        self.interface = interface
        self.maxs = 100

    def run(self):
        while self.money >= 10 and self.interface.wantToPlay():
            self.playRound()
        self.interface.close()

    #玩一局
    def playRound(self):
        self.money = self.money - 10
        self.interface.setMoney(self.money)
        self.doRolls()
        result, score = self.dice.score()
        self.interface.showResult(result, score)
        self.money = self.money + score
        self.interface.setMoney(self.money)
        if (self.maxs < self.money):
            self.maxs = self.money
        self.interface.setMax(self.maxs)

    def doRolls(self):
        self.dice.rollAll()

        roll = 1
        self.interface.setDice(self.dice.values())
        toRoll = self.interface.chooseDice()
        while roll < 3 and toRoll != []:
            self.dice.roll(toRoll)
            roll = roll + 1
            self.interface.setDice(self.dice.values())
            if roll < 3:
                toRoll = self.interface.chooseDice()
예제 #5
0
class PokerApp:
    def __init__(self):
        self.money = 100
        self.numberOfGames = 0
        self.dice = Dice()
        self.interface = PokerInterface(self.money)

    def run(self):
        self.interface.updateScreen()

        while self.money >= 10 and self.interface.askIfWantToPlay():
            self.numberOfGames += 1

            self.doRoll()

            result, score = self.dice.getCategory()

            self.money += score
            self.interface.updateMoney(self.money)
            self.interface.showResults(result, score)

        self.verifyLeaderboardPosition()
        self.interface.close(self.numberOfGames)

    def doRoll(self):
        self.money -= 10
        self.interface.updateMoney(self.money)
        self.interface.messageTicketOutlay()

        rolls = 1

        self.dice.rollAll()
        diceValues = self.dice.getValues()
        self.interface.updateDiceValues(diceValues)

        while rolls < 3:
            rolls += 1

            diceToRoll = self.interface.chooseDice()

            if diceToRoll == []:
                break
            else:
                self.dice.roll(diceToRoll)
                diceValues = self.dice.getValues()
                self.interface.updateDiceValues(diceValues)

    def verifyLeaderboardPosition(self):
        path = "E:/Diego/ComputerScience/Programming/Training Projects/Python/Introduction to Python/Classes/DicePokerV2/highestScores.txt"
        highestScoreFile = open(path, "r")

        self.highestScores = self.getHighestScoresFrom(highestScoreFile)

        for i in range(10):
            if self.money > self.highestScores[i][1]:
                self.username = self.askForUsername()
                self.updateLeaderboardList()
                break

        self.highestScores.sort(key=self._userScore, reverse=True)
        self.reduceLeaderboardListToTen()

        highestScoreFile.close()
        highestScoreFile = open(path, "w")

        for userData in self.highestScores:
            print("{}, {}".format(userData[0], userData[1]),
                  file=highestScoreFile)

        highestScoreFile.close()

    def getHighestScoresFrom(self, file):
        highestScores = []
        for userData in file:
            username, score = userData.split(", ")
            highestScores.append([username, int(score)])

        return highestScores

    def askForUsername(self):
        return input("\n You've got a new record! Enter your username: ")

    def updateLeaderboardList(self):
        userFound = False

        for i in range(10):
            if self.username == self.highestScores[i][0]:
                userFound = True

                if self.money > self.highestScores[i][1]:
                    self.highestScores[i][1] = self.money

                break

        if not userFound:
            self.highestScores.append([self.username, self.money])

    def _userScore(self, userData):
        return userData[1]

    def reduceLeaderboardListToTen(self):
        for i in range(len(self.highestScores) - 10):
            self.highestScores.pop()