コード例 #1
0
ファイル: craps.py プロジェクト: mohamadjalali/test_project
class Player(object):

    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self._die1  = Die()
        self._die2  = Die()
        self._rolls = []

    def __str__(self):
        """Return the string rep of the history of rolls."""
        result = ""
        for (v1, v2) in self._rolls:
            result = result + str((v1, v2)) + " " + \
                     str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls in one game."""
        return len(self._rolls)

    def play(self):
        """Plays a game, saves the rolls for that game,
        and returns True for a win and False for a loss."""
        self._rolls = []
        self._die1.roll()
        self._die2.roll()
        (v1, v2) = (self._die1.getValue(),
                    self._die2.getValue())
コード例 #2
0
ファイル: game.py プロジェクト: QuaziF96/PIoT_Assignment_1
    def main():
        sense.show_message("Welcome to the game! This is a two player"+ 
        "game. Player 1 goes first. Take turns shaking the device to"+ 
        "roll die. First one to 30 points wins!")
        i = 1
        die = Die()
        players = [Player(1),Player(2)]
        while (i < 61):
            if (i % 2 != 0):
                sense.show_message("Player 1's turn!")
                sleep(3)
                while True:
                    if die.checkShake(sense):
                        break
                die.roll(sense)
                players[0].updatePoints(die.getValue())

            else:
                sense.show_message("Player 2's turn!")
                sleep(3)
                while True:
                    if die.checkShake(sense):
                        break
                die.roll(sense)
                players[1].updatePoints(die.getValue())
            
            if checkWinStatus(players,sense):
                break 
            i += 1
        sense.clear()
        recordWinner(players)
コード例 #3
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self._die1 = Die()
        self._die2 = Die()
        self._rolls = []

    def __str__(self):
        """Returns a string representation of the list of rolls."""
        result = ""
        result = result + str((v1, v2)) + " " +\
                str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return len(self._rolls)

    def play(self):
        """Plays a game, saves the rolls for that game, 
        and returns True for a win and False for a loss."""
        self._rolls = []
        self._die1.roll()
        self._die2.roll()

        (v1, v2) = (self._die1.getValue(), self._die2.getValue())
        self._rolls.append((v1, v2))
        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
コード例 #4
0
class Dice( QMainWindow) :
    """A game of Dice."""
    die1 = die2 = None

    def __init__( self, parent=None ):
        """Build a game with two dice."""

        super().__init__(parent)
        uic.loadUi("Dice.ui", self)

        self.die1 = Die()
        self.die2 = Die()

        self.rollButton.clicked.connect(self.rollButtonClickedHandler)

    def __str__( self ):
        """String representation for Dice.
        """

        return "Die1: %s\nDie2: %s" % ( self.die1, self.die2)

    def updateUI ( self ):
        self.die1View.setPixmap(QtGui.QPixmap(":/" + str(self.die1.getValue())))
        self.die2View.setPixmap(QtGui.QPixmap(":/" + str(self.die2.getValue())))
        pass

    #@QtCore.pyqtSignature("")          # Player asked for another roll of the dice.
    def rollButtonClickedHandler ( self ):
        print("Roll button clicked")
        self.die1.roll()
        self.die2.roll()
        self.updateUI()
コード例 #5
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.roll = ""
        self.rollsCount = 0
        self.atStartup = True
        self.winner = self.loser = False

    def __str__(self):
        """Returns a string representation of the last roll."""
        return self.roll

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return self.rollsCount

    def rollDice(self):
        """Rolls the dice once. Updates the roll, the won and
        lost outcomes, and returns a tuple of the values
        of the dice."""
        self.rollsCount += 1
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.roll = str((v1, v2)) + " total = " + str(v1 + v2)
        # Game logic for one roll of the dice.
        if self.atStartup:
            self.initialSum = v1 + v2
            self.atStartup = False
            if self.initialSum in (2, 3, 12):
                self.loser = True
            elif self.initialSum in (7, 11):
                self.winner = True
        else:
            laterSum = v1 + v2
            if laterSum == 7:
                self.loser = True
            elif laterSum == self.initialSum:
                self.winner = True
        return (v1, v2)

    # Note: both isWinner() and isLoser() can be False,
    # if the game is not finished.

    def isWinner(self):
        """Returns True if player has won."""
        return self.winner

    def isLoser(self):
        """Returns True if player has lost."""
        return self.loser

    def play(self):
        """Plays a game, counts the rolls for that game,
        and returns True for a win and False for a loss."""
        while not self.isWinner() and not self.isLoser():
            self.rollDice()
        return self.isWinner()
コード例 #6
0
ファイル: craps.py プロジェクト: Carlonaval/CPE106L
class Player(object):
    """
    Initializing variables
    and creating a pair of dice
    """
    def __init__(self):
        self.die1 = Die()
        self.die2 = Die()
        self.roll = ""
        self.rollsCtr = 0
        self.atStartup = True
        self.winner = False
        self.loser = False

    def __str__(self):
        return self.roll

    """
    This method returns the number of rolls
    """

    def getRollsCount(self):
        return self.rollsCtr

    def rollDice(self):
        self.rollsCtr += 1
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.roll = str((v1, v2)) + " total = " + str(v1 + v2)
        if self.atStartup:
            self.initialSum = v1 + v2
            self.atStartup = False
            if self.initialSum in (2, 3, 12):
                self.loser = True
            elif self.initialSum in (7, 11):
                self.winner = True
        else:
            laterSum = v1 + v2
            if laterSum == 7:
                self.loser = True
            elif laterSum == self.initialSum:
                self.winner = True
        return (v1, v2)

    def isWinner(self):
        return self.winner

    def isLoser(self):
        return self.loser

    def play(self):
        while not self.isWinner() and not self.isLoser():
            self.rollDice()
        return self.isWinner()

    """ 
