SHIPS = (('AirCraftCarrier', 5), ('Battleship', 4),
('Submarine', 3), ('Destroyer', 3), ('PatrolBoat', 2))
position = ('v', 'h')
def setShip(self, board, graphics):
maxval = board.getSize() - 1
coords = []
sizes = [(v) for k, v in SHIPS]
for i in sizes:
legal = False
while not legal:
pos = choice(position)
if pos == 'v':
x = randint(0, maxval-1)
y = some kind of code to change y while keeping x same
if pos == 'h':
x = some kind of code to change x while keeping y same
y = randint(0, maxval-1)
if not board.isOccupied(x, y):
legal = True
coords.append((pos, x, y))
#return grid.displayShip(x, y)
return coords
Теперь, если выбран вариант v=vertical
, значения y должны измениться, в то время как значения x остаются прежними. Это заставит мой корабль располагаться вертикально. Я не знаю, как сделать эту работу. Мне нужно, чтобы первое значение было выбрано случайным образом, а затем значения после него, чтобы просто пройти длину корабля, однако последнее значение не может быть больше 9, поскольку моя сетка может идти только до 9.