From 82b9166af2103dbcea3d656620d5c6de04232afe Mon Sep 17 00:00:00 2001 From: Artur Savitskiy Date: Tue, 28 May 2024 09:12:00 +0200 Subject: [PATCH] Lesson results commit --- HNS/MB/ShipField.py | 3 +++ HNS/MB/main.py | 3 +-- HNS/MB/test_ShipField.py | 36 +++++++++++++++++++++++++++++++++++- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/HNS/MB/ShipField.py b/HNS/MB/ShipField.py index 66edf5b..e41e589 100644 --- a/HNS/MB/ShipField.py +++ b/HNS/MB/ShipField.py @@ -107,6 +107,9 @@ class ShipField: if self.ship_size in self.ships: self.ships.remove(self.ship_size) + if self.ship_size not in self.ships and len(self.ships) > 0: + self.ship_size = max(self.ships) # min(self.ships) self.ships[0] + def get_ship(self, row, col): if row < 0 or row > ShipField.field_size: return diff --git a/HNS/MB/main.py b/HNS/MB/main.py index 3472d8f..e8e758c 100644 --- a/HNS/MB/main.py +++ b/HNS/MB/main.py @@ -5,8 +5,6 @@ from tkinter import * from ShipField import ShipField from ShipView import ShipView -active_view = {} - def create_view(window, col_offset=0, row_offset=0): field = ShipField() @@ -129,6 +127,7 @@ load_button_row = start_row_my_field + ShipField.field_size + 1 my_view = create_view(window, start_column_my_field, start_row_my_field) enemy_view = create_view(window, start_column_enemy_field, start_row_enemy_field) +active_view = my_view if start_column_my_field > 0: lbl_left_vertical = Label(window, text='', width=5, height=2) diff --git a/HNS/MB/test_ShipField.py b/HNS/MB/test_ShipField.py index 0c9459b..46c378d 100644 --- a/HNS/MB/test_ShipField.py +++ b/HNS/MB/test_ShipField.py @@ -58,7 +58,41 @@ class TestShipField(TestCase): def test_action(self): self.fail() - def test_target(self): + def test_target_ShipMode_PUT(self): + ship_field = ShipField() + ship_field.set_ship_size(3) + ship_field.set_ship_direction(ShipDirection.HORIZONTAL) + index = 5 * ship_field.field_size + 5 + + old_field_string = str.join(' ', ship_field.field) + ship_field.target(5, 5) + fields_after_target = [ship_field.field[index], ship_field.field[index+1], ship_field.field[index+2]] + ship_field.field[index] = ' ' + ship_field.field[index + 1] = ' ' + ship_field.field[index + 2] = ' ' + new_field_string = str.join(' ', ship_field.field) + + self.assertListEqual(['p', 'p', 'p'], fields_after_target) + self.assertNotIn('p', new_field_string) + self.assertEqual(new_field_string, old_field_string) + + def test_target_ShipMode_SHOOT(self): + ship_field = ShipField() + ship_field.toggle_field_mode() + + index = 5 * ship_field.field_size + 5 + + old_field_string = str.join(' ', ship_field.field) + ship_field.target(5, 5) + field_after_target = ship_field.field[index] + ship_field.field[index] = ship_field.field[index].replace('+', '') + new_field_string = str.join(' ', ship_field.field) + + self.assertIn('+', field_after_target) + self.assertNotIn('+', new_field_string) + self.assertEqual(new_field_string, old_field_string) + + def test_get_ship(self): self.fail() def test_clear_marker(self):