πŸ–ŠοΈ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

Для написания крСстиков-Π½ΠΎΠ»ΠΈΠΊΠΎΠ² Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ пустоС ΠΏΠΎΠ»Π΅ для ΠΈΠ³Ρ€Ρ‹
ΠΏΠΎΠ»Π΅ = [[' ' for _ in range(3)] for _ in range(3)]

# Ѐункция, которая ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ»Π΅
def ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ_ΠΏΠΎΠ»Π΅():
    for row in ΠΏΠΎΠ»Π΅:
        print('|'.join(row))
        print('-' * 5)

# Ѐункция, которая Π΄Π΅Π»Π°Π΅Ρ‚ Ρ…ΠΎΠ΄
def ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(строка, столбСц, символ):
    ΠΏΠΎΠ»Π΅[строка][столбСц] = символ

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π΅ΡΡ‚ΡŒ Π»ΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ
def Π΅ΡΡ‚ΡŒ_ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ():
    символы = ['X', 'O']
    for символ in символы:
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ
        for row in ΠΏΠΎΠ»Π΅:
            if row == [символ] * 3:
                return True
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ
        for столбСц in range(3):
            if [ΠΏΠΎΠ»Π΅[строка][столбСц] for строка in range(3)] == [символ] * 3:
                return True
        # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ
        if [ΠΏΠΎΠ»Π΅[строка][строка] for строка in range(3)] == [символ] * 3:
            return True
        if [ΠΏΠΎΠ»Π΅[строка][2 - строка] for строка in range(3)] == [символ] * 3:
            return True
    return False

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(0, 0, 'X')
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(1, 1, 'O')
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(0, 1, 'X')
ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(1, 2, 'O')
ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ_ΠΏΠΎΠ»Π΅()
if Π΅ΡΡ‚ΡŒ_ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ():
    print('ПобСдил ΠΈΠ³Ρ€ΠΎΠΊ', символ)
else:
    print('ΠΠΈΡ‡ΡŒΡ')

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python?

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня я расскаТу Ρ‚Π΅Π±Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ "крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ" Π½Π° языкС программирования Python. НачнСм с создания ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

     X | O | X 
    -----------
      O | X | O 
    -----------
      X | O | X 

Π˜Π³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ прСдставляСт собой ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ сСтку Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ³Ρ€ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои символы - "X" ΠΈ "O". Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ³Ρ€Ρ‹, всС ячСйки поля пустыС. Π’Π°ΡˆΠ° Π·Π°Π΄Π°Ρ‡Π° - Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ побСдитСля.

Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ пустого ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ список списков для создания Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.

    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ пустого ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля
    ΠΏΠΎΠ»Π΅ = [[' ', ' ', ' '], 
            [' ', ' ', ' '], 
            [' ', ' ', ' ']]

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм список списков Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3x3, ΠΈ заполняСм Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт списка соотвСтствуСт ячСйкС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

Π¨Π°Π³ 2: ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

Для отобраТСния ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля Π½Π° экранС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ условныС выраТСния.

    # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля
    def ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ_ΠΏΠΎΠ»Π΅(ΠΏΠΎΠ»Π΅):
        for i in range(3):
            print(' | '.join(ΠΏΠΎΠ»Π΅[i]))
            if i < 2:
                print('-----------')

Данная функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π° экранС. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ» for для ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ join для объСдинСния элСмСнтов строки с Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ " | ". Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, добавляСм Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки, ΠΊΡ€ΠΎΠΌΠ΅ послСднСй.

Π¨Π°Π³ 3: Π₯ΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ…ΠΎΠ΄Π° ΠΈΠ³Ρ€Ρ‹. Для этого ΠΌΡ‹ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΎΡ‚ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ состояниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля.

    # Π₯ΠΎΠ΄ ΠΈΠ³Ρ€Ρ‹
    def ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(ΠΏΠΎΠ»Π΅, символ, строка, столбСц):
        if ΠΏΠΎΠ»Π΅[строка][столбСц] == ' ':
            ΠΏΠΎΠ»Π΅[строка][столбСц] = символ
        else:
            print("НСдопустимый Ρ…ΠΎΠ΄. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова.")

Π’ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ провСряСм, являСтся Π»ΠΈ выбранная ячСйка пустой. Если Π΄Π°, Ρ‚ΠΎ обновляСм состояниС ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, помСщая символ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ячСйку. Если ΠΆΠ΅ ячСйка ΡƒΠΆΠ΅ занята, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС ΠΎΠ± ошибкС.

Π¨Π°Π³ 4: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия побСдитСля

