gpt4 book ai didi

python - Python 上的纸牌配对游戏

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:17 24 4
gpt4 key购买 nike

我目前正在用 python 构建一个简单的纸牌匹配游戏,具有 5x4(行*列)网格,其中两个玩家尝试匹配一副二十张牌(2,10 只花色红心)* 2。

我遇到的问题是遍历牌组,以网格方式打印卡片,因此它看起来像这样:

-----     -----    -----     -----
- - - - - - - -
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|
| | | | | | | |
------- ------- ------- -------

最佳答案

问题出在 def main() 中:

def main():

    print ('-------  ' * 4)
print ('| | ' * 4)
for x in range(4):
print ('| ' +gameDeck._deck[currentCard]+'|'),
currentCard += 1
print ('| | ' * 4)
print ('------- ' * 4)

* 4 只是表示:

print ('-------  ' * 4)

将变成这样:

print ('-------  ' + '-------  ' + '-------  ' + '-------  ' )

它也可以输入为:

print ('-------  -------  -------  -------  ' )

所以。你的问题在这里:

    for x in range(4):
print ('| ' +gameDeck._deck[currentCard]+'|'),
currentCard += 1

这将打印为:

|  7-H|
| 5-H|
| 7-H|
| 9-H|

你需要把它写成这样:

        print ('|  ' +gameDeck._deck[currentCard]+'|'+'|  ' +gameDeck._deck[currentCard+1]+'|'+'|  ' +gameDeck._deck[currentCard+2]+'|'+'|  ' +gameDeck._deck[currentCard+3]+'|')

这样它就会像你想要的那样打印一行:

    |  7-H|  |  5-H|  |  7-H|  |  9-H|

这是我稍微清理过的代码。如果它像它应该的那样工作,它应该工作:

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):
print (' ------- ' * 4)
print (' | | ' * 4)
print (' | ' +gameDeck._deck[currentCard]+' | '+' | ' +gameDeck._deck[currentCard+1]+' | '+' | ' +gameDeck._deck[currentCard+2]+' | '+' | ' +gameDeck._deck[currentCard+3]+' | ')
print (' | | ' * 4)
print (' ------- ' * 4)

哦,就像 John Y 所说的那样(复制并粘贴):

main 函数有一个悬空的 mystring =,这是一个明显的语法错误

这是我用来测试的,因为整个代码不适合我,我只是测试了打印部分:

print (' ------- ' * 4)
print (' | | ' * 4)
print (' | ' +"1-H"+' | '+' | ' +"2-H"+' | '+' | ' +"3-H"+' | '+' | ' +"4-H"+' | ')
print (' | | ' * 4)
print (' ------- ' * 4)

这让我感动:

 -------  -------  -------  ------- 
| | | | | | | |
| 1-H | | 2-H | | 3-H | | 4-H |
| | | | | | | |
------- ------- ------- -------
>>>

关于python - Python 上的纸牌配对游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636320/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com