только одна из этих функций ('render' & 'render_all') печатает на терминал, а другая возвращает "nil". Я могу поменять их местами и даже сделать их идентичными. Один всегда будет работать и печатать, а другой возвращает «ноль». Я не могу понять, почему. Мне нужно отобразить все грани моего класса плиток в конце, который требует render_all, и мне нужно визуализировать его частично, пока игра еще продолжается.
class Board
def initialize(size, bombs)
@size = size
explosives = bombs
@grid = Array.new(size) {Array.new(size) {Tile.new}}
while explosives != 0
potential_bomb = @grid[rand(0...size)][rand(0...size)]
if potential_bomb.bomb == false
potential_bomb.bomb = true
potential_bomb.face = "X"
explosives -= 1
end
end
end
attr_accessor :size, :grid,
def render
grid.each do |row|
row.each do |box|
if box.shown == true
print "#{box.face}"
else
print "#"
end
end
print "\n"
end
end
def render_all
grid.each do |row|
row.each do |box|
print "#{box.face}"
end
end
end
def solved
solved = true
grid.each do |row|
row.each {|pos| solved = false if pos.shown != true && pos.bomb == false}
end
return solved
end
def [](pos)
x,y = pos
grid[x][y]
end
end