Ich habe vor ein paar Stunden begonnen Python zu lernen und dachte mir da schreib ich doch mal was. Nur bin ich mir überhaupt nicht sicher ob ich das auch richtig mache.
Ein kleines PokerSpiel:
es enthält Karten (Card), welche eine Farbe und Höhe haben (Suit,Rank)
Es gibt ein Deck von Karten
Folgendes:
Mache ich die Sache richtig. Damit meine ich kann man das besser machen. zb von wegen Typsicherheit usw,
Bin für alle Anregungen und Bemerkungen froh
thx
Code: Alles auswählen
class Rank:
rank = ["one","two","three","four"]
class Suit:
suit = ["HEART", "DIAMOND", "CLUB", "SPADE"]
class Card:
def __init__(self, rank, suit):
self.rank = rank
self.suit = suit
def __string__(self):
return self.suit +" "+ self.rank
Code: Alles auswählen
from card import Rank
from card import Suit
from card import Card
class Deck:
def __init__(self):
self.deck = []
for s in Suit.suit:
for r in Rank.rank:
self.deck.append(Card(r,s))
def shuffle(self):
pass
def deal(self):
return self.deck.pop()
def burn(self):
self.deck.pop()
def __string__(self):
for c in self.deck:
print c.__string__()
class HandRank:
handRank = ["HIGH", "PAIR", "TWOPAIR", "THREEOFAKIND", "STRAIGHT", "FLUSH", "FULLHOUSE", "FOUROFAKIND", "STRAIGHTFLUSH"]
class EvaluateHand:
def isFlush(self, hand):
test = [0,0,0,0]
for card in hand:
if(card.rank == "HEART"):
test[0] += 1
elif(card.rank == "DIAMOND"):
test[1] += 1
elif(card.rank == "CLUB"):
test[2] += 1
elif(card.rank == "SPADE"):
test[3] += 1
else:
print "Suit error"
for i in test:
if(i >= 5):
return True
return False
Code: Alles auswählen
from Deck import EvaluateHand
from Deck import Deck
from card import Card
temp = [Card("HEART", "one"),Card("SPADE", "one"),Card("SPADE", "one"),Card("SPADE", "one"),Card("SPADE", "one")]
e = EvaluateHand()
print e.isFlush(temp)