Fix field range bug in check_empty()

This commit is contained in:
Artur Savitskiy 2024-09-09 20:21:38 +02:00
parent feb25bb48f
commit a48fc1176e
2 changed files with 7 additions and 2 deletions

View File

@ -286,6 +286,11 @@ class ShipField:
return self.field[row * ShipField.field_size + col].strip() == "\\" return self.field[row * ShipField.field_size + col].strip() == "\\"
def check_empty(self, row, col): def check_empty(self, row, col):
if row < 0 or row > ShipField.field_size - 1:
return False
if col < 0 or col > ShipField.field_size - 1:
return False
cell = self.field[row * ShipField.field_size + col].strip() cell = self.field[row * ShipField.field_size + col].strip()
return cell == "0" or cell == "" return cell == "0" or cell == ""

View File

@ -11,7 +11,6 @@ from GameMode import GameMode
from ShootResult import ShootResult from ShootResult import ShootResult
def create_view(window, enemy): def create_view(window, enemy):
field = ShipField() field = ShipField()
buttons = [] buttons = []
@ -27,6 +26,7 @@ def create_view(window, enemy):
colorize(view) colorize(view)
return view return view
def show_view(view, col_offset=0, row_offset=0): def show_view(view, col_offset=0, row_offset=0):
field_size = view.ship_field.field_size field_size = view.ship_field.field_size
@ -140,6 +140,7 @@ def load_field(view, file_path):
colorize(view) colorize(view)
def refresh_remaining_ships_label(view): def refresh_remaining_ships_label(view):
text = '' text = ''
for i in range(1, 5): for i in range(1, 5):
@ -162,7 +163,6 @@ def next_game_mode():
update_game_mode() update_game_mode()
def update_game_mode(): def update_game_mode():
global game_mode global game_mode