コード例 #7
0
class Player(object):

    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = ""
        self.rollsCount = 0
        self.atStartup = True
        self.winner = self.loser = False

    def __str__(self):
        """Returns a string representation of the list of rolls."""
       
        return self.roll

    def getRollsCount(self):
        """Returns the number of the rolls."""
        return self.rollsCount

    def rollDice(self):
        self.rollsCount += 1
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(),
                    self.die2.getValue())
        self.roll = str((v1, v2)) + " total = " + str(v1 + v2)
        if self.atStartup:
            self.initialSum = v1 +v2
            self.atStartup = False
            if self.initialSum in (2,3,12):
                self.loser = True
            elif self.initialSum in (7,11):
                self.winner = True
        else:
            laterSum = v1 + v2
            if laterSum == 7:
                self.loser == True
            elif laterSum == self.initialSum:
                self.winner == True
        return(v1,v2)
        
    def isWinner(self):
        return self.winner
                
    def isLoser(self):
        return self.loser
    
    def play(self):
        """Plays a game, saves the rolls for that game,
        and returns True for a win and False for a loss."""
        while not self.isWinner() and not self.isLoser():
            self.rollDice()
        return self.isWinner()
コード例 #8
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list, as well as state variables."""
        self.atStartup = True
        self.winner = False
        self.loser = False
        self.die1 = Die()
        self.die2 = Die()
        self.roll = ()
        self.firstSum = 0
        self.rollCount = 0

    def __str__(self):
        """Returns a string representation of the most recent roll."""
        return "Roll " + str(self.rollCount) + ": " + str(self.roll) + "\n"

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return self.rollCount

    def isLoser(self, sum):
        if (sum in (2, 3, 12) and self.atStartup) or \
                (sum == 7 and not self.atStartup):
            return True
        else:
            return False

    def isWinner(self, sum):
        if (sum in (7, 11) and self.atStartup) or \
                (sum == self.firstSum and not self.atStartup):
            return True
        else:
            return False

    def rollDice(self):
        """Plays a game, saves the rolls for that game, 
        and returns True for a win and False for a loss."""
        v1, v2 = self.roll_and_record()
        sum = v1 + v2
        if self.atStartup:
            self.firstSum = sum
        return sum

    def roll_and_record(self):
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.roll = (v1, v2)
        self.rollCount += 1
        return v1, v2
コード例 #9
0
ファイル: craps.py プロジェクト: jamesjutt/Craps-Dice
class Player(object):
    def __init__(self):
        """Player object will have a pair of dice and an empty rolls list"""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []

    def __str__(self):
        """Returns the string rep of the history of rolls."""
        result = ""
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " + str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of rolls in one game"""
        return len(self.rolls)

    def play(self):
        """Plays a game, saves the rolls for that game, and returns True for a win and False for a lose"""
        self.rolls = []
        self.die1.roll()
        self.die2.roll()

        # Creates a tuple which grabs the values of the two dice that have been rolled
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.rolls.append((v1, v2))

        # Variable that stores the sum of each die value per roll
        initialSum = v1 + v2

        # Check to see if the player won or lost on the first rolls
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True

        # If initial rolls are not a win or loss, continue rolling
        while True:
            self.die1.roll()
            self.die2.roll()
            (v1, v2) = (self.die1.getValue(), self.die2.getValue())
            self.rolls.append((v1, v2))
            laterSum = v1 + v2

            if laterSum == 7:
                return False
            elif laterSum == initialSum:
                return True
