Форум: "Потрепаться";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизНовая версия шашечной программы Найти похожие ветки
← →
Mystic © (2004-08-09 12:01) [0]В очередной раз восстановил алгоритм игры в русские шашки. В это воскресенье сделал интерфейс. Кому интересно:
Исходники: http://mystic2000.newmail.ru/DrSource.zip
Бинарники: http://mystic2000.newmail.ru/WinDraught.zip
Прошлая версия был более веселой. Исходники потеряны. Найти ее можно по ссылке:
http://www.listsoft.ru/programs/13904/
в этот раз намечается делать упор только на русские шашки (в крайнем случае на поддавки). Буду раз выслушать замечания, пожелания, и т. д.
Ну и пару вопросов --- никому online не попадались ресурсы и книги по шашкам, особенно по теории дебютов?
← →
VMcL © (2004-08-09 14:11) [1]>>Mystic © (09.08.04 12:01)
По интерфейсу:
Было бы неплохо всё-таки шашки не просто кликать, а таскать...
Всё, всё, закатываю губу :)
← →
Думкин © (2004-08-09 14:17) [2]А где запись ходов?
А почему они сами с собой так быстро играют?
Ну и таскать конечно, было бы неплохо.
← →
VMcL © (2004-08-09 14:25) [3]+ масштабирование игрового поля при изменении размеров окна
← →
Mystic © (2004-08-09 14:46) [4]Запись ходов пока не сделана.
По поводу перетаскивания... Как его лучше организовать, если есть несколько ударов с одного поля на второе? Останавливаться по пути? И еще... если, например, шашки стоят белые c1, черные b2, b4, d2, d4. После взятия с1:a3:c5:e3:c1 я возвращаюсь на исходную позицию. Если перетаскивать шашку с одного поля на это же самое, то возможен вариант как "отмена хода", так и "выполнить ход". К тому же при взятии перетакиватьвсякий раз шашку на поле взятия неудобно... В общем я поэтому отказался от перетаскивания... Могу в принципе попытаться то реализовать... Но в других шашках мне не нравилось, что при взятии трех-пяти шашек противника надо совершить кучу перетаскиваний...
А почему они сами с собой так быстро играют?
Можно уровень увеличить... Будут играть медленее...
Кстати, как уровень игры? Можен новичка чуть посильнее сделать?
← →
Думкин © (2004-08-09 14:52) [5]> [4] Mystic © (09.08.04 14:46)
Мне и новичка хватит. Я в шахматы с детства не умею, или играл мало.
Но ведь можно задержку сделать? А то они сами с собой за секунду - шлеп и все. Опционально.
Перетаскивание, да. Особенно если время критично.
А кто ходок - не видно.
← →
}|{yk © (2004-08-09 14:58) [6]>Но в других шашках мне не нравилось, что при взятии трех-пяти шашек противника надо совершить кучу перетаскиваний
А если есть два варианта боя?
---
Жук - наш президент
← →
Mystic © (2004-08-09 15:11) [7]}|{yk © (09.08.04 14:58) [6]
У меня после того, как выбрана шашка, которой выполнятеся ход, можно указать сразу поле, где она завершает ход. Если указаная последовательность определяет ход однозначно, то этот ход выполняется...
← →
DK (2004-08-09 15:15) [8]Какая-то дерьмовая программа - выйграла у меня.
← →
nikkie © (2004-08-09 15:18) [9]не надо новичка сильнее. наоборот бы :))
выбирать ход кликами - нормально. только хорошо бы отмечать кликнутые поля. и когда противник сделал ход - отмечать поля, по которым он прошел. опционально - ход анимировать. как в WinBoard, в общем.
← →
}|{yk © (2004-08-09 15:22) [10]Упс...
Играл, играл, вылетела вместе с Delphi
← →
default © (2004-08-09 15:25) [11]бегинера можно и посильней сделать, ходы плавнее, и графика уж юольно убога...вообщем лучше сделать наподобие в WinMe
← →
default © (2004-08-09 15:27) [12]самое главное сделать чтоб можно было участникам форума друг с другом играть вот это веселёха будет!
← →
Mystic © (2004-08-09 15:41) [13]не надо новичка сильнее. наоборот бы :))
Уровень, кстати, можно подправить перекомпиляцией или ResHacker-ом. У менюшек свойство Tag отвечат за силу игры. Коэффициент внутрениий, не думаю, что интересно, что он обозначает. Для Beginer-а установлено в 30, для Expert в 60.
Когда я написал свои первые шашки под DOS на x286, то на эксперте уровень был 30. Времена (и машины) меняются... А алгоритм почти не изменился...
← →
Mystic © (2004-08-09 22:12) [14]Версия 0.1.0.3 (2004-08-09)
[+] Добавлена анимация при перемещениях шашек.
[+] Упрощен уровень Beginer и Intermediate
← →
VMcL © (2004-08-09 23:32) [15]>>Mystic © (09.08.04 22:12) [14]
При отстуствии наличия файла WinDraught.lib вылетает с Runtime error 217.
Предлагаемые исправление (после беглого осмотра пациента):
GameTactics.pas
procedure LoadLib(FileName: string= "");
//...
try
Temp.LoadFromFile(FileName);
except
end;
MainUnit.pas
procedure TMainForm.FormCreate(Sender: TObject);
begin
FMode := mdMachineBlack;
Memo.Clear;
DoubleBuffered := True; // Тоже, кстати, не помешает
if Lib.Count = 0 then
begin
MessageDlg("Library error.", mtError, [mbOK], 0);
PostQuitMessage(0);
end;
end;
← →
default © (2004-08-10 00:08) [16]думаю нужно сетевые делать
кому интересно с компом играть...
и лучше правила как в WinMe
думаю стоит устроить голосование по правилам
← →
GanibalLector © (2004-08-10 01:24) [17]Что-то мне говорят,что архив с исходниками поврежден,млин.Хотя бинарник нормально распоковался.Чем паковал???Может на мылА вышлите,а то уж больно софтинка понравилась...хочу посмотреть КАК.
← →
GanibalLector © (2004-08-10 01:53) [18]2 Mystic
Большая просьба...вышлите мне на мылА исходник. Talla2k#ukr.net
З.Ы. Мы ж вроде как земляки.
← →
Mystic © (2004-08-10 12:21) [19]Исходники отправил. Про ошибку с библиотекой тоже исправлю.
← →
VMcL © (2004-08-10 12:49) [20]По поводу DoubleBuffered. Я не так написал. DoubleBuffered нужно фрейму поставить, а не форме, хотя форме тоже можно.
← →
Mystic © (2004-08-10 12:54) [21]По поводу DoubleBuffered. Я не так написал. DoubleBuffered нужно фрейму поставить, а не форме, хотя форме тоже можно.
Поставить-то можно. Только я про нее не знал и реализовал все руками... Точнее выбрал TImage как компонент, буферизирующий вывод... Если я правильно понимаю --- не силен в GDI.
← →
VMcL © (2004-08-10 13:13) [22]>>Mystic © (10.08.04 12:54) [21]
У TImage нету двойной буферизации. Для убирания мерцания можно класть TImage на TWinControl, а у него уже есть св-во DoubleBuffered. AFAIR, у тебя TImage на TFrame лежит. Значит, можно TFrame"у поставить DoubleBuffered := True и мерцание исчезнет.
← →
Dmitriy O. © (2004-08-10 13:32) [23]Зачем в очередной раз изобретать велосипед ? Этих шашек море !
Вот хорошая игра включающая в себя море разных игр в том числе и хороше домино
http://voodoo.mcomm.ru/Archive/Games/DOMINO/HCBG_D.2_0/
← →
Mystic © (2004-08-10 13:38) [24]Честно говоря, я пока что не вижу мерцания. У меня вообще все изменения на канве TImage не отображаются до вызова TImage.Refresh. Так что какая-либо буферизация все же присутсвует.
← →
Mystic © (2004-08-10 13:54) [25]default © (10.08.04 00:08) [16]
думаю стоит устроить голосование по правилам
Ну... может и в футболе руководствоваться голосованием? Заявлено, что программа играет в русские шашки. Правила игры описаны, существует федерация русских шашек, которая проводит (или проводила в прошлом) турниры, ...
В WinME, скорее всего, реализован американский вариант --- чекерсы. Это совсем другая игра. Я потому и взялся писатьшашки, потому что в основно в нашей стране все играют в шашки, а программы я нашел только играющие в чекерсы.
Уровень игры своей программы на максимальном уровне я пока что оцениваю на I-II разряд... Но собираюсь над этим работать.
Dmitriy O. © (10.08.04 13:32) [23]
Этих шашек море !
Не так уж и море. Знакомым шашистам-любителям хорошие сильные программы не попадались... Я не претендую (пока?) на силу игры программы Plus600, или программы Агафонова, но над ними работают гросмейстеры и они платные. Есть более-менее приличная программка http://www.listsoft.ru/programs/2066/ но она тоже шареварная... Я понимаю, что больших денег на этом не заработать, но тут играют роль вопросы другого план: от кодирования алгоритмов я получаю большое внутреннее удовлетворение (близкое к половому).
Могу добавить такую историю. Когда я выставил в сеть одну из своих версий (Мир шашек), я получил письмо от международного гроссмейстера по шашкам (фамилию, к сожалению, забыл, кажеться Саунин). Он очень положительно отозвался о моей программе, о различных ее возможностях (ввод позиции/редактирование, игра в различные виды шашек), отметил, что она хорошо играет в закрытых позициях (эта черта присуща всем программам --- счетная игра). Мы так пару писем пообсуждали эту тему, потом переписка прекратилась... Но положительный момент остался.
← →
VMcL © (2004-08-10 14:09) [26]>>Mystic © (10.08.04 13:54) [25]
>Этих шашек море !
Не обращай вниманий. Это завистники. Ну или, если хочешь успокоить Д.О., переименуй шашки в AvtoDraughts.
← →
Dmitriy O. © (2004-08-10 14:14) [27]
> Это завистники
Нет правда. У меня валялись 3-4 проги с шашками пока я их не потер Теперь одна но оченьхорошая. Хотя я больше в домино играю.
← →
Mystic © (2004-08-10 21:56) [28]Версия 0.1.0.7 (2004-08-10)
[+] Добавлен вывод ходов в партии
[+] Добавлено сохранение партии в область обмена
[+] Добавлена возможность отмены сделаных ходов
[*] Bugfix: При отсутсвии файла дебютной библиотеки выводился Runtine error. Теперь выводится понятное предупреждение.
← →
VMcL © (2004-08-17 19:49) [29]>>Mystic © (10.08.04 21:56) [28]
Эта... может возможность сетевой игры добавишь?
← →
default © (2004-08-17 19:56) [30]кому интересно играть с железякой?!...
надо сетевую делать однозначно!
на счёт правил - я думаю в WinMe более продуманные правила, справедливые что-ли
← →
Igorek © (2004-08-17 21:13) [31]2 Mystic
Насчет уровня игры. Насколько я понимаю он настраеивается числовыми значениями (пока только одним).
Так вот - сделай ползунки для каждого значения - от минимума до максимума (если он есть) - юзер сам под себя подстроит. Ну и сохранение настроек.
← →
VMcL © (2004-08-18 10:01) [32]>>default © (17.08.04 19:56) [30]
>на счёт правил - я думаю в WinMe более продуманные правила, справедливые что-ли
Не слов, одни выражения... [0] читал?
>в этот раз намечается делать упор только на русские шашки
← →
mrcat © (2004-08-18 10:09) [33]>Mystic
шахматы не пробовал делать ? интересно было бы посмотреть
← →
Dmitriy O. © (2004-08-18 10:18) [34]Играть по сети в шашки или шахматы это изврат.
Казаки вот класная сетевая игруха
← →
Mystic © (2004-08-18 10:30) [35]шахматы не пробовал делать ? интересно было бы посмотреть
Лет десять назад пробовал. Получилось очень плохо... Зато написал за два дня :) В принципе большое желание реализовать хороший движок для работы с хэш-таблицами, после чего можно будет реализовать многие переборные игры для двух игроков...
Скоро отпуск (в субботу начало), поэтому работа временно приостановилась. Собираюсь еще поискать книгу Литвиновича "Курс дебюта в русских шашках", чтобы усилить игру в дебюте...
← →
VMcL © (2004-08-18 11:03) [36]>>Mystic © (18.08.04 10:30) [35]
>чтобы усилить игру в дебюте...
Куда усиливать? Я и так с трудом в ничью свожу - чуть зазеваешься и получай фашист гранату... тьфу... дамку :-))
← →
mrcat © (2004-08-18 11:11) [37]Эта нехорошая программа даже на новичке выиграть не даёт :)
← →
default © (2004-08-18 13:09) [38]VMcL © (18.08.04 10:01) [32]
пожалуйста
только кому они нужны будут
кстати новичок-то не такой слабый...
← →
Ann © (2004-08-18 13:21) [39]
> Я и так с трудом в ничью свожу - чуть зазеваешься и получай
> фашист гранату... тьфу... дамку :-))
Это точно! :)
← →
esu (2004-08-18 13:51) [40]выиграл у бегиннера! Правда я запустил программу 2 раза на разных уровнях вложности, ну и играл белыми на бегиннере и черными на среднем ;)
← →
Mim1 © (2004-08-18 14:59) [41]Нажатие Alt+bksp приводит к непонятно/неприятным результатам если в списке нет ходов.
← →
esu (2004-08-18 15:16) [42]Assert ведь стоит :)
procedure TGameHistory.Undo;
var
Last: Integer;
Item: TListItem;
begin
Assert(MoveNo > 0);
MainForm.ViewItem.Click;
...
← →
VMcL © (2004-08-18 15:30) [43]>>default © (18.08.04 13:09) [38]
>только кому они нужны будут
Мне, как минимум.
← →
Bless © (2004-08-18 16:04) [44]Ура!
Я на начальном уравне рву компутерного врага не на шутку
Где-то 1 раз из 6. :)
Заодно узнал правила шашек :)
А то всегда думал, что бой необязательный. И что если бьешь, то сколько хочешь, а не обязательно всех, кого можно побить.
← →
Bless © (2004-08-18 16:11) [45]А замечания по интерфейсу принимаются?
А то у меня есть :)
Имхо, неудобно сделано выделение выбранной шашки. Тонкая зеленая кайма по краям довольно незаметна и после 15 минут от напряжения устают глаза. Может лучше инвертировать цвета выбранной шашки или что-нибудь еще более заметное.
Хотя может это с непривычки.
← →
Mystic © (2004-08-18 16:35) [46]Хорошо, учтем пожелания...
← →
Bless © (2004-08-18 17:02) [47]Расту над собой. Раскатал ничейку на среднем уровне.
А нельзя ли сделать отмену хода? Так было бы легче учиться. Или это против правил шашек?
А почему он так долго думает на уровне эксперта (секунд 9 над первым ходом)?
Никогда не видел, как играют в шашки профессионалы. Они что, думают над каждым ходом так же долго, как шахматисты?
← →
VMcL © (2004-08-18 17:05) [48]>>Bless © (18.08.04 17:02) [47]
Хе. Шахматисты над ходом могут и час думать.
← →
Bless © (2004-08-18 17:08) [49]За шахматистов я в курсе. А шашишсты?
Кстати, когда играл с сильными (по моим меркам) шахматистами, всегда думал, что они притворяются(по крайней мере иногда), будто бы думают, чтоб выводить меня из себя.
← →
VMcL © (2004-08-18 17:57) [50]>>Bless © (18.08.04 17:08) [49]
Притворяться не имеет особо смысла, поскольку любой грамотный шахматист думает, не только во время своего хода, но и во время хода противника :-)
← →
Mystic © (2004-08-18 18:58) [51]В последней версии Alt+BkSp это отмена хода...
Долго думает, потому что библиотеки дебютной нету... Точнее есть хода вне этой библиотеки...
← →
default © (2004-08-18 20:21) [52]кстати да
на проф-ле как-то пробовал играть
так и не доиграл, уж больно долго он думал...больше 5 минут...
← →
Mystic © (2004-08-18 20:56) [53]Я уже говорил, что уровень можно менять а) Res-hacker-ом б) перекомпиляцией. У элементов меню свойство Tag задает силу игры (заодно и время обдумывания хода). Сейчас у ExpertItem это значение равно 60. мне хвалили значение 55.
← →
nikkie © (2004-08-18 21:05) [54]>а) Res-hacker-ом б) перекомпиляцией.
это не наши методы. :)
чтобы не наворачивать интерфейс, можно вписать значения в ини-файл. просто и кому надо, быстро исправит.
← →
iZEN © (2004-08-19 00:51) [55]А на J2ME слабо перенести игрушку?! (Шахматы ChessBuddy уже есть)
Вот бы ещё блютуз-интерфейс приделать (в J2ME/MIDP2.0 возможно), тогда можно было бы вдвоём играть!
P.S. Начинается бум мобильных интеллектуальных игр, не упустите ВРЕМЯ.
← →
Mystic © (2004-08-19 11:04) [56]Видел я этот Chess Buddy... Урвень игры страшно низкий... Имхо, мобилки по производительности не дотягивают до нужного предела...
← →
mrcat © (2004-08-19 11:53) [57]<<шахматы не пробовал делать ? интересно было бы посмотреть
>Mystic
>Лет десять назад пробовал. Получилось очень плохо...
А не знаешь ресурсов в сети по алгоритмам - пусть в общих чертах ? Есть желание написать что-нибудь в районе (хотя бы) III-II разряда, - так, попробовать :)
← →
Анонимщик © (2004-08-19 12:44) [58]Ресурсов по "почти" алгоритмам достаточно много. Вот, например:
http://members.home.nl/matador/chess840.htm
← →
Mystic © (2004-08-19 12:58) [59]А не знаешь ресурсов в сети по алгоритмам - пусть в общих чертах ?
Имхо, начинать лучше самому... Потому как двигаясь по "чужой колее" ты заранее настраиваешь свое мышление на чужие идеи и выше них прыгнуть не сможешь. Я собираюсь начать просто с реализации перебора и хэш-таблиц... Долго собираюсь...
А так --- можно скачать исходники Crafty и попытаться их мучить...
← →
nikkie © (2004-08-19 13:13) [60]>Имхо, начинать лучше самому...
нескажи... есть все-таки база. про минимакс и альфа-бету знать надо. а иначе получится как написание калькулятора без теории.
http://i2r.rusfund.ru/static/489/out_11914.shtml
← →
Mystic © (2004-08-19 15:56) [61]nikkie © (19.08.04 13:13) [60]
Это больше научно-популярная статья... Какой-либо практической пользы от нее мало...
Минимакс это первое и единственное, что приходит в голову... Так, например, начиная писать шашечную программу на первом курсе ХПИ, я такого слова как минимакс не слышал. Но реализовал именно его. Так что если кто не додумался до минимакса, тому рано писать программу (имхо).
Мне кажеться, что та часть статьи, где описывается альфа-бета, очень далека от практики, так что имеет место придумать что-то свое... Большинство программ использую хэш и альфа-бета сводится к написанию процедуры очистки хэша и выбора позиции, для которой будет происходить углубление анализа. Больших проблем для распараллеливания я тоже не нахожу...
Ну и идеи Ботвийника и его ПИОНЕР, не так плохи, как описывается в статье. По крайней мере они имеют право на жизнь и даже частично используются...
← →
mrcat © (2004-08-19 17:18) [62]вот, нашёл сайтик со ссылками - http://chessalex.narod.ru/ - с него и начну
← →
Анонимщик © (2004-08-20 14:51) [63]Не могу не похвастать. На начинающем уровне выигрываю, как у пацана, причем чем лучше думаю, тем быстрее подавляю. Так что, мистик, если найдешь где-нибудь в электронном виде шашечную теорию дебютов, скажи и нам.
Кстати, я как-то слышал, что шахматисты-профессионалы чаще в шашки играют довольно плохо. А вот шашечные гроссмейстеры в шахматы - зачастую не хуже гроссмейстера. С чего бы это, никто не знает.
И еще одно, с го никогда не было желания разобраться?
← →
Mystic © (2004-08-20 16:46) [64]Не знаю... На моей практике наоборот...
Несколько знакомых шашистов (КМС) просто не могли играть в шахматы. А несколько шахматистов (КМС) начав заниматься шашками за год-два выполняли 1-й разряд, КМС. Я и сам шахматист, в шашками начал баловаться после, но несколько скальпов с КМС-ов снял. Считать варианты в шашках проще...
Го игра совсем другого плана... Скачал компьютерную программу и бью ее в хвост и в гриву :) А в клуб не ходил...
← →
Анонимщик © (2004-08-20 16:58) [65]Го игра совсем другого плана... Скачал компьютерную программу и бью ее в хвост и в гриву :) А в клуб не ходил...
Везет тебе, а я наоборот, бьет она меня и в хвост, и в гриву.
← →
nikkie © (2004-08-20 17:27) [66]знал одного перворазрядника-шахматиста, который переключился на шашки. примерно через год стал КМС. обратных примеров не знаю.
>Считать варианты в шашках проще...
это да, хотя я сам ничем не могу похвастать в шашках.
насколько мне помнится, до сих пор нет программы в го, которая выигрывала бы у лучших игроков-людей. вроде за создание такой программы даже приз объявлен. но там полным перебором, как шашках-шахматах, не возьмешь...
← →
Mystic © (2004-08-20 20:10) [67]Мое мнение, что перебор в го там так или иначе присутсвует... Если бы оплачивали сам процесс создания программы для игры в "го", а не по достижении результата... (задумавшись)...
← →
Анонимщик © (2004-08-21 11:36) [68]Mystic
А ты спонсоров найди. Раз конкурс проводится ежегодно и на нем выставляется десяток программ, то сам понимаешь. А приз, кстати, то ли сто тысяч, то ли что-то такое. На сегодняшний день лучшая программа играет на уровне, если не ошибаюсь, шестого дана
← →
Mystic © (2004-08-21 16:14) [69]А ты спонсоров найди.
Чтобы спонсоров искать, надо хоть что-то самому вначале написать. Имхо неэтично говорить: "я все могу, я крут!", --- а при этом ничего не сделать...
К тому же нужной жилки у меня нет.
← →
Анонимщик © (2004-08-21 16:27) [70]О русских шашках, кстати. Не в курсе, случайно, для них реально перебрать абсолютно все возможные позиции?
← →
nikkie © (2004-08-21 22:48) [71]>[61] Mystic © (19.08.04 15:56)
>Это больше научно-популярная статья... Какой-либо практической пользы от нее мало...
не научно-популярные тексты мне как-то и не попадались.
а вообще-то:
>Mystic © (18.09.03 18:17)
>Кстати, на сайте
>http://i2r.rusfund.ru/static/489/out_11914.shtml
>есть сравнительно неплохое описание принципов шахматных программ.
ты сказал. :)
>[70] Анонимщик © (21.08.04 16:27)
>О русских шашках, кстати. Не в курсе, случайно, для них реально перебрать абсолютно все возможные позиции?
реально. но при имеющихся возможностях вычтехники не один год на это потребуется.
для checkers (правила чуть отличаются от русских шашек) такой проект ведется в университете Альберты (Канада). пока что они не закончили, но очень серьезно продвинулись.
http://www.cs.ualberta.ca/~chinook/Breaking News!
We have achieved a milestone in our quest to solve the game of checkers. The White Doctor opening (10-14 22-18 12-16) has been solved: it is a draw. <...>
August 2, 2004
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.65 MB
Время: 0.038 c