![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шашки...
Vulko © (2003-04-11 17:08:00)
Люди, вот решил написать гаму "Шашки", но возник следующий вопрос:
как выбрать лучший ход, лучше в зависимости от выбранного уровня сложности?
Кен (2003-04-14 04:13:00) [41]
k-man
Я непонят.
Есть позиция. Например начальная. Ход белых. Нужен код, который бы сгенерировал позиции которые получатся после всех возможных ходов белых. Какая будет после хода ab4, какая после cb4, cd4, ed4 и т. д. до gh4. И вот когда все эти позиции будут сгенерированы, только тогда и можно будет их оценивать.
И этот код должен работать не только для начальной позиции, но и для любой другой. Для этого не нужен ИИ, это просто правила игры.
GameBoy ©
>Дизассемблируй, и будет тебе движок на Ассемблере :))
Шоб ты сам шашки дизассемблировал.
nikkie ©
> Не знаю, как на счет шашек, но исходники шахмат найти не
> проблема
Для шахмат и дурак геренацию возможных ходов напишет. Ходы с клетки на клетку. Бьётся максимум одна фигура. Вы вот бой дамкой в русских шашках напишите. Когда шашка превращается в дамку и бьёт десять шашек. Причём как побить - целая куча различных вариантов. А ещё если дамок несколько ?
nikkie (2003-04-13 23:49:00) [42]
Не знаю, как на счет шашек, но исходники шахмат найти не проблема - GNUChess, например. Но чем копаться в исходниках, лучше почитать про основные алгоритмы. Минимаксная процедура, альфа-бета отсечение. Этого будет уже достаточно, чтобы написать хорошо играющую программу. По-крайней мере создателя она обыграет.
k-man (2003-04-13 13:22:00) [43]
2GameBoy
ИИ и нейросети абсолютно разные вещи!
С помощью нейросетей создаются отличные образцы ИИ.
Но нейросети находят свое применение во многих областях человеческой жизни, нейрокомпьютерами пользуются :
от брокера до метеоролога. НС это универсальный аппарат.
> Все алгоритмы уже давно написаны профи и принципы у них
> одинаковые. Сравни их исходники и поймешь, если разберешься
> :)
1) Кто же нам даст эти исходники профи?
2) Ну если ты профи дай нам исходник - может разберемся:-)
GameBoy (2003-04-13 13:11:00) [44]
2k-man
А ты сам-то хоть понимаешь разницу между ИИ и нейросетями?
2Vulko
Все алгоритмы уже давно написаны профи и принципы у них одинаковые. Сравни их исходники и поймешь, если разберешься :)
>Если бы был быстрый движок генерации всех возможных ходов в позиции, желательно на ассемблере...
Дизассемблируй, и будет тебе движок на Ассемблере :))
k-man (2003-04-13 13:06:00) [45]
2ffh1
Зайди на сайт к Soft"у( он частый гость на Мастаке )
http://www.alife-soft.narod.ru/index.html
Там очень много интересного. Огромная кипа литературы по нейронным сетям и ссылок. Я там практически все перерыл!
Классный сайт!
2Кен
Я имел ввиду, что саму основу игры(интерфейс там и т.д, т.е полноценную игру на двоих ), а не алгоритм генерации ходов позиции - это уже ИИ. Но повторюсь когда передо мной встала такая задача я стал думать и было хотел сделать систему оценки позиции, но решил использовать нейронным сети, и сейчас занимаюсь несколько другим проектом, котроый потом будет внедрен в игру типа шашек или шахмат( вроде демо ) на его основе можно будет создать нейросетевой ИИ для любой программы.
Тем не менее, я не думаю что нужно генерить абсолютно все возможные ходы на позиции. Надо создать такой алгоритм оценки поз.,чтобы он сам отбирал какие поз. достойны глубинной обработки( на несколько ходов вперед ), а какие надо оставить.
А с помощью нейронных сетей можно реализовать это очень гибко.
Это называется самообучающийся ИИ. Но для того чтобы это понять нужно много знать о теории и функционировании нервных клеток в организме человека, о моделях нейронных сетей, о методах их обучения и самообучения....
Так что Вулко советую подумать над системой оценки позиции без нейросетей, может получиться очень хороший ИИ.
Кен (2003-04-13 03:09:00) [46]
k-man
> сонову написать не так уж и сложно, проблемы будут только
> с графикой( как шащки нарисовать).
Если основу, то есть алгоритм генерации всех возможных ходов для позиции, написать действительно не солжно, то было бы неплохо запостить это прямо сюда. Только именно нормально работающую, с учётом всех правил русских шашек.
Либо могу взамен нарисовать шашки. Даже много шашек.
ffih1 (2003-04-12 22:33:00) [47]
2k-man
Напиши, плиз, шде взял теорию по нейронным сетям. Книжек нормальных кроме МСК и Спб не достать.
k-man (2003-04-12 16:49:00) [48]
2arch-vile
Вообще если ты собрался заняться этим серьезно, то лучше
пиши сам. Почему? Потому что ИИ у него там еще нет, а
сонову написать не так уж и сложно, проблемы будут только с графикой( как шащки нарисовать). Зато потом когда сам будешь ИИ писать и выйдет что-нибудь серьезное это будет полностью твоя разработка, а не доделка. А почему это важно?, спросишь ты,
а потому что серьезный ИИ пишется не один месяц. И когда работа будет сделана тебе не захочется что-бы сказали что это не полностью твой проект.
k-man (2003-04-12 16:38:00) [49]
Понимаю твое удивление, когда я узнал об этом,
весьма элегантном решении, тоже нифига не понял.
Вот в чем приблизительный смысл. Что такое позиция я думаю объяснять не надо. Ну условно говоря это положение всех фигур на доске после какого-то хода. Ну так вот, твоя супер интеллектуальная программа поочередно моделирует как можно большее число возможных позиций, на заданную глубину, т.е. не
на один ход вперед, а на два например. По разработанному тобой алгоритму оценивает каждую позицию и возвращает некое число в массив. В итоге у тебя должен получиться некий массив весов позиций, который ты позже анализируешь и выбираешь к примеру самое большое число или самое маленькое. Но это весьма общее объяснение, а здесь много тонкостей и нюансов. Сначала тебе надо разработать сам алгоритм оценки позиции, потом будешь все это писать.... Это не один месяц работы! Будет круто если твоя программа сможет изменять весовые характеристики оценивающего алгоритма подстраиваясь под ситуацию. Но это уже нейронные сети и это куда более сложно..
arch-vile (2003-04-12 16:29:00) [50]
2Vulko я тож хочу покопаться и попробовать свои сыли в програмировании идиотов :) если не впадло и если они (шашки) на Паскале или Дельфи, то вышли мне плииз.
Vulko (2003-04-12 15:55:00) [51]
> проверяет каждую возможную позицию на заданную глубину
Это как %\
Кен (2003-04-12 06:34:00) [52]
Vulko ©
> Люди, вот решил написать гаму "Шашки", но возник следующий
> вопрос:
> как выбрать лучший ход, лучше в зависимости от выбранного
> уровня сложности?
Я как-то пытался написать. Застрял на алгоритме боя дамкой. Там бой, когда шашка становится дамкой и продолжает бить сложно сделать было, "турецкий" удар тоже, бой десяти шашек, так, чтобы одну и туже два раза не били и просчитывались все варианты, и ещё массу всего.
В результате получались либо жуткие тормоза, либо бой был неправильным, а чаще и то и то одновременно.
Если бы был быстрый движок генерации всех возможных ходов в позиции, желательно на ассемблере, то можно было бы думать о том, какой ход лучше выбрать.
k-man (2003-04-11 17:25:00) [53]
Вопрос в играх данного типа не в том как выбрать лучший ход ,
а вообще в создании ИИ.
Вообще неплохой уровень ИИ можно получить с помощью создания системы оценки позиции. То есть твоя программа проверяет каждую возможную позицию на заданную глубину в зависимости от уровня сложности и возвращает некое число от 0 до 1. А потом грубо говоря выбирает самый большой или маленький индекс, это уж как ты сделаешь. Я тоже начал с ИИ для подобной программы, а пришел к нейронным сетям и проектом связанным с ними... А проект
будет позже внедрен в игру типа шашек.