| Sybreed |
24.08.2011 0:30
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 1 |
Зацените игрушку. Писал давно, ради интереса. AI не очень сильный, но меня порой обыгрывает :) управлять можно как мышкой так и клавиатурой. В исходнике много комментариев (даже наверное чересчур), зато нетрудно понять как она работает.
Прикрепленные файлы
CHESS.PAS ( 39.11 килобайт )
Кол-во скачиваний: 54370 |
![]() ![]() |
| Lapp |
25.08.2011 8:19
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Кажется, я понял, почему замена 4 на 5 не принесла улучшения.. Поскольку это полуходы (то есть ходы только одной стороны, то убеличивать нужно только на два - то есть, чтоб число оставалось четным. Так? ))
Далее, мне показался не очень убедительным аргумент в комментравиях: Цитата {если максимальная оценка хода для игрока А (альфа) превысила Я закомментировал вторую часть условия в идущим за ним операторе if:максимальную нценку для игрока Б (бета), которая была получена на предыдущем ходе, то мы может досрочно прекратить перебор и вернуть альфа в качестве результата, т.к. уровнем выше мы все равно выберем ход с максимальной оценкой (альфа) и поднимать ее еще выше не имеет смысла. Если мы продолжим перебор то альфа будет только увеличиваться} while (a<>list.c+1) {and (alpha<beta)} do
После этого думать она стала, вроде, подольше, но играть стала (тоже вроде) получше - кажется? Пока еще не собрался поглубже посмотреть код. Но, надеюсь, скоро соберусь (если кто-нибудь не сделает этого раньше)) ... Немного посмотрел.. Задача разбивается на четыре. 1. Алгоритм подсчета целевой функции. Он занимает не очень много места - процедуры evaluate и search, а также константы (вес). Если его оптимизировать, можно будет увеличить глубину до 6. 2. Определение корректности хода. Эта часть приличная по объему. Логику надо улучшить.. 3. Графика. Мммм.. Ну просто руки чешутся все переделать )). 4. Управление (клава и мышь). Тоже нужно поменять организацию, даже если оставаться в рамках DOS. Конечно, желательно было бы всю прогу так и организовать - по этим разделам.. Попробовал внести некоторые изменения в отрисовку - чуть голову не сломал.. Но работает, и это плюс! )) Надо было сделать паттерны для всего, включая пустые клетки и фигуры на подсвеченных полях. Памяти же не жалко )). Было бы значительно лучше со всех точек зрения. Ну что, продолжать? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Sybreed Игра ШАХМАТЫ 24.08.2011 0:30
Lapp Зацените игрушку. Писал давно, ради интереса. AI н... 24.08.2011 7:09
Sybreed мм... ну отрисовку я улучшил как мог, сначала пыта... 25.08.2011 20:10
Lapp мм... ну отрисовку я улучшил как мог, сначала пыта... 26.08.2011 9:54
IUnknown Sybreed
Там еще до оптимизации работы полно. Начне... 26.08.2011 11:25
Lapp Никогда не оставляй неинициализированных переменны... 26.08.2011 12:03
TarasBer > Начнем с того, что у тебя вообще не проверяет... 29.08.2011 10:01
IUnknown Открою тебе тайну: в современном мире программисты... 29.08.2011 10:12
TarasBer > Но к тебе это, разумеется, не относится - ты ... 29.08.2011 10:24
TarasBer В общем я, как и обещал, посмотрел игру дома. Крут... 5.09.2011 9:29
Рамз)
Зацените игрушку. Писал давно, ради интереса. AI ... 30.10.2011 12:39
Lilit у меня игра не работает....((((что делать???? 19.09.2013 16:48
Sybreed отписываюсь о некоторых ошибках, которые нашел в ш... 23.11.2014 17:12![]() ![]() |
|
Текстовая версия | 10.12.2025 19:17 |