Как сделать винлокер на python

Обучитесь создавать программу для винлокера на python с помощью подробного гайда с примерами и изучите базовые принципы работы с этим языком программирования.

Винлокер на Python

Винлокер (или крестики-нолики) - это игра для двух игроков, в которой игроки пытаются заполнить игровое поле крестиками и ноликами. Первый игрок ставит крестики, а второй нолики. Цель игры - заполнить строку, столбец или диагональ только одним из символов, чтобы победить. В функциональном программировании мы можем использовать функции и переменные, чтобы создать игровое поле и предоставить интерфейс для игры. Ниже приведен пример простой игры в винлокер на Python.

# Импортируем необходимые библиотеки
import random

# Объявляем переменные и массивы
board = [" " for i in range(9)]

# Функция для печати игрового поля
def print_board():
    row1 = "| {} | {} | {} |".format(board[0], board[1], board[2])
    row2 = "| {} | {} | {} |".format(board[3], board[4], board[5])
    row3 = "| {} | {} | {} |".format(board[6], board[7], board[8])

    print()
    print(row1)
    print(row2)
    print(row3)
    print()

# Функция для проверки победы
def victory(icon):
    if (board[0] == icon and board[1] == icon and board[2] == icon) or 
       (board[3] == icon and board[4] == icon and board[5] == icon) or 
       (board[6] == icon and board[7] == icon and board[8] == icon) or 
       (board[0] == icon and board[3] == icon and board[6] == icon) or 
       (board[1] == icon and board[4] == icon and board[7] == icon) or 
       (board[2] == icon and board[5] == icon and board[8] == icon) or 
       (board[0] == icon and board[4] == icon and board[8] == icon) or 
       (board[2] == icon and board[4] == icon and board[6] == icon):
        return True
    else:
        return False

# Функция для хода игрока
def player_move(icon):
    if icon == "X":
        number = 1
    elif icon == "O":
        number = 2

    print("Ход игрока {}".format(number))

    choice = int(input("Введите номер поля для вашего хода: ").strip())
    if board[choice - 1] == " ":
        board[choice - 1] = icon
    else:
        print()
        print("Это поле уже занято!")

# Функция для хода компьютера
def computer_move(icon):
    if icon == "X":
        number = 2
    elif icon == "O":
        number = 1

    print("Ход игрока {}".format(number))

    # Выбираем случайный номер поля
    while True:
        choice = random.randint(0, 8)
        # Если поле свободно, то ставим на него символ
        if board[choice] == " ":
            board[choice] = icon
            break

# Функция для проверки заполненности поля
def is_draw():
    if " " not in board:
        return True
    else:
        return False

# Основная функция программы
def main():
    print("Добро пожаловать в игру в винлокер!")
    print_board()

    while True:
        # Ход игрока
        player_move("X")
        print_board()
        # Проверка на победу
        if victory("X"):
            print("Игрок 1 победил!")
            break
        # Проверка на ничью
        elif is_draw():
            print("Ничья!")
            break
        # Ход компьютера
        computer_move("O")
        print_board()
        # Проверка на победу
        if victory("O"):
            print("Игрок 2 победил!")
            break
        # Проверка на ничью
        elif is_draw():
            print("Ничья!")
            break

# Вызываем основную функцию
main()

Данный пример использует принципы функционального программирования для создания простой игры. В коде используется библиотека random для генерации случайного хода компьютера, а также функции для проверки победы, заполненности поля и т.д. При запуске программы выводится пустое игровое поле, после чего начинаются действия игроков. После каждого хода происходит проверка на победу или ничью. Если победитель не обнаруживается, то игра продолжается.

Ответы (0)