我目前在python中構建了一個簡單的卡匹配遊戲,有一個5x4(行*列)網格,其中兩個玩家試圖匹配一副20張卡片)* 2。Python上的卡匹配遊戲
我遇到的問題是在通過橋面迭代,打印的卡片出一格的時尚所以它看起來像這樣:
----- ----- ----- -----
- - - - - - - -
4-H 6-H 7-H 8-H
- - - - - - - -
----- ----- ----- -----
我目前擁有的代碼如下:
#needed import for shuffle function
from random import shuffle
#class for my deck
class Deck:
#constructor starts off with no cards
def __init__(self):
self._deck = []
#populate the deck with every combination of suits and values
def Populate(self):
#Heart, Diamond, Spades, Clubs
for suit in 'HDSC':
#Jack = 11, Queen = 12, King = 13, Ace = 14
for value in range(2, 15):
if value == 11:
value = 'J'
elif value == 12:
value = 'Q'
elif value == 13:
value = 'K'
elif value == 14:
value = 'A'
#add to deck list
self._deck.append(str(value) + '-' + suit)
#populate the deck with only hears hearts and all cards except face cards and aces (2, 3, 4, 5, 6, 7, 8, 9, 10) twice
def gamePop(self):
suit = 'H'
for x in range(2):
for value in range(2, 11):
self._deck.append(str(value) + '-' + suit)
#shuffle the deck with the random import
def Shuffle(self):
shuffle(self._deck)
#length of the deck
def len(self):
return len(self._deck)
def stringIt(self):
#Returns the string representation of a deck
result = ''
for c in self._deck:
result = result + str(c) + '\n'
return result
#class for a single card
class Card:
#constructor for what type of card it is
def __init__(self, value, suit):
self._value = value
self._suit = suit
self._card = self._value + self._suit
#print the type of card
def Description(self):
return (self._card)
#overloaded ==
def __eq__(self, another):
if (self._card == another.Description()):
return True
else:
return False
#main function which plays the game
def main():
#sets player counters to zero,
pOneCount = 0
pTwoCount = 0
#creates the deck to be put on the board
gameDeck = Deck()
gameDeck.gamePop()
gameDeck.Shuffle()
print(gameDeck._deck)
currentCard = 0
for row in range(5):
for card in range(0,4+i):
mystring =
print ('------- ' * 4)
print ('| | ' * 4)
for x in range(4):
print ('| ' +gameDeck._deck[currentCard]+'|'),
currentCard += 1
print ('| | ' * 4)
print ('------- ' * 4)
編輯:我清理了我試過的代碼。
輸出的電流是這樣的:
------- ------- ------- -------
| | | | | | | |
| 7-H|
| 5-H|
| 7-H|
| 9-H|
| | | | | | | |
------- ------- ------- -------
他試過的是他發佈的代碼。他所缺少的是這個問題的一個很好的解釋。 – Phil
對不起,我編輯過它以包含我試過的代碼。 –
你能舉一個你當前輸出的例子嗎? – jknupp