Contents

  1. card2.py
  2. card_byid.py
  3. card.py
  4. game.py
  5. war.py

card2.py 1/5

[
top][prev][next]
class Card:
    """
    A class to represent a standard playing card. The ranks are ints:
    2-10 for numbered cards, 11=Jack, 12=Queen, 13=King, 14=Ace.
    The suits are strings: 'clubs', 'spades', 'hearts', 'diamonds'.
    """
    
    def __init__(self, rank, suit):
        "Constructs a new Card object with the given rank (an int) and suit (a string)."
        self.rank = rank
        self.suit = suit

    def __str__(self):
        "Returns a string describing the card as 'rank of suit'."
        result = ""
        if self.rank == 11:
            result += "Jack"
        elif self.rank == 12:
            result += "Queen"
        elif self.rank == 13:
            result += "King"
        elif self.rank == 14:
            result += "Ace"
        else:
            result += str(self.rank)
        result += " of " + self.suit
        return result

    def getRank(self):
        "Returns rank."	
        return self.rank

    def getSuit(self):
        "Returns suit."
        return self.suit
        
    def getRummyValue(self):
        "Returns the value of this card in the game of Rummy"
        if self.rank < 10:
            return 5
        if self.rank <=13:
            return 10
        return 15
        
def main():
    c1 = Card(14, "spades")
    print c1
    c2 = Card(13, "hearts")
    print c2
    c3 = Card(2, "diamonds")
    print c3
    
    print "The rummy value for", c1, "is", c1.getRummyValue()
    
    
if __name__ == '__main__':
    main()

card_byid.py 2/5

[
top][prev][next]
class Card:
    """
    A class to represent a standard playing card. The ranks are ints:
    2-10 for numbered cards, 11=Jack, 12=Queen, 13=King, 14=Ace.
    The suits are strings: 'clubs', 'spades', 'hearts', 'diamonds'.
    """
    
    # card ids go from 2 to 55
    
    def __init__(self, rank, suit):
        "Constructor for class Card takes int rank and string suit."
        self.cardid = rank
        if suit == "clubs":
            self.cardid += 13
        elif suit == "hearts":
            self.cardid += 26
        elif suit == "diamonds":
            self.cardid += 39

    def __str__(self):
        "Returns a string describing the card as 'rank of suit'."
        result = ""
        rank = self.getRank()
        if rank == 11:
            result += "Jack"
        elif rank == 12:
            result += "Queen"
        elif rank == 13:
            result += "King"
        elif rank == 14:
            result += "Ace"
        else:
            result += str(rank)
        result += " of " + self.getSuit()
        return result

    def getRank(self):
        "Returns rank."
        return (self.cardid-2) % 13 + 2

    def getSuit(self):
        "Returns suit."
        suits = ["spades", "clubs", "hearts", "diamonds"]
        whichsuit = (self.cardid-2)/13
        return suits[whichsuit]

    def blackJackValue(self):
    	"Returns the value of the card in Black Jack"
        if self.getRank() == 14:
            # alternatively, this could be 11
            return 1
        elif self.getRank() > 10:
            return 10
        else:
            return self.getRank()

    def rummyValue(self):
        "Returns the value of the card in Rummy"
        if self.getRank() <= 9:
            return 5
        elif self.getRank() < 14:
            return 10
        else:
            return 15

def main():
    c1 = Card(14, "spades")
    print c1
    print c1.getRank()
    print "Black Jack Value", c1.blackJackValue()
    print "Rummy Value", c1.rummyValue()
    c2 = Card(13, "hearts")
    print c2
    print c2.getRank()
    print "Black Jack Value", c2.blackJackValue()
    print "Rummy Value", c2.rummyValue()
    
if __name__ == '__main__':
    main()


card.py 3/5

[
top][prev][next]
class Card:
    """
    A class to represent a standard playing card. The ranks are ints:
    2-10 for numbered cards, 11=Jack, 12=Queen, 13=King, 14=Ace.
    The suits are strings: 'clubs', 'spades', 'hearts', 'diamonds'.
    """
    
    def __init__(self, rank, suit):
        "Constructs a new Card object with the given rank (an int) and suit (a string)."
        self.rank = rank
        self.suit = suit

    def __str__(self):
        "Returns a string describing the card as 'rank of suit'."
        result = ""
        if self.rank == 11:
            result += "Jack"
        elif self.rank == 12:
            result += "Queen"
        elif self.rank == 13:
            result += "King"
        elif self.rank == 14:
            result += "Ace"
        else:
            result += str(self.rank)
        result += " of " + self.suit
        return result
        
    def getRank(self):
        "Returns rank."	
        return self.rank

    def getSuit(self):
        "Returns suit."
        return self.suit
        
def main():
    c1 = Card(14, "spades")
    print c1
    c2 = Card(13, "hearts")
    print c2
    c3 = Card(2, "diamonds")
    print c3
    
    #myString = c3.__str__()
    #myString2 = str(c3)
    
    #print myString
    #print myString2
    
if __name__ == '__main__':
    main()

game.py 4/5

[
top][prev][next]
# Game Module
# Contains useful functions and modules for various games
# by Sara Sprenkle

import random

# constants for flipping a coin
HEADS = 0
TAILS = 1

def testMe():
    """Tests the module"""
    print rollDie(6)
    print rollDie()
    print rollDie(12)
    print rollDie()

# No pre- or post- condition
# return HEADS or TAILS, randomly
def coinFlip():
    return random.randint(0,1)

def rollDie(sides=6):
    """ input: the number of sides of the die (defaults to 6)
 return a random number between 1 and sides, inclusive """
    print "Num sides =", sides
    return random.randint(1,sides)
    
def rollMultipleDice(numDice, sides=6):
    """input: the number of dice to roll and the number of sides of
    the dice (defaults to 6).
    return the total of rolling all the dice"""
    total = 0
    for x in xrange(numDice):
        total += rollDie(sides)
    return roll

if __name__ == "__main__":
    testMe()

war.py 5/5

[
top][prev][next]
# Simple implementation of the game of War
# There are some issues in simulation's accuracy.

from card import *
from random import *

def main():
    player1Card = genRandomCard()
    player2Card = genRandomCard()

    print "Player 1 draws a", player1Card
    print "Player 2 draws a", player2Card
    
    if player1Card.getRank() > player2Card.getRank():
        print "Player 1 wins", player2Card
    elif player1Card.getRank() < player2Card.getRank():
        print "Player 2 wins", player1Card
    else:
        print "Tie! Draw 4 cards each"
    
# Returns a randomly generated card.
# Assumes an infinite number of decks of cards available
def genRandomCard():
    suits = ["hearts", "diamonds", "clubs", "spades"]
    
    randRank = randint(2, 14) # generate a random rank
    randSuit = suits[randint(0, 0)]  # generate a random suit
    
    # create a new Card object from randomly generated rank and suit
    randomCard = Card( randRank, randSuit )
    
    return randomCard
    
main()

Generated by GNU enscript 1.6.4.