コード例 #10
0
ファイル: dicedemo.py プロジェクト: Rubenabdias1/college-code
class DiceDemo(EasyFrame):
    def __init__(self):
        """Creates the dice, and sets up the Images and labels
        for the two dice to be displayed, the state label,
        and the two command buttons."""
        EasyFrame.__init__(self, title="Dice Demo")
        self.setSize(220, 200)
        self.die1 = Die()
        self.die2 = Die()
        self.dieLabel1 = self.addLabel("", row=0, column=0, sticky="NSEW")
        self.dieLabel2 = self.addLabel("",
                                       row=0,
                                       column=1,
                                       sticky="NSEW",
                                       columnspan=2)
        self.stateLabel = self.addLabel("",
                                        row=1,
                                        column=0,
                                        sticky="NSEW",
                                        columnspan=2)
        self.addButton(row=2, column=0, text="Roll", command=self.nextRoll)
        self.addButton(row=2, column=1, text="New game", command=self.newGame)
        self.refreshImages()

    def nextRoll(self):
        """Rools the dice and updates the view with
        the results."""
        self.die1.roll()
        self.die2.roll()
        total = self.die1.getValue() + self.die2.getValue()
        self.stateLabel["text"] = "Total = " + str(total)
        self.refreshImages()

    def newGame(self):
        """Create a new craps game and updates the view."""
        self.die1 = Die()
        self.die2 = Die()
        self.stateLabel["text"] = ""
        self.refreshImages()

    def refreshImages(self):
        """Updates the images in the window."""
        fileName1 = "DICE/" + str(self.die1) + ".gif"
        fileName2 = "DICE/" + str(self.die2) + ".gif"
        self.image1 = PhotoImage(file=fileName1)
        self.dieLabel1["image"] = self.image1
        self.image2 = PhotoImage(file=fileName2)
        self.dieLabel2["image"] = self.image2
コード例 #11
0
class Player(object):
    def __init__(self):
        self.die1 = Die()
        self.die2 = Die()
        self.roll = ""
        self.rollsCount = 0
        self.atStartup = True
        self.winner = self.loser = False

    def __str__(self):
        return self.roll

    def getNumberOfRolls(self):
        return self.rollsCount

    def rollDice(self):
        self.rollsCount += 1
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.roll = str((v1, v2)) + " total = " + str(v1 + v2)
        if self.atStartup:
            self.initialSum = v1 + v2
            self.atStartup = False
            if self.initialSum in (2, 3, 12):
                self.loser = True
            elif self.initialSum in (7, 11):
                self.winner = True
        else:
            laterSum = v1 + v2
            if laterSum == 7:
                self.loser = True
            elif laterSum == self.initialSum:
                self.winner = True
        return (v1, v2)

    def isWinner(self):
        return self.winner

    def isLoser(self):
        return self.loser

    def play(self):
        while not self.isWinner() and not self.isLoser():
            self.rollDice()
        return self.isWinner()
