【发布时间】:2017-02-07 18:34:15
【问题描述】:
我做了一个寻宝游戏,我需要它,以便一旦一个包含宝箱的方格被访问 3 次,它就会变成一个“强盗”。 为了计算一个宝箱被访问的次数,我在 TreasureChestCoordinates 列表中添加了另外很多相同的坐标。然后我计划有一个 if 语句,这样如果任何坐标被写入 3 次,所有 3 个将被删除并放入“强盗”列表中。 这是该部分的代码草案:
# Treasure Chests Collecting Coins #
if (x,y) in TreasureCoords[0:(TCNumber -1)]:
print("You have landed on a treasure chest! You can visit it 2 more times before it becomes a bandit.")
CoinCollection = CoinCollection + 10
TreasureCoords.append(x,y)
#if TreasureCoords.count(any item) > 3:
#remove all copies of item from list
#add item to bandit list
x,y 表示用户当前所在的坐标。CoinCollection 是一个单独的变量,当用户降落在宝箱或强盗上时会发生变化。顺便说一下,坐标的数量是无限的,因为用户之前就已经决定了在游戏里。 那么,我怎样才能复制我的坐标列表,一旦它们在列表中 3 次就删除它们并将它们放入新列表中?我想这是最简单的方法来“计算”用户在一个方格上的次数,并将宝箱变成一个强盗。
【问题讨论】:
-
不,这听起来像是一种不必要的复杂方式。只保留从坐标到访问次数的映射会更简单。
-
另外,您在列表中拥有的坐标数量不能是“无限的”,因为您没有无限的内存......
-
抱歉只是想说明我的观点 - 你可能会说我不是一个特别高级的编码器......你的解决方案如何工作?