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")