コード例 #12
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []

    def __str__(self):
        """Returns a string representation of the list of rolls."""
        result = ""
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " +\
                     str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return len(self.rolls)

    def play(self):
        """Plays a game, saves the rolls for that game, 
        and returns True for a win and False for a loss."""
        self.rolls = []
        v1, v2 = self.roll_and_record()
        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
        while (True):
            v1, v2 = self.roll_and_record()
            laterSum = v1 + v2
            if laterSum == 7:
                return False
            elif laterSum == initialSum:
                return True

    def roll_and_record(self):
        """Rolls two dice and records the result in the rolls history.
        Returns the results of the rolls"""
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.rolls.append((v1, v2))
        self.display_rolls((v1, v2))
        return v1 + v2
コード例 #13
0
ファイル: craps.py プロジェクト: gregpuzzles1/Sandbox
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self._die1 = Die()
        self._die2 = Die()
        self._rolls = []

    def __str__(self):
        """Returns a string representation of the list of rolls."""
        result = ""
        for (v1, v2) in self._rolls:
            result = result + str((v1, v2)) + " " + str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return len(self._rolls)

    def play(self):
        """Plays a game, saves the rolls for that game, 
        and returns True for a win and False for a loss."""
        self._rolls = []
        self._die1.roll()
        self._die2.roll()
        (v1, v2) = (self._die1.getValue(), self._die2.getValue())
        self._rolls.append((v1, v2))
        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
        while True:
            self._die1.roll()
            self._die2.roll()
            (v1, v2) = (self._die1.getValue(), self._die2.getValue())
            self._rolls.append((v1, v2))
            sum = v1 + v2
            if sum == 7:
                return False
            elif sum == initialSum:
                return True
コード例 #14
0
class CrapsGame(object):
    """Represents the game of craps."""
    def __init__(self):
        self.die1 = Die()
        self.die2 = Die()
        self.initalValue = 0
        self.startUp = True
        self.gameState = ""

    def initialRoll(self):
        """Performs the first roll in the game, and
        returns a tuple of the two dice and the
        outcome (a string)."""
        self.die1.roll()
        self.die2.roll()
        dieSum = self.die1.getValue() + self.die2.getValue()
        self.initialValue = dieSum
        outcome = None
        if dieSum == 7 or dieSum == 11:
            outcome = "You win!"
        elif dieSum == 2 or dieSum == 3 or dieSum == 12:
            outcome = "You lose!"
        return (self.die1, self.die2, outcome)

    def step(self):
        """Performs the first roll at startup,
        and subsequent rolls thereafter, and returns 
        a tuple of the two dice and the outcome (a string)."""
        # Two cases: the initial roll or any subsequent roll
        if self.startUp:
            self.startUp = False
            return self.initialRoll()
        else:
            self.die1.roll()
            self.die2.roll()
            # Your game logic for any subsequent roll goes here
            dieSum = self.die1.getValue() + self.die2.getValue()
            outcome = None
            if dieSum == self.initialValue:
                outcome = "You win!"
            elif dieSum == 7:
                outcome = "You lose!"
            return (self.die1, self.die2, outcome)

    def __str__(self):
        """Returns the current state of the game."""
        self.gameState = "Die1 = " + str(self.die1.getValue()) + \
                         "  Die2 = " + str(self.die2.getValue()) + \
                         "  Total = " + str(self.die1.getValue() + self.die2.getValue())
        return self.gameState
