ποΈ ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° ΠΠΈΡΠΎΠ½Π΅ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ π― | ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
Π§ΡΠΎΠ±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΎΡΠΊΡ Π΄Π»Ρ ΠΈΠ³ΡΡ
Π΄ΠΎΡΠΊΠ° = [' '] * 9
# Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΡΠΊΠΈ
def ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ_Π΄ΠΎΡΠΊΡ():
print('-------------')
print('|', Π΄ΠΎΡΠΊΠ°[0], '|', Π΄ΠΎΡΠΊΠ°[1], '|', Π΄ΠΎΡΠΊΠ°[2], '|')
print('-------------')
print('|', Π΄ΠΎΡΠΊΠ°[3], '|', Π΄ΠΎΡΠΊΠ°[4], '|', Π΄ΠΎΡΠΊΠ°[5], '|')
print('-------------')
print('|', Π΄ΠΎΡΠΊΠ°[6], '|', Π΄ΠΎΡΠΊΠ°[7], '|', Π΄ΠΎΡΠΊΠ°[8], '|')
print('-------------')
# Π€ΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ
def ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ_ΠΏΠΎΠ±Π΅Π΄Ρ(ΡΠΈΠΌΠ²ΠΎΠ»):
Π²ΡΠΈΠ³ΡΡΡΠ½ΡΠ΅_ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
]
for ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ in Π²ΡΠΈΠ³ΡΡΡΠ½ΡΠ΅_ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ:
if Π΄ΠΎΡΠΊΠ°[ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ[0]] == Π΄ΠΎΡΠΊΠ°[ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ[1]] == Π΄ΠΎΡΠΊΠ°[ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ[2]] == ΡΠΈΠΌΠ²ΠΎΠ»:
return True
return False
# ΠΠ»Π°Π²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ³ΡΡ
def ΠΈΠ³ΡΠ°ΡΡ():
ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ = 'X'
while True:
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ_Π΄ΠΎΡΠΊΡ()
Ρ
ΠΎΠ΄ = int(input('ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ΅ΠΉΠΊΡ Π΄Π»Ρ Ρ
ΠΎΠ΄Π° (ΠΎΡ 0 Π΄ΠΎ 8): '))
if Π΄ΠΎΡΠΊΠ°[Ρ
ΠΎΠ΄] == ' ':
Π΄ΠΎΡΠΊΠ°[Ρ
ΠΎΠ΄] = ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ
if ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ_ΠΏΠΎΠ±Π΅Π΄Ρ(ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ):
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ_Π΄ΠΎΡΠΊΡ()
print('ΠΠ³ΡΠΎΠΊ', ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ, 'ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»!')
break
elif ' ' not in Π΄ΠΎΡΠΊΠ°:
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ_Π΄ΠΎΡΠΊΡ()
print('ΠΠΈΡΡΡ!')
break
ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ = 'O' if ΡΠ΅ΠΊΡΡΠΈΠΉ_ΠΈΠ³ΡΠΎΠΊ == 'X' else 'X'
else:
print('Π―ΡΠ΅ΠΉΠΊΠ° ΡΠΆΠ΅ Π·Π°Π½ΡΡΠ°. ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π΄ΡΡΠ³ΡΡ ΡΡΠ΅ΠΉΠΊΡ.')
ΠΈΠ³ΡΠ°ΡΡ()
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π° ΠΏΠΈΡΠΎΠ½Π΅ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ?
ΠΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ - ΡΡΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ³ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠΉ ΠΈΠ³ΡΡ.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π΄Π»Ρ ΠΊΡΠ΅ΡΡΠΈΠΊΠΎΠ²-Π½ΠΎΠ»ΠΈΠΊΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ², ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΠ΅ΠΉΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΡΠ΅ΡΡΠΈΠΊ ('X'), Π»ΠΈΠ±ΠΎ Π½ΠΎΠ»ΠΈΠΊ ('O'), Π»ΠΈΠ±ΠΎ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ ΠΏΡΡΡΠΎΠΉ.
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΠΎΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ 3x3
game_board = [['', '', ''],
['', '', ''],
['', '', '']]
Π¨Π°Π³ 2: ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΠ³ΡΠΎΠΊΠ° Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ ΠΎΠ΄Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΊΠ»Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
def display_board(board):
for row in board:
for cell in row:
if cell == '':
print('_', end=' ')
else:
print(cell, end=' ')
print()
Π¨Π°Π³ 3: Π₯ΠΎΠ΄Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ²
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΎΠ² ΠΈΠ³ΡΠΎΠΊΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΠ΅ΠΉΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ΠΈ Ρ ΠΎΡΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ».
def make_move(board, row, col, symbol):
board[row][col] = symbol
Π¨Π°Π³ 4: ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ±Π΅Π΄Ρ
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΡΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΠ΄Ρ, ΡΡΠΎΠ»Π±ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠΌ.
def check_winner(board, symbol):
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠ΄ΠΎΠ²
for row in board:
if row.count(symbol) == 3:
return True
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ»Π±ΡΠΎΠ²
for col in range(3):
if [board[0][col], board[1][col], board[2][col]].count(symbol) == 3:
return True
# ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ
if [board[0][0], board[1][1], board[2][2]].count(symbol) == 3 or [board[0][2], board[1][1], board[2][0]].count(symbol) == 3:
return True
return False
Π¨Π°Π³ 5: ΠΠ»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΈΠ³ΡΡ
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΈΠ³ΡΡ.
def play_game():
game_board = [['', '', ''],
['', '', ''],
['', '', '']]
current_player = 'X'
while True:
display_board(game_board)
print(f"Π₯ΠΎΠ΄ ΠΈΠ³ΡΠΎΠΊΠ° {current_player}")
row = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ (0-2): "))
col = int(input("ΠΠ²Π΅Π΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΠΎΠ»Π±ΡΠ° (0-2): "))
make_move(game_board, row, col, current_player)
if check_winner(game_board, current_player):
print(f"ΠΠ³ΡΠΎΠΊ {current_player} Π²ΡΠΈΠ³ΡΠ°Π»!")
break
if current_player == 'X':
current_player = 'O'
else:
current_player = 'X'
play_game()
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΈΠ³ΡΡ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Ρ ΠΎΠ΄Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° ΠΏΠΎΠ±Π΅Π΄Ρ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ»Π°ΠΆΠ΄Π°ΡΡΡΡ ΠΈΠ³ΡΠΎΠΉ ΠΊΡΠ΅ΡΡΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅!