Игра ШАХМАТЫ |
Игра ШАХМАТЫ |
Sybreed |
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 1 |
Зацените игрушку. Писал давно, ради интереса. AI не очень сильный, но меня порой обыгрывает :) управлять можно как мышкой так и клавиатурой. В исходнике много комментариев (даже наверное чересчур), зато нетрудно понять как она работает.
Прикрепленные файлы CHESS.PAS ( 39.11 килобайт ) Кол-во скачиваний: 3502 |
IUnknown |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: 627 |
Sybreed
Цитата клавиатура и мышь и так прекрасно работают, что там оптимизировать? Там еще до оптимизации работы полно. Начнем с того, что у тебя вообще не проверяется наличие мыши (я понимаю, что найти сейчас компьютер без мыши - невозможно, но прежде, чем работать с чем-то ты обязан убедиться в его наличии). Инициализации мыши тоже нет (и не надо опять говорить, что оно и так работает. Где-то сработает, где-то нет).Строка 1116. if not changed then ... А что, Changed где-то инициализировалась? Не вижу этого в коде. Никогда не оставляй неинициализированных переменных (то, что это и так работает - не аргумент. Это неправильно, обращаться к переменной, инициализация которой тобой произведена не была). По поводу "оптимизировать". Я бы не разделял события от клавиатуры и от мыши. То есть, разделять их, конечно, надо, но не в основной программе. Пишется отдельный модуль, который обрабатывает твои действия с клавиатурой и мышью, и возвращает, какое событие произошло, а в основной программе ты просто ждешь наступления любого события из тех, которые возвращаются модулем, и обрабатываешь его. Это упростит код. Опять же, зачем понадобилось эмулировать движение мыши по экрану, с необходимостью отрисовки ее "курсора" через putimage, если драйвер позволяет вообще не заботиться об этом, задать графический курсор любой формы и все движение будет происходить автоматически, все, что останется - "гасить" курсор перед обновлением экрана, и "зажигать" после обновления? Тут есть все, что нужно для реализации подобного поведения. Сообщение отредактировано: IUnknown - |
Текстовая версия | 28.03.2024 18:17 |