Я строю линкор, пока учу себя Руби. В моем классе доски я заполняю все ячейки в диапазоне (1..4, "A" .. "D"), поэтому он выглядит как "A1", "A2", "A3" и т. Д. Буквы показывают строку, а цифры показывают столбец.
Теперь я пытаюсь сделать доску. Я подумал, что могу взять свой хэш ячеек, отделить ключи (буквенно-цифровую координату) и вставить символ новой строки после окончания каждой комбинации букв (A, затем B на \ n и C на \ n и т. Д.)Я могу заставить его работать очень статично, но я не уверен, как сделать его более динамичным, чтобы соответствовать доске - чтобы разрешить плату нестандартного размера. Мой текущий вывод выглядит следующим образом, когда я вызываю board.cells ...
{"A1"=>#<Cell:0x007f8edf3231e0 @coordinate="A1", @fired=false, @render=**".", @ship=nil**>,
"A2"=>#<Cell:0x007f8edf323118 @coordinate="A2", @fired=false, @render=**".", @ship=nil**>,
"A3"=>#<Cell:0x007f8edf323000 @coordinate="A3", @fired=false, @render=**".", @ship=nil**>,
"A4"=>#<Cell:0x007f8edf322ee8 @coordinate="A4", @fired=false, @render=**".", @ship=nil**>,
"B1"=>#<Cell:0x007f8edf322da8 @coordinate="B1", @fired=false, @render=**".", @ship=nil**>,
"B2"=>#<Cell:0x007f8edf322cb8 @coordinate="B2", @fired=false, @render=**".", @ship=nil**>,
"B3"=>#<Cell:0x007f8edf322ba0 @coordinate="B3", @fired=false, @render=**".", @ship=nil**>,
"B4"=>#<Cell:0x007f8edf322a88 @coordinate="B4", @fired=false, @render=**".", @ship=nil**>,
...C...D...etc...}
В настоящее время я работаю над рендерингом платы, поэтому моя логика заключалась в том, чтобы я мог разделить ячейки на каждую другую букву(cell.keys [0]), тогда я смогу поработать над запуском @render и манипулировать им оттуда.
Пожалуйста, скажите мне, если моя логика - дерьмо :) Мне нужна обратная связь, чтобы изучить. Кроме того, если вы знаете, как заставить \ n работать так, как я думаю, можете ли вы указать мне правильное направление? Если я думаю об этом неправильно, пожалуйста, объясните.
Спасибо!