python - 上课有什么我不明白的吗?
问题描述
我正在从我的童年时代开始制作一个游戏,我希望有 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]
解决方案
您有 setupcardsInHands
和cardsInHandsColors
as 类变量而不是实例变量。因此它们在类的所有实例之间共享。__init__
您应该在方法中定义它们。
class Player:
def __init__(self):
self.cardsInHands = []
self.cardsInHandsColors = []
推荐阅读
- regex - 如何使用 Calibre 对章节执行正则表达式替换,包括他们的编号?
- spring - spring boot 2个依赖spring项目中的活动配置文件(一个spring boot项目导入第二个spring boot项目)
- ruby - 无法使用 AWS Ruby SDK 创建 s3 存储桶
- swift - Swift,带有tableview的弹出窗口在从未点击过的位置上显示复选标记
- printing - Netlogo 在同一行打印值和文本
- ios - XCTest:有没有办法在 UI 测试中通过 ID 查找任何类型的视图?
- r - 如何更改特定象限中点的颜色?
- java - 如何从 okhttp 调用中取回数据?
- c# - 我使用视图组件创建部分表单但模型绑定器无法绑定
- webpack - 一起使用 mini-css-extract-plugin 和 style-loader