コード例 #15
0
ファイル: player.py プロジェクト: ajheilman/A-game-of-craps
class Player(object):
    def __init__(self):
        #Has a pair of dice and an empty rolls list
        self._die1 = Die()
        self._die2 = Die()
        self._rolls = []

    def __str__(self):
        #Returns the string rep of the history of rolls
        result = ""
        for (v1, v2) in self._rolls:
            result = result + str((v1, v2)) + " " + str(v1 + v2) + '\n'
        return result

    def getNumberOfRolls(self):
        #Returns the number of the rolls in one game
        return len(self._rolls)

    def play(self):
        #Plays a game, saves the rolls for that game, and returns True for a win and False for a loss
        self._rolls = []
        self._die1.roll()
        self._die2.roll()
        (v1, v2) = (self._die1.getValue(), self._die2.getValue())
        self._rolls.append((v1, v2))
        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
        while True:
            self._die1.roll()
            self._die2.roll()
            (v1, v2) = (self._die1.getValue(), self._die2.getValue())
            self._rolls.append((v1, v2))
            sum = v1 + v2
            if sum == 7:
                return False
            elif sum == initialSum:
                return True
コード例 #16
0
class Player(object):
    def __init__(self):
        """ coppia dei dadi da lanciare ed una lista vuota """
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []

    def __str__(self):
        """ stringa con i valori dei lanci """
        result = " "
        for (v1, v2) in self.rolls:
            result += str((v1, v2)) + " " + str(v1, v2)
        return result

    def getNumberRolls(self):
        """ numero dei lanci """
        return len(self.rolls)

    def play(self):
        """ gioca una partita, true vittora-false sconfitta"""
        self.rolls = []
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.rolls.append((v1, v2))

        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
        while True:
            self.die1.roll()
            self.die2.roll()
            (v1, v2) = (self.die1.getValue(), self.die2.getValue())
            self.rolls.append((v1, v2))
            if (v1 + v2) == 7:
                return False
            elif (v1 + v2) == initialSum:
                return True
コード例 #17
0
def main():

    #Declare our dice
    die1 = Die()
    die2 = Die()

    #init (Randomizes our face values)
    die1.roll()
    die2.roll()

    #While we don't have snake eyes
    while (die1.getValue() + die2.getValue()) != 2:

        #Update (Reroll our die)
        die1.roll()
        die2.roll()

        #Print the roll of our die, this comes after update so that it will print 1,1 at the end
        print(die1.getValue(), die2.getValue())

    #Since our while statement doesn't stop until snake eyes, we're good
    print("Snake Eyes!!!!")
コード例 #18
0
class Player(object):
  

    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = 0
        self.winner = False
        self.loser = False
        self.recent = ""
        self.startup = False
        
    def __str__(self):
        """Returns a string representation of the list of rolls."""
        result = ""
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " +\
                     str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return self.rolls
    def rollDice(self, other):
	    self.value = randint(1,6)
	    other.value = randint(1,6)
	    dice_values = (self.value, other.value)
    def isWinner(self):
        return self.winner
    def isloser(self):
        return self.loser
        
	    

	    

    def play(self):
        """Plays a game, saves the rolls for that game, 
        and returns True for a win and False for a loss."""
        self.rolls = []
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(),
                    self.die2.getValue())
        self.rolls.append((v1, v2))
        initialSum = v1 + v2
        if initialSum in (2, 3, 12):
            return False
        elif initialSum in (7, 11):
            return True
        while (True):
            self.die1.roll()
            self.die2.roll()
            (v1, v2) = (self.die1.getValue(),
                        self.die2.getValue())
            self.rolls.append((v1, v2))
            laterSum = v1 + v2
            if laterSum == 7:
                return False
            elif laterSum == initialSum:
                return True
コード例 #19
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []
        self.rollscount = 0
        self.atStartup = True
        self.winner = False
        self.loser = False

    def __str__(self):
        """Returns a string representation of the list of rolls."""
        result = ""
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " +\
                     str(v1 + v2) + "\n"
        return result

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return len(self.rolls)

