首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python UNO游戏错误

Python UNO游戏错误
EN

Stack Overflow用户
提问于 2021-12-26 20:21:19
回答 1查看 75关注 0票数 0

我正在创建一个UNO游戏。我想我在Uno,def playGame和playTurn课上有个问题。我得到以下错误。在def playGame中,我试着检查球员的牌盘或手是否是空的。如果是这样的话,比赛就结束了,我们有一个胜利者。在playTurn中,我通过将卡片发送到canPlay函数来检查玩家手中是否有一张可玩的牌。如果有一张可玩的牌,那么玩家就玩这张牌,我把牌从手上移走。

"c:\Users\yaman\OneDrive\Desktop\uno_game.py",跟踪(最近一次调用):

()中的第150行文件

文件"c:\Users\yaman\OneDrive\Desktop\uno_game.py",第147行,在主my_game.playGame()中

文件"c:\Users\yaman\OneDrive\Desktop\uno_game.py",第92行,在playGame self.lastPlayedCard=random.choice(self.hand1)中

文件"C:\Python39\lib\random.py",第347行,选择返回seqself._randbelow(len(seq)) TypeError:类型为'CollectionOfUnoCards‘的对象没有len()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-26 20:28:52

您试图计算CollectionOfUnoCards的大小,但程序失败。在python中,您应该声明自定义__len__方法来调用自定义类上的len函数。

尝试像这样将__len__添加到CollectionOfUnoCards中

代码语言:javascript
复制
class CollectionOfUnoCards:
    def __len__(self):
        return len(self.cardlist)

另外,这里也有错误。

  • random.choice(self.hand1) -> random.choice(self.hand1.cardlist),因为您可以在list.
  • for card in self.hand1: -> for card in self.hand1.cardlist:
  • self.hand1.remove(play) -> self.hand1.cardlist.remove(play)

上调用random.choice

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70489573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档