Tue, Apr. 1st, 2008, 11:12 am
ZOG не дремлет!

После вот этого поста я заинтересовлся разными вариантами шахмат, да и прочими разными играми. И в процессе лазания по нету натолкнулся вот на такое: http://www.zillions-of-games.com/

Zillions Of Games (ZOG) - это что-то типа движка для разных board games, позволяющих закодировать практически любую игру, в которую только можно играть на досках, а потенциально вообще что угодно. Программа проприетарная, под венду, работает под вайном с умеренными глюками после некоторой обработки напильником. Стоит денег, демо-версия практически не юзабельна. Деньги я платить не захотел, пришлось крякать... Но посмотрите, какое немерянное количество игр: http://www.zillions-of-games.com/games/ ! Одних шахмат - от обычных, с какими-то дополнительными правилами, до каких-то совершенно безумных вариантов - многомерных, с несколькими игроками, с какими-то дополнительными фигурами... Плюс - и шашки, и го, и шоги, и до чёртиков ещё всякого, о чём я и не слышал никогда...

Я вот подумал - может быть найдётся кто-нибудь, кто это дело может форкнуть? Написать open source проект на каком-нибудь gtk, а то и вовсе на питоне - чтоб он мог открывать файлы правил для ZOG. Это не должно быть очень сложно, правила там записаны довольно простым языком. Вот так, к примеру, выглядит файл правил для игры Kono АКА корейские шашки:


; *** (Four Field) Kono

; *** Copyright 1998-2002 Zillions Development

; v.2.0



; You need to purchase Zillions of Games to load this rules file

; Visit the Zillions web site at http://www.zillions-of-games.com



(define hop ($1 (verify friend?) $1 (verify enemy?) add) )

(define shift ($1 (verify empty?) add) )



(game

(title "Four Field Kono")

(description "Capture or block in all of your opponent's pieces. You

can only capture a piece by first jumping over one of your own

pieces then landing on it.")

(history "Four Field Kono comes from Korea.")

(strategy "Set up your pieces carefully, and try and keep two of your

pieces in a row so that you can capture. Control of the central

squares is important, because without pieces in the center you can

only capture along the edges.")

(option "prevent flipping" 2)

(players Red Blue)

(turn-order Red Blue)

(board

(image "..\images\Kono\konobd.bmp" "..\images\Kono\konobd2.bmp")

(grid

(start-rectangle 9 9 59 59)

(dimensions ;4x4

("a/b/c/d" (47 0))

("4/3/2/1" (0 47))

)

(directions (n 0 -1) (e 1 0) (s 0 1) (w -1 0))

)

)

(piece

(image Blue "..\images\Kono\blueball.bmp"

Red "..\images\Kono\redball.bmp")

(name Ball)

(description "Ball\A Ball can move up, down, left or right. To capture,

the ball must first jump over one of it's own men, then

land on the opponent.")

(help "Ball: moves up, down, left, right, captures-jumps over like ball")

(moves

(hop n)

(hop s)

(hop e)

(hop w)

(shift n)

(shift e)

(shift s)

(shift w)

)

)

(board-setup

(Blue (Ball off 99 a3 b3 c3 d3 a4 b4 c4 d4))

(Red (Ball off 99 a1 b1 c1 d1 a2 b2 c2 d2))

)



(loss-condition (Red Blue) stalemated)

(loss-condition (Red Blue) (pieces-remaining 0))

)



Вообще, в хелпе имеется описание синтаксиса языка (.zrf), используемого для описания правил. Я думаю, это не будет очень сложно реверс-инженерить. Проблемы могут быть только с AI - в этой игре удивительно сильный и гибкий AI, играющий в почти любые игры, которые только способно породить больное воображение пользователей - но без компьютерных игроков в принципе по первому времени можно и вообще обойтись. А потом - как знать? Может кто-нибудь и не обломается написать и AI тоже... Главное, чтоб кто-нибудь, умеющий хоть как-то кодить (i.e. не я) взялся за это дело...

Mon, Mar. 31st, 2008, 05:31 pm
[info]prozzz@lj

шахматы-то нашел?)

Mon, Mar. 31st, 2008, 05:33 pm
[info]prozzz@lj

а то вот http://www.chess3.ru/

Mon, Mar. 31st, 2008, 06:42 pm
[info]ash_rabbi@lj

Да, трёхсторонних вариантов там нет. Надо будет попытаться сделать %)

Tue, Apr. 1st, 2008, 04:30 pm
[info]ilya_starling@lj

А по какому принципу работает AI? Ведь там разные игры? Или у них есть некая общая логика?

Tue, Apr. 1st, 2008, 11:41 pm
[info]ash_rabbi@lj

Вот это-то и есть самая большая загадка всего этого проприетарного проекта. Как он может работать? Банально считать ходы? Этак бы он полгода считал... Наверное, есть какие-то математические твики. Но играет он в самом деле неплохо - если выставишь уровень AI на максимум, он тебя, скорее всего, обыграет во что угодно, даже в игру, которую ты сам только что придумал %)

Что же до фреймворка - его форкнуть должно быть довольно просто. Для сколько-нибудь умелого программера не должно быть особых проблем...