##1

    def rollDice(self):
        #roll the dice q
        self.die1.roll()
        diefirst = self.die1.getValue()
        self.die2.roll()
        #roll the dice2
        diesecond = self.die2.getValue()
        res = (diefirst, diesecond)
        #update the roll count
        self.rollscount += 1
        """same logic as play but just updating
        is loser and is win variable"""
        self.rolls = []
        v1 = diefirst
        v2 = diesecond
        #append dies to the rolls
        self.rolls.append((v1, v2))
        #sum thereslu of the two dies
        initialSum = v1 + v2
        #check if sum is loser
        if initialSum in (2, 3, 12):
            self.loser = True
        elif initialSum in (7, 11):
            #check if sum is not loser
            #then set winner to true
            self.winner = True
        else:  #if sum is not in the both then
            #roll again the two dies
            while (True):
                self.die1.roll()
                self.die2.roll()
                (v1, v2) = (self.die1.getValue(), self.die2.getValue())
                self.rolls.append((v1, v2))
                #find sum of the two dies
                laterSum = v1 + v2
                #check if sum is 7
                #then set loser to true
                if laterSum == 7:
                    self.loser = True
                    self.winner = False
                    break

                elif laterSum == initialSum:
                    #check if sum is initialSum
                    #then set winner to true
                    self.winner = True
                    self.loser = False
                    break
            """else continue loop unitl eithercondition is satisfied"""
            return res
##1

##2

    def isWinner(self):
        #checking the varible if true the return true
        if self.winner is True:
            return True
##2

##3

    def isLoser(self):
        #checking the varible if true the return true
        if self.loser is True:
            return True
##3

##4

    def __str__(self):
        """Returns a string representation of
        the list of rolls."""
        result = ""
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " +\
                str(v1 + v2) + "\n"
        return result
コード例 #20
0
class CrapsGUI(EasyFrame):
    def __init__(self):
        """Creates the dice, and sets up the Images and labels
        for the two dice to be displayed, the state label,
        and the two command buttons."""
        EasyFrame.__init__(self, title="Craps Game")
        # self.setSize(270, 200)
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []

        self.dieLabel1 = self.addLabel("", row=0, column=0, sticky="NSEW")
        self.dieLabel2 = self.addLabel("", row=0, column=1, sticky="NSEW")
        # self.stateLabel = self.addLabel("", row=1, column=0,
        #                                 sticky="NSEW",
        #                                 columnspan=2)
        # self.summary = self.addLabel("", row=1, column=0,
        #                              sticky="W",
        #                              columnspan=2)

        self.stateArea = self.addTextArea("",
                                          row=1,
                                          column=0,
                                          width=40,
                                          height=10)

        self.rollButton = self.addButton(row=2,
                                         column=0,
                                         text="Roll",
                                         command=self.nextRoll)
        self.gameButton = self.addButton(row=2,
                                         column=1,
                                         text="New game",
                                         command=self.newGame)
        # self.summary_button = self.addButton(row=2, column=2,
        #                                   text="Game summary",
        #                                   command=self.game_summary)
        self.refreshImages()

    def __str__(self):
        """Returns a string representation of the list of rolls."""
        # result = "Game summary:\n"
        for (v1, v2) in self.rolls:
            result = result + str((v1, v2)) + " " + \
                     str(v1 + v2) + "\n"
        return result

    # def game_summary(self):
    #     # self.summary_label["text"] = "Game summary:\n" + self.__str__()
    #     self.summary["text"] = str(self)

    def getNumberOfRolls(self):
        """Returns the number of the rolls."""
        return len(self.rolls)

    def check_win(self, roll_total):
        """Checks if the current roll is a winner
        :param roll_total:
        """

        # Is it the first roll?
        if self.getNumberOfRolls() == 1:
            self.first_roll = roll_total
            if roll_total in (2, 3, 12):
                self.update_state("lost", roll_total)
            elif roll_total in (7, 11):
                self.update_state("won", roll_total)
            else:
                self.update_state("reroll", roll_total)
        else:
            if roll_total == 7:
                self.update_state("lost", roll_total)
            elif roll_total == self.first_roll:
                self.update_state("won", roll_total)
            else:
                self.update_state("reroll", roll_total)

    def nextRoll(self):
        """Rolls the dice and updates the view with
        the results."""
        self.die1.roll()
        self.die2.roll()
        (v1, v2) = (self.die1.getValue(), self.die2.getValue())
        self.rolls.append((v1, v2))
        self.check_win(v1 + v2)
        self.refreshImages()

    def update_state(self, state, roll_total):
        self.stateArea.appendText("Total = " + str(roll_total) + "\n")
        if state == "lost":
            # self.stateLabel["text"] = "You lose on " + str(roll_total)
            self.stateArea.appendText("You lose!" + "\n")
            self.rollButton["state"] = "disabled"
        elif state == "won":
            # self.stateLabel["text"] = "You win with " + str(roll_total)
            self.stateArea.appendText("You win!" + "\n")
            self.rollButton["state"] = "disabled"

    def newGame(self):
        """Create a new craps game and updates the view."""
        self.die1 = Die()
        self.die2 = Die()
        self.rolls = []
        # self.stateLabel["text"] = ""
        # self.summary["text"] = ""
        self.stateArea.setText("")
        self.rollButton["state"] = "normal"
        self.refreshImages()

    def refreshImages(self):
        """Updates the images in the window."""
        fileName1 = "DICE/" + str(self.die1) + ".gif"
        fileName2 = "DICE/" + str(self.die2) + ".gif"
        self.image1 = PhotoImage(file=fileName1)
        self.dieLabel1["image"] = self.image1
        self.image2 = PhotoImage(file=fileName2)
        self.dieLabel2["image"] = self.image2
