Skip to content
This repository was archived by the owner on Apr 24, 2025. It is now read-only.

Commit be24578

Browse files
committed
fix(Battleship): errors in utils, game, and board
utils - fixed circular import game - fixed place_ships duplicated code board - fixed and added checks for hit or missed
1 parent cef722e commit be24578

3 files changed

Lines changed: 7 additions & 4 deletions

File tree

projects/Battleship/board.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,12 @@ def which_ship(self, row: int, col: int) -> None | Ship:
222222

223223
def enemy_move(self, row: int, col: int) -> None:
224224
"""Performs an enemy's move."""
225+
226+
# Check if the coordinate is already a hit or missed.
227+
board = self.get_board_for_enemy()
228+
if board[row][col] in [self._enemy_pov_labels.hit, self._enemy_pov_labels.missed]:
229+
raise BoardException(f"The given coordinate ({row}, {col}) already has {board[row][col]}.")
230+
225231
ship: None | Ship = self.which_ship(row, col)
226232

227233
if isinstance(ship, Ship):

projects/Battleship/game.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,5 +291,3 @@ def place_ships(self):
291291
"""Randomly place ships for both players."""
292292
self.player_1.generate_random_ship_arrangements()
293293
self.player_2.generate_random_ship_arrangements()
294-
self.player_1.generate_random_ship_arrangements()
295-
self.player_2.generate_random_ship_arrangements()

projects/Battleship/utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
import random
33

44
from ship import Ship
5-
from player import Player
65
from board import Board
76

87

@@ -239,7 +238,7 @@ def attack_prompt(board_size: int,
239238

240239
class PrintMixin:
241240
@staticmethod
242-
def print_player_board(player: Player, other_player: Player) -> None:
241+
def print_player_board(player, other_player) -> None:
243242
"""
244243
Print the current battlefield situation and targets for the specified player.
245244

0 commit comments

Comments
 (0)