Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исходный код / ComputerMove

.c
Скачиваний:
1
Добавлен:
02.12.2024
Размер:
4.36 Кб
Скачать
#include <stdio.h>
#include <stddef.h>
int ComputerMove(char field[3][3])
{
    int flag = 0;
    if (field == NULL)
    {
        return 1;
    }
    for (size_t i = 0; i < 3; i++)
    {
        for (size_t j = 0; j < 3; j++)
        {
            if (field[i][j] == '_')
            {
                flag = 1;
                break;
            }
        }
        if (flag==1) break;
    }
    for (size_t i = 0; i < 3; i++)
    {
        if (field[i][0] == field[i][1] && field[i][2] == '_' && field[i][0] == '0')
        {
            field[i][2] = '0';
            return 3;
        }
        if (field[i][0] == field[i][2] && field[i][1] == '_' && field[i][0] == '0')
        {
            field[i][1] = '0';
            return 3;
        }
        if (field[i][1] == field[i][2] && field[i][0] == '_' && field[i][2] == '0')
        {
            field[i][0] = '0';
            return 3;
        }
        if (field[0][i] == field[1][i] && field[2][i] == '_' && field[1][i] == '0')
        {
            field[2][i] = '0';
            return 3;
        }
        if (field[0][i] == field[2][i] && field[1][i] == '_' && field[2][i] == '0')
        {
            field[1][i] = '0';
            return 3;
        }
        if (field[1][i] == field[2][i] && field[0][i] == '_' && field[2][i] == '0')
        {
            field[0][i] = '0';
            return 3;
        }
    }
    for (size_t i = 0; i < 3; i++)
    {
        if (field[i][0] == field[i][1] && field[i][2] == '_' && field[i][0] == 'X')
        {
            field[i][2] = '0';
            return 3;
        }
        if (field[i][0] == field[i][2] && field[i][1] == '_' && field[i][0] == 'X')
        {
            field[i][1] = '0';
            return 3;
        }
        if (field[i][1] == field[i][2] && field[i][0] == '_' && field[i][2] == 'X')
        {
            field[i][0] = '0';
            return 3;
        }
        if (field[0][i] == field[1][i] && field[2][i] == '_' && field[1][i] == 'X')
        {
            field[2][i] = '0';
            return 3;
        }
        if (field[0][i] == field[2][i] && field[1][i] == '_' && field[2][i] == 'X')
        {
            field[1][i] = '0';
            return 3;
        }
        if (field[1][i] == field[2][i] && field[0][i] == '_' && field[2][i] == 'X')
        {
            field[0][i] = '0';
            return 3;
        }
    }
    if (field[0][0] == field[1][1] && field[2][2] == '_' && field[1][1] == '0')
    {
        field[2][2] = '0';
        return 3;
    }
    if (field[0][0] == field[2][2] && field[1][1] == '_' && field[2][2] == '0')
    {
        field[1][1] = '0';
        return 3;
    }
    if (field[2][2] == field[1][1] && field[0][0] == '_' && field[1][1] == '0')
    {
        field[0][0] = '0';
        return 3;
    }

    if (field[0][2] == field[1][1] && field[2][0] == '_' && field[1][1] == '0')
    {
        field[2][0] = '0';
        return 3;
    }
    if (field[0][2] == field[2][0] && field[1][1] == '_' && field[2][0] == '0')
    {
        field[1][1] = '0';
        return 3;
    }
    if (field[2][0] == field[1][1] && field[0][2] == '_' && field[1][1] == '0')
    {
        field[0][2] = '0';
        return 3;
    }
    if (field[0][0] == field[1][1] && field[2][2] == '_' && field[1][1] == 'X')
    {
        field[2][2] = '0';
        return 3;
    }
    if (field[0][0] == field[2][2] && field[1][1] == '_' && field[2][2] == 'X')
    {
        field[1][1] = '0';
        return 3;
    }
    if (field[2][2] == field[1][1] && field[0][0] == '_' && field[1][1] == 'X')
    {
        field[0][0] = '0';
        return 3;
    }

    if (field[0][2] == field[1][1] && field[2][0] == '_' && field[1][1] == 'X')
    {
        field[2][0] = '0';
        return 3;
    }
    if (field[0][2] == field[2][0] && field[1][1] == '_' && field[2][0] == 'X')
    {
        field[1][1] = '0';
        return 3;
    }
    if (field[2][0] == field[1][1] && field[0][2] == '_' && field[1][1] == 'X')
    {
        field[0][2] = '0';
        return 3;
    }
    int MoveIndex = rand()%9;
    while (field[MoveIndex/3][MoveIndex%3] != '_')
    {
        MoveIndex = rand()%9;
    }
    field[MoveIndex / 3][MoveIndex % 3] = '0';
    return 3;
}
Соседние файлы в папке Исходный код