Class: Knot::Grid

Inherits:
Matrix
  • Object
show all
Defined in:
lib/knot/grid.rb

Overview

The grid is a Matrix of cells (arranged as rows and columns.)

ruby-doc.org/stdlib-3.0.2/libdoc/matrix/rdoc/Matrix.html)

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#position(i, j) ⇒ Object (readonly)

The grid can be navigated with absolute coordinates i, j.



11
12
13
# File 'lib/knot/grid.rb', line 11

def position
  @position
end

Instance Method Details

#eObject



29
30
31
# File 'lib/knot/grid.rb', line 29

def e
  rel 0, 1
end

#e2Object



61
62
63
# File 'lib/knot/grid.rb', line 61

def e2
  rel 0, 2
end

#nObject



21
22
23
# File 'lib/knot/grid.rb', line 21

def n
  rel -1, 0
end

#n2Object



53
54
55
# File 'lib/knot/grid.rb', line 53

def n2
  rel -2, 0
end

#neObject



25
26
27
# File 'lib/knot/grid.rb', line 25

def ne
  rel -1, 1
end

#ne2Object



57
58
59
# File 'lib/knot/grid.rb', line 57

def ne2
  rel -2, 2
end

#nwObject



49
50
51
# File 'lib/knot/grid.rb', line 49

def nw
  rel -1, -1
end

#nw2Object



81
82
83
# File 'lib/knot/grid.rb', line 81

def nw2
  rel -2, -2
end

#rel(i, j) ⇒ Object

Nearby cells accessed relatively with i, j.



17
18
19
# File 'lib/knot/grid.rb', line 17

def rel i, j
  self[*@position + Vector[i, j]]
end

#sObject



37
38
39
# File 'lib/knot/grid.rb', line 37

def s
  rel 1, 0
end

#s2Object



69
70
71
# File 'lib/knot/grid.rb', line 69

def s2
  rel 2, 0
end

#seObject



33
34
35
# File 'lib/knot/grid.rb', line 33

def se
  rel 1, 1
end

#se2Object



65
66
67
# File 'lib/knot/grid.rb', line 65

def se2
  rel 2, 2
end

#swObject



41
42
43
# File 'lib/knot/grid.rb', line 41

def sw
  rel 1, -1
end

#sw2Object



73
74
75
# File 'lib/knot/grid.rb', line 73

def sw2
  rel 2, -2
end

#wObject



45
46
47
# File 'lib/knot/grid.rb', line 45

def w
  rel 0, -1
end

#w2Object



77
78
79
# File 'lib/knot/grid.rb', line 77

def w2
  rel 0, -2
end