def create_field(self):
self.tk.protocol('WM_DELETE_WINDOW', self.on_closing)
self.tk.title('Игра Морской бой')
self.tk.resizable(0, 0)
self.tk.wm_attributes('-topmost', 1)
self.canvas.create_rectangle(0, 0, self.size_canvas_x, self.size_canvas_y, fill='lightgray')
self.canvas.pack()
self.draw_table()
self.tk.update()
while self.app_running:
game.game_shot()
self.tk.update_idletasks()
self.tk.update()
time.sleep(0.005)
def game_shot(self):
shot = Shot()
if not self.current_player.auto:
if len(self.next_player.list_ships) > 0:
print('\033[1;36mХод:', self.current_player)
shot.shot_by_ships(self.next_player, self.field_comp)
if game.message == 'miss':
print('\033[1;33mПромах!', 'Переход хода...')
game.field_radar.print_board()
self.switch_players()
# return self.game_shot()
if game.message == 'get':
print('\033[1;33mПопадание!', 'Еще выстрел...')
if game.message == 'kill':
print('\033[1;33mКорабль уничтожен!', 'Ура!')
game.field_radar.print_board()
return
print('\033[1;31mВсе корабли потоплены. Вы выиграли!\033[0m')
elif self.current_player.auto:
if len(self.next_player.list_ships) > 0:
print('\033[1;36mХод:', str(self.current_player) + ': ', end='')
shot.shot_by_ships_auto(self.next_player, self.field_user)
if game.message == 'miss':
print('\033[1;33mПромах!', 'Переход хода...')
game.field_radar.print_board()
self.switch_players()
# return self.game_shot()
if game.message == 'get':
print('\033[1;33mПопадание!', 'Еще выстрел...')
if game.message == 'kill':
print('\033[1;33mВаш корабль уничтожен!', 'Соболезную...')
game.field_radar.print_board()
return
print('\033[1;31mВсе корабли потоплены. Выиграл компьютер!\033[0m')
цитата - это твои слова, и я их воспринял вот так вот. Но раз надо - конечно, выходи.
Использование вызова функции нигде не кэшируется, если так понятнее.