我正在写纸牌游戏。
我创建了一个'card'类,以及一个带有card对象作为属性的甲板类。我成功地完成了随机播放,打印卡片组列表,打印卡片组中剩余的卡片以及使系统正常运行的功能。 现在,我尝试根据卡的种子(发给第一张卡,并考虑其种子的种子)属性为每张卡赋予属性(“ Briscola” = True / False),然后将Briscola的值更改为True每张与那颗种子匹配的卡),但是我遇到了2个问题。
当我尝试运行
prova = Mazzo()
prova.inizio()
“ inizo”方法(应选择一张卡片并进行种子处理)给出此TypeError:
in inizio
print('La briscola è', self.semi[brisc.Seme])
TypeError: 'str' object is not callable
这是我写的:
import random
class Carta:
semi = ['Bastoni', 'Spade', 'Coppe', 'Denari']
numeri = ['1', '2', '3', '4', '5', '6', '7', 'Fante', 'Cavallo', 'Re']
briscola = None
def __init__(self, Seme = 0, Valore = 0, Briscola = False):
self.Seme = Seme
self.Valore = Valore
self.Briscola = Briscola
def __str__(self):
return (self.numeri[self.Valore] + " di " +
self.semi[self.Seme])
class Mazzo:
semi = ['Bastoni', 'Spade', 'Coppe', 'Denari']
numeri = ['1', '2', '3', '4', '5', '6', '7', 'Fante', 'Cavallo', 'Re']
def __init__(self):
self.Carte = []
for seme in range(4):
for valore in range(10):
self.Carte.append(Carta(seme,valore))
def inizio(self):
brisc = random.choice(self.Carte)
print = ('-------------La partita è iniziata!-------------')
print('La carta iniziale è ' , brisc)
print('La briscola è', self.semi[brisc.Seme])
for carta in self.Carte:
if carta.Seme == brisc.Seme:
carta.Briscola = True
self.Carte.remove(brisc)
很抱歉,但是变量名是我的母语。为了更好的理解,这是一些翻译: carta / e =牌/ s seme / i =种子/ s Mazzo =副牌号码=数字prova = foo
答案 0 :(得分:1)
print = ('-------------La partita è iniziata!-------------')
该行将print()
函数重新分配为纯字符串,而不再是函数。
因此,下次调用print('something')
时,您会收到错误消息。
大概是错字,而且您并不是要在其中插入=
。