дополнен код,но есть баги

This commit is contained in:
ehermakov 2024-07-05 00:13:56 +03:00
parent 9c97a90f20
commit b8968208bd
4 changed files with 20 additions and 10 deletions

View File

@ -5,7 +5,6 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="b389cdea-22f5-4ba2-8b46-337091984b3c" name="Changes" comment="код по 22 части урока"> <list default="true" id="b389cdea-22f5-4ba2-8b46-337091984b3c" name="Changes" comment="код по 22 части урока">
<change beforePath="$PROJECT_DIR$/../Переделка.rar" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ShipField.py" beforeDir="false" afterPath="$PROJECT_DIR$/ShipField.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/ShipField.py" beforeDir="false" afterPath="$PROJECT_DIR$/ShipField.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
@ -187,7 +186,7 @@
<breakpoints> <breakpoints>
<line-breakpoint enabled="true" suspend="THREAD" type="python-line"> <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
<url>file://$PROJECT_DIR$/main.py</url> <url>file://$PROJECT_DIR$/main.py</url>
<line>147</line> <line>155</line>
<option name="timeStamp" value="1" /> <option name="timeStamp" value="1" />
</line-breakpoint> </line-breakpoint>
</breakpoints> </breakpoints>

View File

@ -186,6 +186,9 @@ class ShipField:
# в противном случае фолс # в противном случае фолс
return self.field[row * ShipField.field_size + col].strip() == "1" return self.field[row * ShipField.field_size + col].strip() == "1"
def check_end(self):
return "1" not in self.field
def check_possible(self, row, col): def check_possible(self, row, col):
# Функция должна возвращать True, если можно поставить сюда корабль, # Функция должна возвращать True, если можно поставить сюда корабль,
# в противном случае - False # в противном случае - False

View File

@ -10,7 +10,6 @@ from ShipField import ShipField
from GameMode import GameMode from GameMode import GameMode
from ShootResult import ShootResult from ShootResult import ShootResult
active_view = {}
def create_view(window, enemy): def create_view(window, enemy):
@ -65,22 +64,31 @@ def colorize(view):
def keypress_handler(e): def keypress_handler(e):
if e.keysym.isnumeric(): if e.keysym.isnumeric():
if my_view.active: if my_view.active:
my_view.ship_field.set_ship_size(e.keysym) my_view.ship_field.set_ship_size(int(e.keysym))
elif enemy_view.active: elif enemy_view.active:
enemy_view.ship_field.set_ship_size(e.keysym) enemy_view.ship_field.set_ship_size(int(e.keysym))
def left_button_click(view, row, col): def left_button_click(view, row, col):
if view.ship_field.action(row, col) and view_enemy and game_mode == GameMode.Battle:
enemy_shoot_result = ShootResult.UNDEFINED
while enemy_shoot_result != ShootResult.EMPTY:
action_result = view.ship_field.action(row, col)
if action_result and view_enemy and game_mode == GameMode.Battle:
enemy_shoot_result = ShootResult.UNDEFINED
# Ход соперника
while enemy_shoot_result != ShootResult.EMPTY:
my_row = random.randint(0, ShipField.field_size) my_row = random.randint(0, ShipField.field_size)
my_col = random.randint(0, ShipField.field_size - 1) my_col = random.randint(0, ShipField.field_size - 1)
enemy_shoot_result = my_view.ship_field.shoot(my_row, my_col) enemy_shoot_result = my_view.ship_field.shoot(my_row, my_col)
if game_mode == GameMode.BATTLE and my_view.ship_field.check_end():
next_game_mode()
return
colorize(my_view)
if game_mode == GameMode.BATTLE and view.ship_field.check_end():
next_game_mode()
return
colorize(view) colorize(view)