-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmaze_solver.rb
More file actions
41 lines (36 loc) · 745 Bytes
/
maze_solver.rb
File metadata and controls
41 lines (36 loc) · 745 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$grid
$dx = [-1, 0, 1, 0]
$dy = [0, 1, 0, -1]
def mark(x,y)
(0...4).each do |k|
i = $dx[k] + x
j = $dy[k]+ y
return print_matrix if $grid[i][j] == 'E'
if $grid[i][j] == ' '
$grid[i][j] = 'X'
mark(i,j)
$grid[i][j] = ' '
end
end
end
def maze_solver
$grid.each_index do |i|
$grid[i].each_char.with_index do |ch, j|
mark(i,j) if $grid[i][j] == 'S'
end
end
$grid
end
def print_matrix
$grid.each {|row| p row}
end
$grid = Array.new(8,'')
$grid[0] = '*******'
$grid[1] = '* *E*'
$grid[2] = '* * * *'
$grid[3] = '* *S* *'
$grid[4] = '* * * *'
$grid[5] = '* *** *'
$grid[6] = '* *'
$grid[7] = '*******'
maze_solver