コード例 #21
0
ファイル: crapsGame.py プロジェクト: Kevin7196/CrapsIsFun
class CrapsGame(QMainWindow):
    """A Game of Craps."""
    def __init__(self, parent=None):
        """Build a game with two dice."""

        super().__init__(parent)
        uic.loadUi("crapsUI.ui", self)
        self.winsCount = 0
        self.lossesCount = 0
        self.currentBet = 10
        self.startingBank = 1000
        self.currentBank = self.startingBank
        self.currentRoll = 0
        self.secondRoll = False
        self.previousRoll = 0
        self.die1 = Die(6)
        self.die2 = Die(6)
        self.payouts = {4: 2, 5: 1.5, 6: 1.2, 8: 1.2, 9: 1.5, 10: 1.2}
        self.results = "Welcome to Craps!"
        self.rollButton.clicked.connect(self.betSystem)

    def betSystem(self):
        try:
            betAmt = int(self.bankBet.toPlainText())
            self.placeBet(betAmt)
            self.rollButtonClickedHandler()
        except:
            self.results = "You cannot bet in letters or just integers."
        self.updateUI()

    def __str__(self):
        """String representation for Dice."""
        return ""

    def updateUI(self):
        if self.getCurrentBank() <= 0:
            self.results = " You lost all your money."
            self.rollButton.setEnabled(False)
        self.winsLabel.setText(str(self.winsCount))
        self.lossesLabel.setText(str(self.lossesCount))
        self.resultsLabel.setText(str(self.results))
        self.die1View.setPixmap(QtGui.QPixmap(":/" +
                                              str(self.die1.getValue())))
        self.die2View.setPixmap(QtGui.QPixmap(":/" +
                                              str(self.die2.getValue())))
        self.bankAmt.setText(str(self.getCurrentBank()))

    def setWinsCount(self, newWinsCount):
        self.winsCount = newWinsCount

    def getWinsCount(self):
        return self.winsCount

    def setLossesCount(self, newLossesCount):
        self.LossesCount = newLossesCount

    def getLossesCount(self):
        return self.lossesCount

    def getRollNumber(self):
        if self.secondRoll:
            return 2
        else:
            return 1

    def setCurrentBet(self, newCurrentBet):
        self.currentBet = newCurrentBet

    def getCurrentBet(self):
        return self.currentBet

    def setCurrentBank(self, newCurrentBank):
        self.currentBank = newCurrentBank

    def getCurrentBank(self):
        return self.currentBank

    def getCurrentRoll(self):
        return self.currentRoll

    def placeBet(self, betValue):
        self.setCurrentBet(betValue)

    @pyqtSlot()  #Player asked for a roll of dice.
    def rollButtonClickedHandler(self):
        print("Roll button clicked!")
        self.currentRoll = self.die1.roll() + self.die2.roll()
        if self.secondRoll:
            print("Roll: %i Second" % self.currentRoll)
        else:
            print("Roll: %i First" % self.currentRoll)
        if self.secondRoll == False:
            if self.currentRoll == 7 or self.currentRoll == 11:
                self.results = ("You Win!")
                self.currentBank += self.currentBet
                self.winsCount += 1
            elif self.currentRoll == 2 or self.currentRoll == 3 or self.currentRoll == 12:
                self.results = ("You Lose")
                self.currentBank -= self.currentBet
                self.LossesCount += 1
            else:
                self.secondRoll = True
                self.previousRoll = self.currentRoll
        else:
            if self.previousRoll == self.currentRoll:
                print("You Win!")
                self.currentBank += self.currentBet * self.payouts[
                    self.previousRoll]
            else:
                self.results = ("You Lose")
                self.currentBank -= self.currentBet * self.payouts[
                    self.previousRoll]
                self.lossesCount += 1
            self.secondRoll = False
        self.updateUI()
