from constants import BOARD_WIDTH, BOARD_HEIGHT, ROW_NUMBERS, COLUMN_LETTERS class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKCYAN = '\033[96m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' BOLD = '\033[1m' UNDERLINE = '\033[4m' characterPrefixes: list[str] = [bcolors.OKBLUE, bcolors.BOLD, bcolors.FAIL, bcolors.OKBLUE] characters: list[str] = ['0', '#', 'X', '-'] def getShipCharacter(ship: int): return characters[ship] def printBoard(board: list[int], hideShips: bool = False): i = 0 print(" ", end="") for n in range(BOARD_WIDTH): print(f"{bcolors.BOLD}{COLUMN_LETTERS[n]}{bcolors.ENDC} ", end="") print() for x in range(BOARD_WIDTH): print(f"{bcolors.BOLD}{ROW_NUMBERS[x]}{bcolors.ENDC} ", end="") for y in range(BOARD_HEIGHT): character = getShipCharacter(board[i]) prefix = characterPrefixes[board[i]] if hideShips and board[i] == 1: character = getShipCharacter(0) prefix = characterPrefixes[0] print(f"{prefix}{character}{bcolors.ENDC} ", end="") i += 1 print()