PDA

Просмотр полной версии : Современный шахматный движок на Спектруме. Возможно ли?



helcril
11.03.2016, 17:12
Недавно заинтересовал меня этот вопрос. Собственно, возможно ли на Спектруме реализовать какой-либо из современных шахматных движков (адаптированный конечно), играющих в большую силу?
Сам я полный профан в программировании (тем более для Спектрума), поэтому спрашиваю знатоков кодинга и алгоритмов.
Спасибо!

P.S. Предыстория: Насколько я знаю, на платформе нет хороших шахмат в плане силы игры и, кстати, графики и удобного интерфейса. И вот недавно, развлечения для, решил набросать в граф. редакторе набор фигур на доске. Потом подумал, что было бы здорово, если бы на Спеке были симпатичная, удобная и хорошая по силе шахматная программа.
P.P.S. Подробную информацию по программирования шахматных движков нашел только на английском https://chessprogramming.wikispaces.com/
P.P.P.S. Есть куча сильных и бесплатных движков, с открытым исходным кодом.

null_device
11.03.2016, 17:33
Насколько я знаю, на платформе нет хороших шахмат в плане силы игры и, кстати, графики и удобного интерфейса.

helcril, вот эту статью (http://www.zxpress.ru/article.php?id=4533) - читали? Тут: либо "шашечки", либо - ехать... ;)

helcril
11.03.2016, 17:55
helcril, вот эту статью (http://www.zxpress.ru/article.php?id=4533) - читали? Тут: либо "шашечки", либо - ехать... ;)

За статью спасибо, в вот как Ваш комментарий понимать? :v2_conf2:

jerri
11.03.2016, 18:24
helcril, чем вам cyrus (http://www.worldofspectrum.org/infoseekid.cgi?id=0001214)и cyrus 2 (http://www.worldofspectrum.org/infoseekid.cgi?id=0001213) не шахматы

helcril
11.03.2016, 18:56
helcril, чем вам cyrus (http://www.worldofspectrum.org/infoseekid.cgi?id=0001214)и cyrus 2 (http://www.worldofspectrum.org/infoseekid.cgi?id=0001213) не шахматы
Спасибо. Первая, честно говоря, для моих глаз довольно тяжела, да и интерфейс неудобный. А вторая симпатичная, не знал про нее.
Для моего уровня игры в шахматы силы этих программ за глаза, однако современные движки ушли от них ой как далеко. Вот я и хотел узнать возможно ли реализовать их на Спектруме.

Bedazzle
11.03.2016, 19:14
Первая, честно говоря, для моих глаз довольно тяжела, да и интерфейс неудобный.

Там вроде цвета можно было как-то переключать. Или речь про мелкоту?

Destr
11.03.2016, 21:05
Для моего уровня игры в шахматы силы этих программ за глаза, однако современные движки ушли от них ой как далеко. Вот я и хотел узнать возможно ли реализовать их на Спектруме.
Нафига, спрашивается мощности Рыбки-4 если сам говоришь что и этих сириусов за глаза по силе???
Или просто академический интерес?

helcril
12.03.2016, 04:46
Там вроде цвета можно было как-то переключать. Или речь про мелкоту?

Про цвета, мелкоту и общую корявость. Во второй с этим лучше получше в 2Д режиме, в 3Д вообще симпатично.

Нафига, спрашивается мощности Рыбки-4 если сам говоришь что и этих сириусов за глаза по силе???
Или просто академический интерес?
Да, академический.) Вернее обывательский, ибо мне разобраться в вопросе самому ну никак не удастся.
К тому же, ведь есть вероятность существования сильных шахматистов фанатов Спектрума.

Destr
12.03.2016, 05:43
Да, академический.) Вернее обывательский, ибо мне разобраться в вопросе самому ну никак не удастся.
К тому же, ведь есть вероятность существования сильных шахматистов фанатов Спектрума.
Ясно. Так бы и написал: Интересна шахматная теория, практика, стратегия, тактика. И реализации всего этого в алгоритмическом виде. Ищу формулу ВСЕГО или просто партнёров по игре.
В общем как-то так :)
Сам я шахматами увлекаюсь, но даже спека не обыграл ни разу (терпения не хватало дождатся пока там комп думает).
С живыми партнёрами бился, но из знакомых - никто не дотягивает и до 20 ходов (кроме бывшего одноклассника, у него разряд не помню 1 или 2 в общем по республике там где-то отметился).
В общем я счаз забил на шахматы, но тебе успехов желаю!
(дело-то полезное ты замутил, баламуть это болото, уверен есть у нас программеры которые уже заскучали от всяких там дем, а тут такой интересный вариант подумать-прикинуть-реализоватьПопробовать, глядишь что и всплывёт :) )

