Currently I have code that looks like:
def sudoku_generator
@initial_board = [0] * 81
a = (1..9).sort_by{rand}
b = (1..9).sort_by{rand}
c = (1..9).sort_by{rand}
@initial_board[0..2] = a[0..2]
@initial_board[9..11] = a[3..5]
@initial_board[18..20] = a[6..8]
@initial_board[30..32] = b[0..2]
@initial_board[39..41] = b[3..5]
@initial_board[48..50] = b[6..8]
@initial_board[60..62] = c[0..2]
@initial_board[69..71] = c[3..5]
@initial_board[78..80] = c[6..8]
@initial_board.each_slice(9) do |make_better|
puts make_better.join(' | ')
end
end
print sudoku_generator
This returns:
3 | 7 | 9 | 0 | 0 | 0 | 0 | 0 | 0
1 | 5 | 6 | 0 | 0 | 0 | 0 | 0 | 0
2 | 8 | 4 | 0 | 0 | 0 | 0 | 0 | 0
0 | 0 | 0 | 1 | 5 | 8 | 0 | 0 | 0
0 | 0 | 0 | 6 | 7 | 2 | 0 | 0 | 0
0 | 0 | 0 | 3 | 4 | 9 | 0 | 0 | 0
0 | 0 | 0 | 0 | 0 | 0 | 5 | 1 | 3
0 | 0 | 0 | 0 | 0 | 0 | 4 | 8 | 7
0 | 0 | 0 | 0 | 0 | 0 | 6 | 2 | 9
I am trying to find a way to now replace the zeros within this array with underscores "_". Any feedback would be appreciated. Thanks.
@initial_board = Array.new(81, "_")from the beginning?