IPB
ЛогинПароль:

> Игра ШАХМАТЫ
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  1  +


Зацените игрушку. Писал давно, ради интереса. AI не очень сильный, но меня порой обыгрывает :) управлять можно как мышкой так и клавиатурой. В исходнике много комментариев (даже наверное чересчур), зато нетрудно понять как она работает.


Прикрепленные файлы
Прикрепленный файл  CHESS.PAS ( 39.11 килобайт ) Кол-во скачиваний: 2920
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Разработчик
Free Pascal: Разработчик

Репутация: -  627  +


Sybreed
Цитата
клавиатура и мышь и так прекрасно работают, что там оптимизировать?
Там еще до оптимизации работы полно. Начнем с того, что у тебя вообще не проверяется наличие мыши (я понимаю, что найти сейчас компьютер без мыши - невозможно, но прежде, чем работать с чем-то ты обязан убедиться в его наличии). Инициализации мыши тоже нет (и не надо опять говорить, что оно и так работает. Где-то сработает, где-то нет).

Строка 1116.
if not changed then ...
А что, Changed где-то инициализировалась? Не вижу этого в коде. Никогда не оставляй неинициализированных переменных (то, что это и так работает - не аргумент. Это неправильно, обращаться к переменной, инициализация которой тобой произведена не была).

По поводу "оптимизировать". Я бы не разделял события от клавиатуры и от мыши. То есть, разделять их, конечно, надо, но не в основной программе. Пишется отдельный модуль, который обрабатывает твои действия с клавиатурой и мышью, и возвращает, какое событие произошло, а в основной программе ты просто ждешь наступления любого события из тех, которые возвращаются модулем, и обрабатываешь его. Это упростит код.

Опять же, зачем понадобилось эмулировать движение мыши по экрану, с необходимостью отрисовки ее "курсора" через putimage, если драйвер позволяет вообще не заботиться об этом, задать графический курсор любой формы и все движение будет происходить автоматически, все, что останется - "гасить" курсор перед обновлением экрана, и "зажигать" после обновления? Тут есть все, что нужно для реализации подобного поведения.

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Sybreed   Игра ШАХМАТЫ   24.08.2011 4:30
Lapp   Зацените игрушку. Писал давно, ради интереса. AI н…   24.08.2011 11:09
Lapp   Кажется, я понял, почему замена 4 на 5 не принесла…   25.08.2011 12:19
Sybreed   мм... ну отрисовку я улучшил как мог, сначала пыта…   26.08.2011 0:10
Lapp   мм... ну отрисовку я улучшил как мог, сначала пыта…   26.08.2011 13:54
IUnknown   Sybreed Там еще до оптимизации работы полно. Начне…   26.08.2011 15:25
Lapp   Никогда не оставляй неинициализированных переменны…   26.08.2011 16:03
TarasBer   > Начнем с того, что у тебя вообще не проверяет…   29.08.2011 14:01
IUnknown   Открою тебе тайну: в современном мире программисты…   29.08.2011 14:12
TarasBer   > Но к тебе это, разумеется, не относится - ты …   29.08.2011 14:24
TarasBer   В общем я, как и обещал, посмотрел игру дома. Крут…   5.09.2011 13:29
Рамз)   Зацените игрушку. Писал давно, ради интереса. AI …   30.10.2011 16:39
Lilit   у меня игра не работает....((((что делать????   19.09.2013 20:48
Sybreed   отписываюсь о некоторых ошибках, которые нашел в ш…   23.11.2014 21:12


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 14.10.2019 22:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name