НаконСц, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии ΠΈΠ³Ρ€Ρ‹. Для этого ΠΌΡ‹ создадим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅.

    # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° побСдитСля
    def ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ_ΠΏΠΎΠ±Π΅Π΄Ρƒ(ΠΏΠΎΠ»Π΅):
        Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½Ρ‹Π΅_ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ = [[(0, 0), (0, 1), (0, 2)], 
                                [(1, 0), (1, 1), (1, 2)], 
                                [(2, 0), (2, 1), (2, 2)], 
                                [(0, 0), (1, 0), (2, 0)], 
                                [(0, 1), (1, 1), (2, 1)], 
                                [(0, 2), (1, 2), (2, 2)], 
                                [(0, 0), (1, 1), (2, 2)], 
                                [(0, 2), (1, 1), (2, 0)]]
        for комбинация in Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ½Ρ‹Π΅_ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ:
            (строка1, столбСц1), (строка2, столбСц2), (строка3, столбСц3) = комбинация
            if ΠΏΠΎΠ»Π΅[строка1][столбСц1] == ΠΏΠΎΠ»Π΅[строка2][столбСц2] == ΠΏΠΎΠ»Π΅[строка3][столбСц3] != ' ':
                return True
        return False

Π’ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ побСдитСля Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅. Если всС символы Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ€Π°Π²Π½Ρ‹ ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ True, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ побСдитСля. Если послС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ всСх ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ False.

Π¨Π°Π³ 5: Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»

Π’Π½ΡƒΡ‚Ρ€ΠΈ основного ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ создания ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля, отобраТСния поля, ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ…ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ побСдитСля.

    # Основной ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Ρ†ΠΈΠΊΠ»
    def ΠΈΠ³Ρ€Π°Ρ‚ΡŒ():
        ΠΏΠΎΠ»Π΅ = [[' ', ' ', ' '], 
                [' ', ' ', ' '], 
                [' ', ' ', ' ']]
        Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ = "X"
        while True:
            ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ_ΠΏΠΎΠ»Π΅(ΠΏΠΎΠ»Π΅)
            print("БСйчас ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ°", Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ)
            строка = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ строки: "))
            столбСц = int(input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ столбца: "))
            ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ_Ρ…ΠΎΠ΄(ΠΏΠΎΠ»Π΅, Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ, строка, столбСц)
            if ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ_ΠΏΠΎΠ±Π΅Π΄Ρƒ(ΠΏΠΎΠ»Π΅):
                ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ_ΠΏΠΎΠ»Π΅(ΠΏΠΎΠ»Π΅)
                print("Π˜Π³Ρ€ΠΎΠΊ", Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ, "ΠΏΠΎΠ±Π΅Π΄ΠΈΠ»!")
                break
            if Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ == "X":
                Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ = "O"
            else:
                Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ_ΠΈΠ³Ρ€ΠΎΠΊ = "X"

Π’ основном ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ ΠΌΡ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, запускаСм Ρ†ΠΈΠΊΠ», ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅, ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΎ Π΅Π³ΠΎ Ρ…ΠΎΠ΄Π΅, ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌ Ρ…ΠΎΠ΄ ΠΈ провСряСм Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ побСдитСля. Если ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π½Π°ΠΉΠ΄Π΅Π½, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΅Π³ΠΎ имя ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΈΠ³Ρ€Ρƒ. Если ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, мСняСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ†ΠΈΠΊΠ».

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ "крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ" Π½Π° языкС Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ Π΅Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ПишСм ΠΈΠ³Ρ€Ρƒ ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ Нолики Π½Π° python ΠΈ pygame. Tic tac toe game using python and pygame

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python всСго Π·Π° 10 ΠΌΠΈΠ½ΡƒΡ‚!

Π˜Π³Ρ€Π° ΠšΡ€Π΅ΡΡ‚ΠΈΠΊΠΈ-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как Π½Π°ΠΉΡ‚ΠΈ количСство Ρ†ΠΈΡ„Ρ€ Π² строкС Π½Π° Python: Π»Π΅Π³ΠΊΠΈΠΉ способ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

πŸ”Ž Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт списка Π² Python

πŸ” Π—Π½Π°ΠΊ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

πŸ–ŠοΈ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ крСстики-Π½ΠΎΠ»ΠΈΠΊΠΈ Π½Π° Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство

πŸ”Ž Как ввСсти мноТСство Π² Python: простоС руководство ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

πŸ” Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈ Π² спискС python: простыС способы ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ

πŸ”§ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π·Π½Π°ΠΊΠΈ прСпинания Π² Python? πŸš€