我正在从小就开始制作游戏,我希望有2位玩家,每个玩家使用不同的纸牌和纸牌颜色。
我试图将它带到课堂之外,并编写一些意大利面条代码,但并没有真正起作用。
import random,time
cardOnTable = 1
cardOnTableColor = 'koule'
possibleColors = ['koule', 'srdce', 'listy', 'žaludy']
class Player:
cardsInHands = []
cardsInHandsColors = []
p1=Player()
print("Player 1 initialized")
p2=Player()
print("Player 2 initialized")
def giveCards(player):
for i in range(4):
player.cardsInHands.append(random.randint(1,10))
player.cardsInHandsColors.append(random.choice(possibleColors))
time.sleep(0.1)
giveCards(p1)
print(p1.cardsInHands)
giveCards(p2)
print(p2.cardsInHands)
我期望输出[3,2,2,2]和[9,10,5,8],但我得到了[3,2,2,2]和[3,2,2,2,9 ,10,5,8]
答案 0 :(得分:1)
您已将cardsInHands
和cardsInHandsColors
设置为类变量而不是实例变量。因此,它们在该类的所有实例之间共享。您应该在__init__
方法中定义它们。
class Player:
def __init__(self):
self.cardsInHands = []
self.cardsInHandsColors = []
答案 1 :(得分:-1)
您正在设置全局变量/本地变量,您需要将它们包含在类中
cardOnTableColor = 'koule'
possibleColors = ['koule', 'srdce', 'listy', 'žaludy']
class Player:
def __init__(self,cards=[],colors=[]):
self.cardsInHands = cards
self.cardsInHandsColors = colors
p1=Player()
print("Player 1 initialized")
p2=Player()
print("Player 2 initialized")
def giveCards(player):
for i in range(4):
player.cardsInHands.append(random.randint(1,10))
player.cardsInHandsColors.append(random.choice(possibleColors))
time.sleep(0.1)
giveCards(p1)
print(p1.cardsInHands)
giveCards(p2)
print(p2.cardsInHands)
没有测试。