helcril
12.03.2016, 07:35
Ясно. Так бы и написал: Интересна шахматная теория, практика, стратегия, тактика. И реализации всего этого в алгоритмическом виде. Ищу формулу ВСЕГО или просто партнёров по игре.
В общем как-то так :)
Сам я шахматами увлекаюсь, но даже спека не обыграл ни разу (терпения не хватало дождатся пока там комп думает).
С живыми партнёрами бился, но из знакомых - никто не дотягивает и до 20 ходов (кроме бывшего одноклассника, у него разряд не помню 1 или 2 в общем по республике там где-то отметился).
В общем я счаз забил на шахматы, но тебе успехов желаю!
(дело-то полезное ты замутил, баламуть это болото, уверен есть у нас программеры которые уже заскучали от всяких там дем, а тут такой интересный вариант подумать-прикинуть-реализоватьПопробовать, глядишь что и всплывёт :) )
Да, шахматами увлекся недавно, очень интересна эта тема. А вот реализация чисто теоретическая мне не по силам. Просто стало интересно возможно ли на Спеке реализовать движок, обыгрывающий гроссов. Готов для такой программы рисовать графику.
А в плане партнеров для игры сейчас ведь в этом нет проблемы совсем, слава Интернету.:v2_dizzy_biggrin2:
P.S. Видимо на Спеке самый оптимальный выбор - это Cyrus II. Жаль что там на 2D доске нельзя менять цвета как в первой части. В остальном же вполне неплохая программа.

doorsfan
12.03.2016, 13:37
...даже спека не обыграл ни разу (терпения не хватало дождатся пока там комп думает).
Помню, были шахматы, в которых можно было задать адаптационный уровень сложности: время на ход подтягивалось к времени обдумывания игроком. Не помните, как назывались?

jerri
12.03.2016, 14:34
doorsfan, cyrus

Destr
12.03.2016, 14:58
Жаль что там на 2D доске нельзя менять цвета
Можно, лень только.
Наверняка 1-2 poke и пожалуйста.
Поковыряй в коде (если умеешь) или подай идею нашим "адаптаторам" (или как там называются люди которые всякие разные версии делают со всякими плюшками опциональными).
Соберут тебе этот цирус-2 с возможностью выбора цвета.

Kakos_nonos
12.03.2016, 17:57
А есть на спектрум русские шашки?

Barmaley_m
29.03.2016, 00:22
возможно ли на Спеке реализовать движок, обыгрывающий гроссов.
Предлагаю ответ настолько же верный, насколько и бесполезный.

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

Поправьте, если я ошибаюсь, но на сегодняшний день все компьютерные шахматные движки по сути являются комбинацией следующих методик:

1) База дебютов (на Спеке применить невозможно - памяти не хватит)
2) База эндшпилей (аналогично)
3) Перебор ходов
4) Оценка позиции после рассмотрения каждого хода
5) Стратегия перебора ходов

Итак, остаются методы 3), 4) и 5).

Оценка позиции - это "ноу-хау" каждого конкретного движка, тут применяются разные эвристические принципы; где-то, возможно, нейросети, pattern recognition. Что-то простое наверняка реализовать можно, какое-то подмножество современных алгоритмов, которые используют мало памяти. Стратегия перебора - сродни оценке позиции, там тоже всякие хитрые алгоритмы с нечетким научным обоснованием. Где-то эти два процесса пересекаются.

Можно ли будет обыграть гросса в классической (по ограничению времени на обдумывание хода) партии? С учетом медленности проца, отсутствия дебютной базы и кастрированными алгоритмами оценки и стратегии перебора? Мне кажется, это маловероятно. Но сделать что-то более сильное, чем то, что делалось в 80х гг на Спектруме - наверняка.

ZX_NOVOSIB
29.03.2016, 11:50
У спека мало памяти, но можно базу ходов на дискете разместить, пусть она подгружается во время обдумывания хода, пару минут спеку хватит, чтобы пошарить по дискете и найти там нужный ход.

denpopov
29.03.2016, 12:51
А этого старичка пробовали?:
http://nanochess.org/emulator.html

helcril
30.03.2016, 02:49
Оценка позиции - это "ноу-хау" каждого конкретного движка, тут применяются разные эвристические принципы; где-то, возможно, нейросети, pattern recognition. Что-то простое наверняка реализовать можно, какое-то подмножество современных алгоритмов, которые используют мало памяти.
Вот я об этом и спрашиваю, т.к. сам разобраться не смогу. Исходники многих сильных движков на Си есть в открытом доступе (в том числе сильнейших). Вопрос в том, сможет ли кто-то все это адаптировать-оптимизировать и впихнуть самое важное в спек, чтобы при этом еще и играть было можно. Я так думаю, что самое главное ограничение как раз в вычислительной мощности, т.е. все-таки нужно чтобы ходил комп за приемлемое время.


Даже это было бы уже большой победой. Я пробовал поиграть с Cyrus2 на уровне сложности 5 (всего их 9 вроде бы) и в принципе для меня это вполне подходящий противник, и есть еще запас почти вдвое. Но ведь я играю максимум в силу четвертого разряда!



А этого старичка пробовали?:
http://nanochess.org/emulator.html
А это разве не эмулятор 8080??
Может имели ввиду вот это: http://nanochess.org/chess2.html