Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.02.2021
Сообщений: 23
1

Проблема с функцией Минимакса

28.11.2021, 15:45. Показов 315. Ответов 3

Author24 — интернет-сервис помощи студентам
Возникла проблема с функцией Минимакса(код ниже). Описав ее начал рассматривать различные игровые ситуации и пришел к выводу, что функция делает что-то не то, а что не так понять не могу. Т.е., она просто выставляет значения в пустых местах по порядку и я просто уже запутался, что именно ф-ия должна вернуть, оценку или пару координат лучшей позиции? И должна ли принимать участие оценочная функция в этом алгоритме минимакса? Прошу помочь и подсказать, что не так в моем алгоритме.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
int miniMax(int board[N][N], int depth, bool isMaximising)
{
    int score = 0;
    int computerChar = WHITE;
 
    if (depth == 0)
    {
        return 1;
    }
 
    if (isMaximising) //white
    {
        int maxEvaluation = std::numeric_limits<int>().min();
        for (int i = 0; i < N; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                if (board[i][j] == BLANK)
                {
                    board[i][j] = computerChar;
                    score = miniMax(board, depth - 1, MIN);
                    board[i][j] = BLANK;
                    maxEvaluation = std::max(maxEvaluation, score);
                }
            }
        }
        return maxEvaluation;
    }
 
    else // black
    {
        int minEvaluation = std::numeric_limits<int>().max();
        for (int i = 0; i < N; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                if (board[i][j] == BLANK)
                {
                    board[i][j] = -computerChar;
                    score = miniMax(board, depth - 1, MAX);
                    board[i][j] = BLANK;
                    minEvaluation = std::min(minEvaluation, score);
                }
            }
        }
        return minEvaluation;
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2021, 15:45
Ответы с готовыми решениями:

максимина и минимакса
Всем привет!) Подскажите как исправить прогу. задание: составить функцию определения максимина и...

Проблема с функцией
Скажите как ее решить код ненадо хотябы строчку этой функции как будет выглядить

Проблема с функцией
#include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;windows.h&gt; #include &lt;stdlib.h&gt; #include...

Проблема с функцией strcat
Мне надо в строку, после каждой точки вставить пробел. Для этого я решил поделить строку с помощью...

Проблема с шаблонной функцией
Приветствую. Возникла следующая проблема: при реализации шаблонной функции невозможно напрямую...

3
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
28.11.2021, 15:52 2
sashenkasolnce, чо ты сделать-то хочешь?
STL std::minmax / std::minmax_element не катят?
0
0 / 0 / 0
Регистрация: 26.02.2021
Сообщений: 23
28.11.2021, 15:58  [ТС] 3
Что я хочу сделать? - Описать алгоритм минимакса для игры похожей на игру 5 в ряд, суть алгоритма в том, что происходит перебор возможных ходов, где полагается, что игрок чья очередь ходить выберет ход приносящий максимальное кол-во очков.
0
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
28.11.2021, 16:32 4
Цитата Сообщение от sashenkasolnce Посмотреть сообщение
алгоритм минимакса
чо ты под этим подразумеваешь?
Цитата Сообщение от sashenkasolnce Посмотреть сообщение
суть алгоритма в том, что происходит перебор возможных ходов, где полагается, что игрок чья очередь ходить выберет ход приносящий максимальное кол-во очков.
Ты ИИ для игры чтоль делаешь? Нафиг тут тогда "мин" в минмаксе?

Добавлено через 16 минут
Спрошу проще:
Цитата Сообщение от sashenkasolnce Посмотреть сообщение
пришел к выводу, что функция делает что-то не то, а что не так понять не могу.
Что эта ф-я должна делать по твоему замыслу?
0
28.11.2021, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2021, 16:32
Помогаю со студенческими работами здесь

Проблема с функцией rand()
Вот мой код, он выполняет свою задачу #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include...

проблема с функцией pow()
Доброе времени суток. Возникла проблема при использовании pow(). for(int n = 1; n &lt; 20; n++) {...

C++, проблема с функцией pow()
Добрый вечер, товарищи программисты. Решал задачку намедни на С++, понадобилось создать массив и...

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

Проблема с функцией pow()
last = c % pow(10, count); подчеркивает pow, пишет, что найдены перегрузки. last, c, count -...

Проблема с функцией pow()
Простая ситуация, а функция не работает. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru