我有什么关于课堂的东西吗?

时间:2019-06-16 01:42:59

标签: python python-3.x

我正在从小就开始制作游戏,我希望有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]

2 个答案:

答案 0 :(得分:1)

您已将cardsInHandscardsInHandsColors设置为类变量而不是实例变量。因此,它们在该类的所有实例之间共享。您应该在__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)

没有测试。