# Функція для створення ігрового поля
def create_board():
board = []
for _ in range(10):
row = ["O"] * 10
board.append(row)
return board
# Функція для виведення ігрового поля на екран
def print_board(board):
for row in board:
print(" ".join(row))
# Функція для розміщення кораблів на ігровому полі
def place_ships(board, player):
print(f"Гравець {player}, розмістіть ваші кораблі.")
for ship in range(5):
print(f"Розмістіть корабль {ship+1}")
while True:
row = int(input("Введіть номер рядка (1-10): ")) - 1
col = int(input("Введіть номер стовпця (1-10): ")) - 1
if row in range(10) and col in range(10) and board[row][col] == "O":
board[row][col] = "X"
break
else:
print("Некоректні координати. Спробуйте ще раз.")
# Функція для виконання ходу гравця
def make_move(board, player):
print(f"Гравець {player}, ваш хід!")
if row in range(10) and col in range(10):
if board[row][col] == "X":
print("Ви потопили корабель противника!")
board[row][col] = "!"
elif board[row][col] == "O":
print("Ви промахнулися!")
board[row][col] = "-"
print("Ви вже стріляли в це місце. Спробуйте ще раз.")
continue
# Функція для перевірки чи закінчилася гра
def game_over(board):
if "X" in row:
return False
return True
# Основна програма
board1 = create_board()
board2 = create_board()
print("Гравець 1")
place_ships(board1, 1)
print("\nГравець 2")
place_ships(board2, 2)
while not game_over(board1) and not game_over(board2):
print("\nХід гравця 1")
print_board(board1)
make_move(board2, 1)
if game_over(board2):
print("\nХід гравця 2")
print_board(board2)
make_move(board1, 2)
print("\nГра закінчена!")
print("Гравець 1:")
print("\nГравець 2:")
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
# Функція для створення ігрового поля
def create_board():
board = []
for _ in range(10):
row = ["O"] * 10
board.append(row)
return board
# Функція для виведення ігрового поля на екран
def print_board(board):
for row in board:
print(" ".join(row))
# Функція для розміщення кораблів на ігровому полі
def place_ships(board, player):
print(f"Гравець {player}, розмістіть ваші кораблі.")
for ship in range(5):
print(f"Розмістіть корабль {ship+1}")
while True:
row = int(input("Введіть номер рядка (1-10): ")) - 1
col = int(input("Введіть номер стовпця (1-10): ")) - 1
if row in range(10) and col in range(10) and board[row][col] == "O":
board[row][col] = "X"
break
else:
print("Некоректні координати. Спробуйте ще раз.")
# Функція для виконання ходу гравця
def make_move(board, player):
print(f"Гравець {player}, ваш хід!")
while True:
row = int(input("Введіть номер рядка (1-10): ")) - 1
col = int(input("Введіть номер стовпця (1-10): ")) - 1
if row in range(10) and col in range(10):
if board[row][col] == "X":
print("Ви потопили корабель противника!")
board[row][col] = "!"
elif board[row][col] == "O":
print("Ви промахнулися!")
board[row][col] = "-"
else:
print("Ви вже стріляли в це місце. Спробуйте ще раз.")
continue
break
else:
print("Некоректні координати. Спробуйте ще раз.")
# Функція для перевірки чи закінчилася гра
def game_over(board):
for row in board:
if "X" in row:
return False
return True
# Основна програма
board1 = create_board()
board2 = create_board()
print("Гравець 1")
place_ships(board1, 1)
print("\nГравець 2")
place_ships(board2, 2)
while not game_over(board1) and not game_over(board2):
print("\nХід гравця 1")
print_board(board1)
make_move(board2, 1)
if game_over(board2):
break
print("\nХід гравця 2")
print_board(board2)
make_move(board1, 2)
print("\nГра закінчена!")
print("Гравець 1:")
print_board(board1)
print("\nГравець 2:")
print_board(board2)