python335
Дек. 4, 2016 09:09:52
Я делаю Морской Бой на tkinter. И оформление уже сделал. Вот только как сделать расстановку кораблей?? Я могу расставить кнопки циклом по клеточкам поля, но если игрок нажмет на любую клеточку, то он по идее обратиться только к последней созданной циклом кнопке. Как можно исправить это?: чтобы после расставления кнопок циклом игрок мог обратиться к каждой по одному? И чтобы еще они различались, знаете, типо словарь создать или их все в переменные запихнуть???
py.user.next
Дек. 4, 2016 10:01:21
У тебя должны быть массивы полей с числами. И в каждой клетке этого массива чисел может быть какое-нибудь число, означающее, что это море непроверенное, море проверенное, корабль подстреленный (палуба), корабль неподстреленный (палуба) - то есть много чисел всяких. И потом ты это отрисовываешь каждую секунду, а вся работа идёт с этим массивом. И когда ты расставляешь корабли, они тоже в виде сигналов связываются с этим массивом и он рисуется с мигающим кораблём.
Shalunix
Дек. 4, 2016 19:19:43
Можно словарем. К примеру если поле 10х10, то будет 100 значений, 0-9 первая строка, 10-19 вторая и т.д., ну а их содержимое сам кодируй, например pole{'0':2, ‘1’: 0, …}, где значения списка 0-вода, 1- корабль не подбитый и т.д.
doza_and
Дек. 5, 2016 08:33:08
python335
но если игрок нажмет на любую клеточку, то он по идее обратиться только к последней созданной циклом кнопке. Как можно исправить это?
Ну надо не по идее а проверить. Чтобы остальным была понятна ваша идея приведите фрагмент кода в котором вы осуществляете расстановку.
Я бы так вообще без кнопок это делал. получил x,y, вычислил координаты ячейки и в двумерном массиве проверил что происходит.