小编Gal*_*lax的帖子

检查列表中的特定项目,无需迭代或 find()

所以我有一个 SteamApp 对象列表:

   >>> games
   [<SteamApp "Counter-Strike: Global Offensive" (730)>, <SteamApp "XCOM: Enemy Unknown" (200510)>]
Run Code Online (Sandbox Code Playgroud)

我也有这段代码:

ownscs = []

if '"Counter-Strike: Global Offensive"' in games:
            print('Owns CS')
            ownscs.append(foo)
Run Code Online (Sandbox Code Playgroud)

我想做的就是检查是否有人拥有《反恐精英》,但问题的关键来了,列表游戏不可迭代,并且没有属性查找,如果我尝试这两个游戏,我会得到:

if any('"Counter-strike: Global Offensive"' in s for s in games):
TypeError: argument of type 'SteamApp' is not iterable
Run Code Online (Sandbox Code Playgroud)

if games.find('"Counter-strike: Global Offensive"') != -1:
AttributeError: 'SteamApp' object has no attribute 'find'
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:当《反恐精英:全球攻势》显然既不可迭代也不可找到时,我如何检查它的游戏列表。

如果您想知道那是什么,我使用https://github.com/smiley/steamapi创建 SteamApp 对象。

python python-3.x steam-web-api

2
推荐指数
1
解决办法
1413
查看次数

使用每个类创建一个Rock-Paper-Scissors游戏

今天艰难的任务.我已经在圈子里工作了大约五个小时.我只是无法绕过这个,看看这个上的雾.这是我们老师今晚指派的作业:

创建一个名为RockPaperScissors的新Visual Studio控制台应用程序.

Rock/Paper/Scissors游戏有以下规则:

  • Scissor总是赢得Paper
  • 洛克总是赢得反对剪刀
  • 纸总是胜过Rock

创建以下三个遵循以下规则的类:

  • PlayerRock - 始终执行Rock的Act().

  • PlayerScissors - 总是执行Scissors的Act().

  • PlayerPaper - 始终执行Paper的Act().

创建一个具有名为Fight()的方法的Game类,以满足这些要求:

  • Fight()方法接受两个参数:Player1和Player2.

  • Fight()方法调用两个玩家的Act()方法.

  • Fight()方法使用上面的Rock/Paper/Scissors规则返回获胜玩家.

经过100轮比赛,哪位球员获胜?

我可以轻松地将游戏逻辑和脚本编写出来,没问题.如何使每个武器的法案方法成为现实?并传递一个player1和player2?我是否需要类来创建新的播放器对象?我有Rock,Paper,Scissors课程,但他们基本上只有一种方法可以让他们回归摇滚,纸张和剪刀.我不是要求任何人为我制作这个游戏,但任何人都可以让我指出正确的方向吗?谢谢大家!

c# oop

0
推荐指数
1
解决办法
3289
查看次数

标签 统计

c# ×1

oop ×1

python ×1

python-3.x ×1

steam-web-api ×1