首页 > 解决方案 > 上课有什么我不明白的吗?

问题描述

我正在从我的童年时代开始制作一个游戏,我希望有 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]

标签: pythonpython-3.x

解决方案


您有 setupcardsInHandscardsInHandsColorsas 类变量而不是实例变量。因此它们在类的所有实例之间共享。__init__您应该在方法中定义它们。

class Player:
    def __init__(self):
        self.cardsInHands = []
        self.cardsInHandsColors = []

推荐阅读