python蛇游戏中的逻辑错误

时间:2016-01-26 05:49:56

标签: python

我在python中训练蛇游戏,无法获得返回预期结果的函数。这似乎是一个逻辑错误,但我无法弄明白

这是功能:

import play.Configuration;
import javax.inject.Inject;


@Inject
private Configuration configuration;

...

String value = configuration.getString("your.key");

1 个答案:

答案 0 :(得分:0)

  

返回(x,y)元组

return语句似乎根本不返回x,y元组 - 并且有一种方法可以退出函数而不返回任何内容。 <%= f.fields_for :category_item_values do |item_value| %> <%= SOMETHING.name %> <%= item_value.label :value %> <%= item_value.text_field :value %> <% end %> 然后退出。

我不知道您拨打apples.append((x, y))的频率,但看起来不会正常工作。代码的作用:

  • 随机选择一个空格
  • 如果那个地方没有蛇或肉(它可能有一个苹果food()):
    • 将一个位置存储在列表中并退出而不返回任何内容(哦:D)。
  • 如果那个地方有蛇或肉(它不能有苹果:():
    • 将苹果放在上一次:(通话中找到的地方,这可能不再准确,因为蛇从那时起就会移动,或者列表可能是空的,因为它上次只检查了一个随机空间

描述所说的更像是:

  • 根据需要尝试尽可能多的空格,最终检查区域中的每个空格
  • 识别所有空闲区域(没有蛇,没有肉)
  • 随机选择其中一个并将其返回(你没有这么说,但随机化它是有道理的,否则苹果总会出现在最左上角,或者你先搜索的地方)
  • 如果在检查每个空格后没有空闲空格,则返回无

这看起来更像是这样(未经测试的示例代码):

food()

如果蛇是一个元组列表,def food(zone, meat, snake): ''' Returns an (x, y) tuple if there is a location for a new apple available. Otherwise returns None ''' import random free_spaces = [] for x in range(zone.width): for y in range(zone.height): if (x, y) not in snake and (x, y) not in meat: free_spaces.append((x, y)) if free_spaces: return random.choice(free_spaces) return None 测试将起作用,如(x,y) not in snake,但它可能不起作用。