コード例 #22
0
class Player(object):
    def __init__(self):
        """Has a pair of dice and an empty rolls list."""
        self.die1 = Die()
        self.die2 = Die()
        self.stillPlaying = True
        self.roll = ""
        self.rollsCount = 0
        self.atStartup = False  #Represents
        self.prompt = ""
        self.winner = False
        self.loser = False

    def getRollsCount(self):
        print("Current Roll Count: " + str(self.rollsCount))

    def isWinner(self):
        self.winner = True
        self.loser = False
        print("You win")

    def isLoser(self):
        self.loser = True
        self.winner = False
        print("You lose")

    def rollDice(self):
        self.roll = 0
        self.atStartup = False
        self.stillPlaying = True
        self.atStartup = True
        self.prompt = input(
            "Welcome To Craps Dice Game, Would You Like to Play a Round? (y/n)"
        )
        if self.prompt == 'y':
            self.die1.roll()
            self.die2.roll()
            (v1, v2) = (self.die1.getValue(), self.die2.getValue())
            self.roll = "Rolls: " + str(v1) + " & " + str(
                v2) + "Total: " + str(v1 + v2)
            initialValue = v1 + v2
            self.rollsCount = self.rollsCount + 1
            print(self.roll)
            self.getRollsCount()
            if initialValue == (2, 3, 12):
                return self.isLoser()
            elif initialValue == (7, 11):
                return self.isWinner()
            else:
                pass
        else:
            print("Good Bye")
            sys.exit()
        time.sleep(5)
        self.atStartup = False
        while (True):
            self.die1.roll()
            self.die2.roll()
            self.rollsCount = self.rollsCount + 1
            (v1, v2) = (self.die1.getValue(), self.die2.getValue())
            latestValue = v1 + v2
            self.roll = "Rolls: " + str(v1) + " & " + str(
                v2) + "Total: " + str(v1 + v2)
            print(self.roll)
            self.getRollsCount()
            if latestValue == 7:
                return self.isLoser()
            elif latestValue == initialValue:
                return self.isWinner()
            else:
                pass
            time.sleep(5)