Как я могу случайно разместить корабли в игре BattleShip? - PullRequest
0 голосов
/ 23 апреля 2020

Я кодировал игру на линейном корабле, в которой корабли размером 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? Спасибо за вашу помощь !!

...