Lesson results commit

This commit is contained in:
Artur Savitskiy 2024-05-28 09:12:00 +02:00
parent 5542ac14d7
commit 82b9166af2
3 changed files with 39 additions and 3 deletions

View File

@ -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

View File

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

View File

@ -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):