<commit_before>class Feature

  include Draw

  attr_accessor :x, :y

  def initialize(game, x=nil, y=nil, attrs={})
    @game = game
    @x = x
    @y = y
    @attrs = attrs
    @@features ||= []
    @@features << self
    init_position
    @game.drawable_objects << self
    @game.updatable_objects << self
    class_init if self.respond_to?(:class_init)
  end

  def config
    @game.config
  end

  def init_position
    @x ||= rand(config['no_lanes'])
    @y ||= rand(config['no_steps'])
    self.teleport if other_feature_at?(@x, @y)
  end

  def teleport
    @x = rand(config['no_lanes'])
    @y = rand(config['no_steps'])
    self.teleport if other_feature_at?(@x, @y)<commit_msg>Ensured features don't materialise under walkers.<commit_after>class Feature

  include Draw

  attr_accessor :x, :y

  def initialize(game, x=nil, y=nil, attrs={})
    @game = game
    @x = x
    @y = y
    @attrs = attrs
    @@features ||= []
    @@features << self
    init_position
    @game.drawable_objects << self
    @game.updatable_objects << self
    class_init if self.respond_to?(:class_init)
  end

  def config
    @game.config
  end

  def init_position
    @x ||= rand(config['no_lanes'])
    @y ||= rand(config['no_steps'])
    self.teleport if other_feature_at?(@x, @y)
  end

  def teleport
    @x = rand(config['no_lanes'])
    @y = rand(config['no_steps'])
    self.teleport if other_feature_at?(@x, @y) or Walker.at(@x, @y).any?
{'fraction_non_alphanumeric': 0.14603616133518776, 'fraction_numerical': 0.0, 'mean_word_length': 3.158959537572254, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7098944', 'n_tokens_mistral': 538, 'n_tokens_neox': 521, 'n_words': 121}