Class: Codenjoy::Client::Games::Snake::Board

Inherits:
BaseBoard
  • Object
show all
Defined in:
lib/codenjoy/games/snake/board.rb

Constant Summary collapse

ELEMENTS =
{
  BAD_APPLE: '',
  GOOD_APPLE: '',

  BREAK: '',

  HEAD_DOWN: '',
  HEAD_LEFT: '',
  HEAD_RIGHT: '',
  HEAD_UP: '',

  TAIL_END_DOWN: '',
  TAIL_END_LEFT: '',
  TAIL_END_UP: '',
  TAIL_END_RIGHT: '',
  TAIL_HORIZONTAL: '',
  TAIL_VERTICAL: '',
  TAIL_LEFT_DOWN: '',
  TAIL_LEFT_UP: '',
  TAIL_RIGHT_DOWN: '',
  TAIL_RIGHT_UP: '',

  NONE: ' '
}

Instance Method Summary collapse

Methods inherited from BaseBoard

#any_of_at?, #at?, #board_to_s, #count_near, #find_all, #find_by_list, #get_at, #near?, #size, #xyl

Instance Method Details

#barrier_at?(x, y) ⇒ Boolean

Returns:

  • (Boolean)


74
75
76
77
# File 'lib/codenjoy/games/snake/board.rb', line 74

def barrier_at?(x, y)
  return false if Point.new(x, y).out_of?(size)
  get_barriers.include?([x.to_f, y.to_f]);
end

#get_appleObject



58
59
60
# File 'lib/codenjoy/games/snake/board.rb', line 58

def get_apple
  find_by_list([ELEMENTS[:GOOD_APPLE]])
end

#get_barriersObject



70
71
72
# File 'lib/codenjoy/games/snake/board.rb', line 70

def get_barriers
  find_by_list([ELEMENTS[:BREAK], ELEMENTS[:BAD_APPLE]])
end

#get_my_bodyObject



49
50
51
52
53
54
55
56
# File 'lib/codenjoy/games/snake/board.rb', line 49

def get_my_body
  find_by_list([
    :HEAD_DOWN, :HEAD_LEFT, :HEAD_RIGHT, :HEAD_UP,
    :TAIL_END_DOWN, :TAIL_END_LEFT, :TAIL_END_UP,
    :TAIL_END_RIGHT, :TAIL_HORIZONTAL, :TAIL_VERTICAL,
    :TAIL_LEFT_DOWN, :TAIL_LEFT_UP, :TAIL_RIGHT_DOWN, :TAIL_RIGHT_UP
  ].map{ |e| ELEMENTS[e] })
end

#get_my_headObject



45
46
47
# File 'lib/codenjoy/games/snake/board.rb', line 45

def get_my_head
  find_by_list([:HEAD_DOWN, :HEAD_UP, :HEAD_RIGHT, :HEAD_LEFT].map{ |e| ELEMENTS[e] })
end

#get_stoneObject



62
63
64
# File 'lib/codenjoy/games/snake/board.rb', line 62

def get_stone
  find_by_list([ELEMENTS[:BAD_APPLE]])
end

#get_wallsObject



66
67
68
# File 'lib/codenjoy/games/snake/board.rb', line 66

def get_walls
  find_by_list([ELEMENTS[:BREAK]])
end

#process(str) ⇒ Object



39
40
41
42
43
# File 'lib/codenjoy/games/snake/board.rb', line 39

def process(str)
  puts "-------------------------------------------------------------------------------------------"
  puts str
  @raw = str
end

#to_sObject



79
80
81
82
83
84
85
86
87
88
# File 'lib/codenjoy/games/snake/board.rb', line 79

def to_s
  [
    "Board:",
    board_to_s,
    "My head at: #{get_my_head}",
    "My body at: #{get_my_body}",
    "Apple at: #{get_apple}",
    "Stone at: #{get_stone}"
  ].join("\n")
end