11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504

Научить компьютер играть в дурака

27.06.2024, 09:43. Показов 3530. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задача такая, научить компьютер играть в дурака, собираюсь решить её с помощью генетического алгоритма и нейросети.
Если с ГА проблем пока не возникает, то с нейросетью явный затык. Не могу понять какие данные она должна принимать и какие возвращать.
Допустим я её буду передавать текущее состояние, т.е. карты находящиеся на столе и у меня на руках, а так же в отбое и козырь. но возникает проблема с тем что в процессе игры не всегда нужно отбиваться или атаковать, иногда нужно нажать бито, иногда сделать перевод, иногда взять, а если всё таки нужно отбиваться, но нужно понять какую карту отбивать.
отсюда собственно вопрос, как лучше организовать структуру нейросети?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2024, 09:43
Ответы с готовыми решениями:

Крестики Нолики 4x4: как научить компьютер "играть"
Всем привет! Я пока еще только начинаю программировать, поэтому обращаюсь к вам, может вы поможете. Вот хотел спросить. Не подскажете...

Как научить сборную России играть в футбол?
Просто накипело, извините:cry:

Хочу научить компьютер говорить на C#, а он ошибку выдает!
пишу private void button1_Click(object sender, EventArgs e) { SpeechSynthesizer h = new...

24
11 / 11 / 0
Регистрация: 17.01.2013
Сообщений: 504
03.07.2024, 17:24  [ТС]
Студворк — интернет-сервис помощи студентам
Mikhaylo, мы же знаем сколько карт в колоде, вот и будем считать каждый нейрон отдельной картой, а отправлять в него будем текущее состояние карты (у кого на руках, в колоде или на столе), а на выходе каждому нейрону присваиваем действие, я прикинул, их всего 5 или 6 получается
back propagation применим, если у нас есть выборка, на которой можно учиться, в нашем случае если создавать выборку из всех возможных ходов, то она будет огромная, да и если она у нас будет, то нам и нейронка не нужна, просто отсеиваем выигрышные ходы
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
03.07.2024, 20:45
Ладно, коли тут собрались люди, любящие щелкать орешки...

Давайте договоримся, для простоты рассматриваем игру в простого дурака без переводов, 36 карт.

У нас есть 5 массивов карт:
A - карты на руках,
B - карты у соперника на руках,
C - колода,
D - игровое поле,
E - сброс.

A - полностью известный.
B - обычно неизвестный, но некоторые карты могут "спалиться", когда соперник забирает их.
C - известна козырная карта, которая рубашкой вверх.
D - все карты открыты.
E - все карты известны.

Соответственно, помимо нейросетей должны использоваться обычные несложные алгоритмы, которые отслеживают перемещение карт по массивам, иначе задача не формулируется как следует. А учить ИИ, что в результате некоего действия карта X перешла из массива D в массив E - это слишком утомительное и ненужное обучение правилам игры через веса.

Наличие или отсутствие карты - это 0 или 1, если карта неизвестна, то 0,5 - это нормальный подход для нейронки.

Помимо этого:
1. Нужно вычислить неизвестные карты
2. Нужно оценить действия соперника, учесть его знания карт массива A.

Короче, тут еще куча работы до выхода MVP.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
04.07.2024, 07:53
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Помимо этого:
1. Нужно вычислить неизвестные карты
2. Нужно оценить действия соперника, учесть его знания карт массива A.
Это да, нейронка может/должна осилить сама.

Вы начните уже собирать данные для обучения. Надо, чтобы кто-то сыграл 10000 партий.

https://youtu.be/Ct2Jx0UwcGE
0
148 / 111 / 37
Регистрация: 28.11.2013
Сообщений: 383
04.07.2024, 21:51
Можно использовать lstm нейросеть, она немного ресурсов занимает, вот пример обучения игре в змейку за 100 итераций youtube. Вот пример использования обученной нейросети для обучения игры в марио youtube2.
Итак, какой-бы алгоритм вы не выбрали, Вам нужно сначала получить данные из игры, желательно в виде цифр (ответ агенту). Начните с отладки работы с игрой. На это у вас уйдет прилично времени. Научитесь передавать данные в игру и получать ответ, желательно в виде цифр. Сведите к минимуму количество команд. А после этого уже выбирайте алгоритмы - нейросети, генетический алгоритм и т.д.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
05.07.2024, 09:02
Самое главное, не предаваться иллюзии, что все просто: типа скормил нейросети массивы и все заработало.

По моей ссылке на Ютуб есть реализация, и там не самые лучшие решения по интеграции нейросети к игроку.

Нужно попробовать что-то сделать, чтобы понять свои слабости. А иначе мы имеем только шапкозакидательский трёп.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2024, 09:02

Sonoff как научить его включать и выключать компьютер?
Добрый день! Есть WiFi реле Sonoff как научить его включать и выключать компьютер? т.е. при сигнале он подает питание 220 в. на...

Возвести 11^100 (метод:научить компьютер умножать столбиком)
Как я понял, нужно взять 2 массива, в один записываем число,затем копируем, то же число, но со сдвигом, суммируем, если какой-то элемет...

Учим компьютер играть в Гомоку (пять в ряд)
Отработал защиту бота, (я играю крестиками компьютер нулями) начал решать задачу с конца. Бот еще не умеет "выстраивать" свои...

Учим компьютер играть в Гомоку (пять в ряд)
Отработал защиту бота, (я играю крестиками компьютер нулями) начал решать задачу с конца. Бот еще не умеет "выстраивать" свои...

Прошу научить меня.
Здравствуйте, я очень хочу научиться програмировать на языке С++. Кто-нибудь пожалуйста может написать небольшую программу, написать что...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Опции темы

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru