В моем классе Ruby я создаю игру Connect Four, которую мой профессор будет запускать в командной строке.
Это должно быть сделано с двойным массивом и while
циклами, а не break
/ exit
/ abort
, loop do
, классы, экземпляр или глобальные переменные.
Мой сеточный массив состоит из 64 '.'
заполнителей во вложенном массиве.Я пытаюсь начать с нижнего ряда своей сетки 8x8 и добавить часть игрока: 'X'
или '0'
.
Я не уверен, как двигаться вверх от строки 8 / index 7в строку 7 / индекс 6, если нижний ряд столбца уже занят.Я использую операторы if
или case
?Должен ли я уменьшить строку?Я пытался вставить if
/ elsif
, но у меня ничего не получилось.
def print_playing_grid (playing_board)
puts "1 2 3 4 5 6 7 8"
playing_board.each do |row|
puts row.join(" ")
end
end
print_playing_grid(grid_array)
# this 'win'/while is only here for testing so the board will repeat on screen
win = false
while win == false
puts
puts "Please select a column to make your move (Player X):"
user_choice = gets.to_i
row = 7
column = user_choice - 1
while row < grid_array.size
grid_array[row][column] = 'X'
row += 1
end
puts
print_playing_grid(grid_array)
end