Здравствуйте, помогите разобраться с вопросом, обучаюсь питону и делаю ДЗ игру с морским боем. Иногда нужно несколько прогонов цикла, чтобы сделать разметку игрового поля из-за переполнения, потом доделать код и всегда нужно будет 2 прохода: Вручную и случайно. Когда добавляю в самый конец новые переменные, чтобы потом их использовать для нового цикла заполнения. Они же еще находятся и в глобальной. "field = [ ["О"] * 6 for _ in range(6) ]" и "ships = ["■■■", "■■","■■", "■", "■", "■", "■"] " в 224 и 225 строки, я ловлю ошибку(можно запустить без этих 2 строк, оно будет срабатывать в процентах 70%)
UnboundLocalError Traceback (most recent call last)
Input In [1], in <cell line: 230>()
227 break
229 t = Ships()
--> 230 a = t.ship("pc")
231 #b = t.ship("pc")
232 #b = t.ship("hum")
233 #print(a,b)
234 t.fight(a,a)
Input In [1], in Ships.ship(self, player)
174 print("Выход за игровое поле по X")
175 break
--> 176 if field[y1] [x1+n] != "О":
177 if player == "hum":
178 print("Выберите свободное место, оно занято")
UnboundLocalError: local variable 'field' referenced before assignment
Я думаю тут должно быть типа такого, но видимо нет, т.к. в этом случае нет ошибки, а у меня появляется, помогите понять суть в целом. Спасибо
x = 2
def bo():
x = 3
print(x)
def bo2():
x = 4
print(x)
bo2()
bo()
print(x)
Вот то что у меня получилось на данный момент. Тут ограничения в символах, на гитхабе работа:
тык