Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

программирование логических игр   Найти похожие ветки 

 
Toljan   (2005-05-29 11:26) [0]

Хочу узнать на каком математическом принципе строятся логические игры (не важно какие). По "голым" исходникам разобраться не реально. Подскажите кто что знает.


 
П7   (2005-05-29 13:21) [1]

Э...


 
Zer0 ©   (2005-05-29 13:30) [2]

а что вы понимаете под словосочетанием "логические игры"?


 
Zer0 ©   (2005-05-29 13:31) [3]

Удалено модератором


 
Antonn ©   (2005-05-29 13:34) [4]

Toljan   (29.05.05 11:26)
совершенно не понятный вопрос.


 
Кефир87   (2005-05-29 21:15) [5]

Математическом? Это ж логические игры. Значит и принцип логический 8)


 
Toljan   (2005-06-02 08:34) [6]

Подробнее... Как, например, написать гамесу "шашки" с нуля, или "шахматы", или "домино", чтобы программа расчитывала ответные ходы? На каком принципе строятся такие игры?


 
Antonn ©   (2005-06-02 10:00) [7]

Toljan   (02.06.05 8:34) [6]
перебор


 
Toljan ©   (2005-06-16 08:46) [8]

Кое-какие алгоритмы я нашел. Это Альфа-Бета отсечение, метод перебора, минимаксный метод и т.п. На словах все выглядит красиво, а вот кто пробовал писать программы с такими алгоритмами?


 
A22 ©   (2005-06-16 09:57) [9]

ну, блин, а по каким же еще алгоритмам оно пишется?:) Есть такая игра - "Рыцари и Купцы", "Carcasson" по-вражески, вот как раз Альфа-Бета с отсечением там и работает... Был такой журнал когда-то - "Программист", в номерах год так за 2003 были статьи на тему данных алгоритмов, в одном даже шахматы писались в качестве примера. Поищи, может в Интернет остались архивы


 
Ищущий   (2005-06-16 10:11) [10]

Если действительно нашел спецификацию алгоритма, а не вольное описание его - все просто и красиво.
По поводу написания игр,начни с "простого" - "ханойской башни" , "каллаха" , простых "линий", "сапера" и т.п.
Сразу написать хорошие шахматы не получится - факт.

PS: По поводу копания в коде - это ты зря ... если код хороший.


 
имя   (2005-06-21 19:05) [11]

Удалено модератором


 
П7   (2005-06-21 19:24) [12]

Не, ну ваще хамло!!!


 
Toljan ©   (2005-07-12 14:28) [13]

Я книжку купил. Там шахматная прога разобрана. В общем то все есть, читать только надо. Но у меня не шахматы, а другая игрушка. Может напишу её.


 
NS   (2005-08-17 15:42) [14]

(Ищущий) ну почему же... У меня получилось ;-)


 
NS   (2005-08-17 15:51) [15]

Для автора - самая просейшая модель начинается с предсталения позиции и генератора ходов.
Простейшее представление позиции -
массив на 64 элемента.
Значения - разные (есно с учетом цвета), например -
-7 Черный король
-6 черный ферзь
-5 черная ладья
-4 черный слон
-2 черный конь
-1 черная пешка
0 пустая клетка
1 белая пешка
2 ....
и т.д.
Отдельное значение (наприм 8) для поля, через которое только что пешка сделала двойной ход, при условие, что следующим ходом она может быть взята.
Плюс хранишь право на рокировку белых и черных, плюс очередь хода.
Всё - какое-то представление позиции написали...


 
Toljan ©   (2006-01-19 21:24) [16]

Я все-таки написал свою игрушку. Протестируйте...плиз.... Можно даже мнение свое выссказать или ошибки указать, недостатки всякие. А, может кто и похвалит. Короче! Любое мнение по-поводу и в тему учту, если будет время и желание. Игрушку скачать можно здесь: http://www.freeware.ru/program_prog_id_7992.html


 
Kind ©   (2006-01-19 22:40) [17]

