class Shot:
def __init__(self):
self.x = None
self.y = None
def shot_by_ships(self):
xy = input('\033[1;32mВаш выстрел (например, d3): ')
if len(xy) == 2:
input_x = xy[0]
if xy[1].isdigit():
input_y = int(xy[1])
else:
input_y = 10
if input_x in Board.letters and 0 <= input_y < 10:
self.x = Board.letters.index(input_x)
self.y = int(xy[1])
if radar.board[self.x][self.y] == Cell.miss_cell:
print('Эта клетка занята! Еще разок...')
self.shot_by_ships()
return self.receive_shot()
else:
print('Неправильный ввод. Еще разок... ')
self.shot_by_ships()
else:
print('Должно быть две координаты. Еще разок...')
self.shot_by_ships()
def receive_shot(self):
sx = self.x
sy = self.y
# radar.count_shot += 1
if type(comp.board[sx][sy]) == Ship:
ship = comp.board[sx][sy]
ship.len_ship -= 1
if ship.len_ship <= 0:
radar.mark_destroyed_ship(ship)
print('\033[1;33mКорабль уничтожен!')
Ship.count_ship -= 1
return ship
radar.board[sx][sy] = Cell.damaged_ship
print('\033[1;33mПопадание!')
return 'get'
else:
radar.board[sx][sy] = Cell.miss_cell
print('\033[1;33mПромах!')
return 'miss'
while Ship.count_ship > 0:
shot = Shot()
# shot.shot_by_ships()
if shot.shot_by_ships() == 'miss':
print('\033[1;33mПромах!', 'Внешняя запись')
elif shot.shot_by_ships() == 'get':
print('\033[1;33mПопадание!', 'Внешняя запись')
elif type(shot.shot_by_shipst()) == Shot:
print('\033[1;33mКорабль уничтожен!', 'Внешняя запись')
# radar.clear_screen()
print('Отрисовка')
radar.print_board()
Ваш выстрел (например, d3): g5
Попадание!
Отрисовка