Я кодировал игру на линейном корабле, в которой корабли размером 1х1 были размещены случайным образом.
Теперь я пытаюсь написать код, в котором корабли будут иметь размер 3х1. Сначала я изменил размер на 2x1 и попытался получить в общей сложности 5 кораблей по горизонтали и вертикали ... но у него все еще есть некоторые проблемы / проблемы.
Вот как я пытался использовать корабли 2x1:
import random
board = []
matrix = []
total_ships = 0
horizontal = 0
vertical = 0
ship_number = 1
for i in range(8):
board = []
for j in range(8):
board.append("o")
matrix.append(board)
while total_ships != 5:
horizontal = random.randint(1, 7)
vertical = random.randint(1, 7)
if matrix[vertical][horizontal] == "o":
matrix[vertical][horizontal] = ship_number
if vertical > 1 and matrix[vertical - 1][horizontal] == "o":
matrix[vertical - 1][horizontal] = ship_number
elif vertical < 1 and matrix[vertical + 1][horizontal] == "o":
matrix[vertical + 1][horizontal] = ship_number
elif horizontal > 1 and matrix[vertical][horizontal - 1] == "o":
matrix[vertical][horizontal - 1] = ship_number
elif horizontal < 1 and matrix[vertical + 1][horizontal] == "o":
matrix[vertical][horizontal + 1] = ship_number
ship_number += 1
total_ships += 1
Как я могу сделать это для правильной работы с кораблями размером 3х1 или, по крайней мере, 2х1? Спасибо за вашу помощь !!