Мне лично понравилась идея игры! Интересно!
Реализация тоже неплохая!
Уважаю людей которые что-то делают руками, стараясь максимально реализовать задуманное, даже если это не "пристижное" направление игрового жанра!
Удачи!


 
П7   (2006-01-20 02:10) [18]


> Toljan ©   (19.01.06 21:24) [16]

Блин, игру - супер! Только чертовски сложная для меня! (: Мож я такой тупой? (:
Сапёра в топку, Кубики форева! (:


 
Shirson ©   (2006-01-20 08:07) [19]

> Toljan  
Отличная игра!


 
twinc ©   (2006-01-20 09:39) [20]

игра понравилась...
Только она тоже чертовски сложная для меня! (:


 
П7   (2006-01-20 17:28) [21]

Пока научился выиграывать на лёгком. Правда не без кнопки "Отменить ход", но всё-таки.
Хотелось бы поиметь игру по сети. А то комп черезчур умный. (:


 
MonoLife   (2006-01-20 17:44) [22]

ну и ну! Давненько я не встречал ничего подобного. Автор так скромненько заявил о себе, а с такой игрухой можно ого-го куда... :)


 
TWINc ©   (2006-01-20 18:59) [23]

Автор прикрути онлайн :)


 
П7   (2006-01-21 00:12) [24]


> MonoLife   (20.01.06 17:44) [22]

Куда можно? Как шароварка не покатит:
1. Слишком сложно и непонятно для казуала.
2. Нет нормального шароварного интерфейса (аля всё блестит и переливается всеми цветами радуги), достают постоянные сообщения. [Всё это можно поправить]

Это игра не для всех. Т.е. своё комьюнити она поиметь может. Но:
1. Нужна в первую очередь реализация мультиплеера.
2. Нужен сайт и форум. (:
3. Нужна поддержка со стороны автора. В том числе по улучшению игры, добвлению новых режимов и правил, тактических приёмов и прочих наворотов и фишек. (:


 
Кефир87 ©   (2006-01-21 00:14) [25]

Браво! Только для моего интеллекта слишком сложно 8)


 
Toljan ©   (2006-01-22 08:51) [26]

- Большое спасибо за отзывы. Учту при написании новых версий. Сейчас начинаю работать над сетевой фишкой. Там будет обычный мультиплеер и простенький чат.
- Наверно достали уже всякие назойливые сообщения в игре. Я это сделал по стандарту с шахматными игрухами. Но в дальнейшем включу в настройках отмену всяких "излишеств".
- Игра по-началу кажется слишком сложной. Я думал над этим и решил в качестве обучения сделать "подсказку"  в программе. Автора игры, я к сожалению не знаю. У меня есть просто настольная (пластмассовая) ее версия. Именно по этому макету я и написал электронный вариант.
- На будущее, если моя программа будет иметь успех, постараюсь переделать ее под 3D DirectX, чтобы все красиво было.
- Сайт и форум по игре - мысль не плохая, тоже буду думать.


 
Кефир87 ©   (2006-01-22 13:39) [27]


> постараюсь переделать ее под 3D DirectX

А вот это уже лишнее ИМХО. И так хорошо 8)


 
П7   (2006-01-22 14:41) [28]


> Toljan ©   (22.01.06 08:51) [26]

На счёт подсказок в игре - не хватает вот чего (лично мне, по крайней мере): Выбрали куб (показались варианты ходов). Так вот, если правой кнопкой ткнуть, чтобы показались возможные ходы, после этого хода.

Блин, запутнанно описал.. (: Надеюсь ты поймёшь.


 
Shastox ©   (2006-01-22 18:56) [29]

Самое интересное, что в жизни шахматы - намного более сложная игра, чем шашки, а в программировании наоборот.


 
П7   (2006-01-22 21:01) [30]


> Shastox ©   (22.01.06 18:56) [29]

И механика и алгоритм ИИ для шахмат программируется гораздо сложнее, чем для шашек.


> Toljan ©   (22.01.06 08:51) [26]

Недавно выиграл на среднем". Блин, кнопка "Отменить ход" рулит!
А можно как-то партию в файл записывать? Чтобы потом свои победы можно было прокрутить ещё разок... (:


 
Shastox ©   (2006-01-22 23:27) [31]


> И механика и алгоритм ИИ для шахмат программируется гораздо
> сложнее, чем для шашек

Нет. В шахматах все ходы линейны: берешь фигуру, перебираешь все ее ходы с учетом "статуса" этой фигуры и т.д.
В шашках: несколько вариаций правил (это не считаем) + оф. разветвление.
Это развтевление НАМНОГО сложнее чем простой перебор ходов для шахмат.


 
П7   (2006-01-22 23:40) [32]


> Shastox ©   (22.01.06 23:27) [31]

Что ты имеешь в виду под разветвлением?


 
Shastox ©   (2006-01-23 00:11) [33]

Разветвление для шашек (например):
ПК должен совершить ход, он может начать есть с одной из двух шашек, съедает одну (можно съесть еще одну) он есть ее и еще одну, если ПК изначально выбрал другую шашку, он пойдет по другому маршруту, которые могут пересекаться. Из-за этих пересеканий маршрутов может появиться зациклинность в рекусрсии.
т.е я хочу сказать в шахматах, например, берем ход слона и начинаем в четырех направляниях тупо перебирать ходы, допустим в данный момент проверяется клетка справа и выше: есть там фишка опоннента-встаем туда, нет фишки - тоже встаем туда, проверяем теперь ход другого игрока. В шашках же мы перескакиваем через фишку противника, а там еще может можно есть, то есть просто ход вверх и вправо может превратиться в сложную цепочку передвижений.
Единственное в шашках легче то, что есть всего два наименования: просто шашка и дамка.

Наверно не очень понятно объяснил свои мысли...


 
П7   (2006-01-23 00:24) [34]


> Shastox ©   (23.01.06 00:11) [33]

Т.е. ты хочешь меня убедить в том, что когда просчитываешь ходы в шахматах, то фигура ВСЕГДА переместится на клетку, на которой ещё не была? И рекурсия не зациклится? Нуну...
В шахматных алгоритмах сложна тактика расстановки фигур.


 
Shastox ©   (2006-01-23 00:41) [35]


> фигура ВСЕГДА переместится на клетку, на которой ещё не
> была?

Чего?.. Это я такое сказал? Я имел ввиду, что алгоритм просчитывает все передвижения того слона и выбирает лучшее.

> И рекурсия не зациклится?

Правильная рекурсия и в шашках не зациклится.

> В шахматных алгоритмах сложна тактика расстановки фигур.

Это не понял.


 
П7   (2006-01-23 02:44) [36]


> Shastox ©   (23.01.06 00:41) [35]

В таких играх очень важна расстановка фигур на перспективу. Т.е. поставить фигуру так, чтобы она через 10 ходов оказалась фатальной для противника. И в шашках и в шахматах. Но из-за специфики шахмат и наличия большого числа разно-ходящих фигур такая расстановка гораздо сложнее, чем в шашках.
Конечно, если делать просчёт лишь текущего хода, то шашки может и сложнее.. (:


 
Shastox ©   (2006-01-23 11:21) [37]


> Конечно, если делать просчёт лишь текущего хода, то шашки
> может и сложнее.. (:

Зачемтолько текущего?
Например я играю с ПК. Ход пк: перебирает все ходы (возможные), далее на каждый свой-перебирает все мои и.т.д. Потом выбирает наиболее удачную комбинацию.


 
П7   (2006-01-23 12:16) [38]


> Shastox ©   (23.01.06 11:21) [37]

Угу. Только критерии оценки "наиболее удачной комбинации" в шахматах программируются сложнее.


 
Toljan ©   (2006-01-23 22:23) [39]

А что будет, если я у кубиков сделаю все грани одинаковой силы, т.е. если кубик показывает "5", то так будет постоянно, как его не вертеть на доске. То же самое и с "2"-ми и "1"-ми и "6"-ми.


 
Toljan ©   (2006-01-23 22:27) [40]

Естественно, это будет всего лишь одна из опций в настройках.


 
Shastox ©   (2006-01-23 23:44) [41]


> Угу. Только критерии оценки "наиболее удачной комбинации"
> в шахматах программируются сложнее.

А помоему это не очень сложно и в шашках и в шахматах: просчитал ПК, например, на пять ходов вперед, перебрал все варианты, выбрал тот, при котором у него больше и лучше фигуры остались, а у противника наоборот.


 
П7   (2006-01-24 01:32) [42]


> Toljan ©   (23.01.06 22:27) [40]

Конечно делай. Будет прикольно поглядеть, как это будет работать. (:
Или скажем кубики, у которых по 2 одинаковые стороны. Скажем 6, 4, 2 и 5, 3, 1. (:


> Shastox ©   (23.01.06 23:44) [41]

Видимо ты мало играл в шахматы. Иногда выгоднее отдать сильную фигуру, чтобы получить тактически выгодное положение остальных фигур на поле. В этом и сложность шахмат, относительно других игр. Нет однозначности в оценке.


 
Shastox ©   (2006-01-24 18:20) [43]


> Видимо ты мало играл в шахматы. Иногда выгоднее отдать сильную
> фигуру, чтобы получить тактически выгодное положение остальных
> фигур на поле. В этом и сложность шахмат, относительно других
> игр. Нет однозначности в оценке.

Нормально я играл. Но как же ты определишь, что сейчас нужно тебе отдать сильную фигуру? - Элементарно, просто ты продумаешь следующие ходы и поймешь, что сейчас отдав посильнее фигуру, потом будет хорошо. Так вот если программа просчитает побольше ходов вперед, она тоже это поймет.
Но так как она все равно не будет думать, например, на 100 ходов вперед (по времени долго), то естественно она может ошибиться ( как и человек).


 
Kolan ©   (2006-01-28 00:32) [44]

Toljan   (02.06.05 08:34) [6]

Подробнее... Как, например, написать гамесу "шашки" с нуля, или "шахматы", или "домино", чтобы программа расчитывала ответные ходы? На каком принципе строятся такие игры?


"Теория игр" называется


 
Toljan ©   (2006-01-28 14:56) [45]

То, о чем идет речь называется форсировка хода или выборочным продлением хода. Т.е. компьютер, найдя потенциальную опасность своего положения просчитывает ходы дальше на 1-2 шага (можно и больше), все "простые" ходы рассчитываются до "горизонта", т.е. до определенного предела.


 
Toljan ©   (2006-01-28 14:58) [46]

А "теория игр" к компьютерным играм имеет только поверхностное отношение. Это раздел из теории вероятностей.


 
Toljan ©   (2006-02-01 21:21) [47]

У кого есть нормальный исходник с ClientSocket и Serversocket? У меня что то глюки не детские вылетают на ServerSocket когда пытаюсь отправить простой командой клиенту сообщение ServerSocket1.Connections[0].SendText.


 
Ангелина   (2006-03-20 09:59) [48]

Люди помогите найти игру ханойские башни на macromedia flesh mx. пишите на mail(macaroshka@mail.ru)


 
Misha1   (2006-11-19 13:30) [49]

Помогите пожаилуста с игрой "найди 2 одинаковые картинки" на Delphi.у меня поле где картинки отдельно друг от друга,как мне их выводить каждый раз по разному чтоб они на своем месте стояли



Страницы: 1 2 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.027 c
15-1194178514
andreoman
2007-11-04 15:15
2007.12.02
как читать чужиее смс


2-1194614879
Denis__
2007-11-09 16:27
2007.12.02
Цвет рабочего стола


6-1175158481
max_max
2007-03-29 12:54
2007.12.02
отправка строки через сокеты в цикле


15-1193973030
Slider007
2007-11-02 06:10
2007.12.02
С днем рождения ! 2 ноября 2007 пятница


15-1193785860
Германн
2007-10-31 02:11
2007.12.02
Directory is busy