def test_placing_ship(self):
     board = Board(4, 4)
     cruiser = Ship("Cruiser", 3)
     submarine = Ship("Submarine", 2)
     board.place(cruiser, ["A1", "A2", "A3"])
     self.assertEqual(board.cells["A1"].ship, cruiser)
     self.assertEqual(board.cells["A2"].ship, cruiser)
     self.assertEqual(board.cells["A3"].ship, cruiser)
     self.assertTrue(board.cells["A1"].ship == board.cells["A3"].ship)
     # Test for overlap
     self.assertFalse(board.isValidPlacement(submarine, ["A1", "B1"]))
 def test_is_valid_placement(self):
     board = Board(4, 4)
     cruiser = Ship("Cruiser", 3)
     submarine = Ship("Submarine", 2)
     self.assertEqual(board.isValidPlacement(cruiser, ["A1", "A2"]), False)
     self.assertEqual(board.isValidPlacement(submarine, ["A2", "A3", "A4"]),
                      False)
     self.assertEqual(board.isValidPlacement(cruiser, ["A1", "A2", "A4"]),
                      False)
     self.assertEqual(board.isValidPlacement(submarine, ["A1", "C1"]),
                      False)
     self.assertEqual(board.isValidPlacement(cruiser, ["A3", "A2", "A1"]),
                      False)
     self.assertEqual(board.isValidPlacement(submarine, ["C1", "B1"]),
                      False)
     self.assertEqual(board.isValidPlacement(cruiser, ["A1", "B2", "C3"]),
                      False)
     self.assertEqual(board.isValidPlacement(submarine, ["C2", "D3"]),
                      False)
     self.assertEqual(board.isValidPlacement(submarine, ["A1", "A2"]), True)
     self.assertEqual(board.isValidPlacement(cruiser, ["B1", "C1", "D1"]),
                      True)
            break
    player = Board(int(width), int(height))
    cpu = Board(int(width), int(height))

    os.system('clear')

    pc_submarine = Ship("Submarine", 2)
    pc_cruiser = Ship("Cruiser", 3)
    npc_submarine = Ship("Submarine", 2)
    npc_cruiser = Ship("Cruiser", 3)

    while True:
        os.system('clear')
        print(player.render(True))
        sub_coords = input("Pick two empty coordinates for your submarine, space separated ('A1 A2') \n")
        if player.isValidPlacement(pc_submarine, sub_coords.split(' ')) == False:
            os.system('clear')
            print(player.render(True))
            print("Please pick empty coordinates that are consecutive and not diagonal")
        else:
            player.place(pc_submarine, sub_coords.split(' '))
            break

    while True:
        os.system('clear')
        print(player.render(True))
        cruiser_coords = input("Pick three empty coordinates, space separated ('A1 A2 A3') \n")
        if player.isValidPlacement(pc_cruiser, cruiser_coords.split(' ')) == False:
            os.system('clear')
            print(player.render(True))
            print("Please pick empty coordinates that are consecutive and not diagonal")