-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcard.py
146 lines (113 loc) · 3.22 KB
/
card.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
'''
This is used when loading a game from a text file
'''
def makeCard(str):
suit=int(str[0])
num=0
if str[1]=='T':
num=10
elif str[1]=='J':
num=11
elif str[1]=='Q':
num=12
elif str[1]=='K':
num=13
else:
num=int(str[1])
card = Card(num,suit)
return card
class Card(object):
DI10 = 8.0 #ruutu10
SP2 = 7.0 #pata2
AC = 6.0 #assa
SPAD = 0.1 #pata
BASIC = 0.5
SPADES = 0
CLUBS = 1
HEARTS = 2
DIAMONDS = 3
ACE = 1
JACK=11
QUEEN = 12
KING = 13
def __init__(self,num,sui):
self.__number = num
self.__suit = sui
self.__handValue = num #cards value in players hand
self.__boardValue = num #cards value on board
self.__compValue = Card.BASIC #valuation for card used in valuating cards in playComputerTurn
if num==Card.ACE:
self.__handValue = 14
self.__compValue += Card.AC
if num==10 and sui == Card.DIAMONDS:
self.__handValue=16
self.__compValue += Card.DI10
if num==2 and sui == Card.SPADES:
self.__handValue = 15
self.__compValue += Card.SP2
if sui == Card.SPADES:
self.__compValue += Card.SPAD
def isSuit(self,suit):
return self.__suit==suit
def isNumber(self,number):
return self.__number==number
def getSuit(self):
return self.__suit
def getNumber(self):
return self.__number
def getHandValue(self):
return self.__handValue
def getBoardValue(self):
return self.__boardValue
def getCompValue(self):
return self.__compValue
'''
get card as string used when saving the game
'''
def cardSave(self):
suit=''
num=''
if self.__number==10:
num='T'
elif self.__number==11:
num='J'
elif self.__number==12:
num='Q'
elif self.__number==13:
num='K'
else:
num=str(self.__number)
suit=str(self.__suit)
txt=suit+num
return txt
'''
overridden operators
'''
def equals(self, other):
return self == other
def __lt__(self, other):
return self.getNumber()<other.getNumber()
def __gt__(self, other):
return self.getNumber()>other.getNumber()
def __le__(self, other):
return self.getNumber()<=other.getNumber()
def __ge__(self, other):
return self.getNumber()>=other.getNumber()
def __eq__(self, other):
if other==None:
sama=False
else:
sama=self.__number == other.getNumber() and self.__suit == other.getSuit()
return sama
def __ne__(self, other):
return not self == other
def __str__(self):
if self.__suit==Card.SPADES:
suit=" of SPADES"
elif self.__suit==Card.CLUBS:
suit=" of CLUBS"
elif self.__suit==Card.HEARTS:
suit=" of HEARTS"
else:
suit=" of DIAMONDS"
return str(self.__number)+suit