Class: BaseBoard
- Inherits:
-
Object
show all
- Defined in:
- lib/codenjoy/base_board.rb
Instance Method Summary
collapse
Instance Method Details
#any_of_at?(x, y, elements = []) ⇒ Boolean
21
22
23
24
25
26
27
|
# File 'lib/codenjoy/base_board.rb', line 21
def any_of_at?(x, y, elements = [])
return false if Point.new(x, y).out_of?(size)
elements.each do |e|
return true if at?(x, y, e)
end
false;
end
|
#at?(x, y, element) ⇒ Boolean
34
35
36
37
|
# File 'lib/codenjoy/base_board.rb', line 34
def at?(x, y, element)
return false if Point.new(x, y).out_of?(size)
get_at(x, y) == element;
end
|
#board_to_s ⇒ Object
12
13
14
|
# File 'lib/codenjoy/base_board.rb', line 12
def board_to_s
Array.new(size).each_with_index.map{ |e, n| @raw[(n * size)..((n + 1) * size - 1)]}.join("\n")
end
|
#count_near(x, y, element) ⇒ Object
52
53
54
55
56
57
58
59
60
|
# File 'lib/codenjoy/base_board.rb', line 52
def count_near(x, y, element)
return 0 if Point.new(x, y).out_of?(size)
count = 0
count += 1 if at?(x - 1, y , element)
count += 1 if at?(x + 1, y , element)
count += 1 if at?(x , y - 1, element)
count += 1 if at?(x , y + 1, element)
count
end
|
#find_all(element) ⇒ Object
39
40
41
42
43
44
45
46
|
# File 'lib/codenjoy/base_board.rb', line 39
def find_all(element)
result = []
@raw.length.times do |i|
point = xyl.getXY(i);
result.push(point) if at?(point.x, point.y, element)
end
result;
end
|
#find_by_list(list) ⇒ Object
48
49
50
|
# File 'lib/codenjoy/base_board.rb', line 48
def find_by_list(list)
list.map{ |e| find_all(e) }.flatten.map{ |e| [e.x, e.y] }
end
|
#get_at(x, y) ⇒ Object
16
17
18
19
|
# File 'lib/codenjoy/base_board.rb', line 16
def get_at(x, y)
return false if Point.new(x, y).out_of?(size)
@raw[xyl.getLength(x, y)]
end
|
#near?(x, y, element) ⇒ Boolean
29
30
31
32
|
# File 'lib/codenjoy/base_board.rb', line 29
def near?(x, y, element)
return false if Point.new(x, y).out_of?(size)
at?(x + 1, y, element) || at?(x - 1, y, element) || at?(x, y + 1, element) || at?(x, y - 1, element)
end
|
#size ⇒ Object
8
9
10
|
# File 'lib/codenjoy/base_board.rb', line 8
def size
@size ||= Math.sqrt(@raw.length);
end
|
#xyl ⇒ Object
4
5
6
|
# File 'lib/codenjoy/base_board.rb', line 4
def xyl
@xyl ||= LengthToXY.new(size);
end
|