Помогите с кодом
Что-то типо морского боя, пока не доделанного, нужна помощь с участком кода (не судите строго, первая игра)
Данный код выводит поле игрока и говорит ему поставить единичные корабли на поле, цикл до 5, поэтому кораблей должно быть пять, и все норм, Но там стоит условие если игрок ввел те же координаты, то введи еще раз, однако цикл то проходит, и при одной ошибке и заново введенных координат кораблей на поле уже будет 4 а не 5. при 2-ух ошибках - 3, дальше понятно. Как исправить?
ПС Сорри за сумбур.
userfield = [[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."]]
aifield = [[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."],
[".", ".", ".", ".", "."]]
def printfield():
for i in userfield:
print()
print(i[0],i[1],i[2],i[3],i[4], sep = " ")
printfield()
print('Поставьте 5 ваших единичных кораблей, выберите координаты.')
i = 0
while i !=5:
i += 1
a = int(input('Выберите строку: '))
b = int(input('Выберите столбец: '))
if userfield[a-1][b-1] == ".":
userfield[a-1][b-1] = 1
printfield()
else:
while userfield[a-1][b-1] == 1:
print('Там уже стоит корабль. Выберите другие координаты.')
break
ПС, отступы при вставке пропали, сорян
Делай i += 1 только в случае успешного выполнения условия, или отнимай 1 при неудаче.