Мое творчество. Игра Шахматный сапёр

Видео, книги, журналы, научные статьи, (по тематике форума), наше творчество
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Андрей писал(а):Сегодня мной была решена проблема очистки доски на XP.
Хотелось бы узнать, как это удалось? В чем была причина неполадки?
Андрей писал(а): Исходники высылаю Михаилу Киселеву, и хотелось бы от него решения этого пункта:
Михаил Киселев писал(а): Сохранять в настройках со сколькими фигурами играл в последний раз
Попробую, может получится, но придется наверное долго разбираться как передавать и как считывать информацию о кол-ве фигур из файла ini, такого я до этого никогда не делал.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей »

Михаил Киселев писал(а): Хотелось бы узнать, как это удалось? В чем была причина неполадки?
Проблема с указателями (pointers). При подстановке nil при второй очистке всегда была ошибка (при второй почему-то!).
Такая же ошибка была если вместо nil присваивать BMP размером 0x0 пикселов.

Тогда я как и предлагал ранее использовал сначала квадрат, размером 5x5 пикселов, цвета blNone т.е. прозрачного,
а потом вообще уменьшил до 1x1 пикселов, тем же цветом. (мало ли!). Если цвет делать непрозрачный (белый, к примеру), то маленькие беленькие точки были чуть видны, когда 2x2.

P.S. Подозреваю что проблема с указателями связана с тем, что BMP мы не разместили на форме, а создаём в процедуре и там же уничтожаем. Но теперь это уже малозначимо.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей »

Михаил Киселев писал(а): Попробую, может получится, но придется наверное долго разбираться как передавать и как считывать информацию о кол-ве фигур из файла ini, такого я до этого никогда не делал.
в INI-файле у меня каждый параметр на следующей строке.
проанализируй как сохраняется задержка и сделай по аналогии, следующей строкой.
Аватара пользователя
BDK
Сообщения: 3665
Зарегистрирован: 17 май 2015, 23:27
Откуда: Беларусь
Благодарил (а): 152 раза
Поблагодарили: 388 раз
Контактная информация:

Re: Мое творчество. Игра Шахматный бой

Сообщение BDK »

Я для себя давно сделал универсальный формат данных в который можно запихнуть любые данные. И затем данные в этом формате могут сохраняться в файл и загружаться из файла - таким образом я больше никогда не делаю бесчисленных специальных форматов данных и форматов файлов. Мне не нужно каждый раз писать новую процедуру сохранения данных в файл и чтения данных из файла - я использую написанную один раз давным давно - существенно экономя время.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Андрей, подскажи пожалуйста с какими параметрами можно вызвать procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction); из option2 в gam7.pas чтобы она работала без ошибок и именно в нужный момент записывала данные в файл ini.
А то данные в файл .ini записываются только после нажатия на кнопку настройки.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей »

Версия 1.80. Без глюков. (Вырезан хелп, так как там висят огромные PNG - тупизм. Надо использовать JPG.)

+ Сохраняется в настройках со сколькими фигурами играл в последний раз
+ Исправлены баги непрорисовки битых полей до момента появления картинок (эту часть делал не я, поэтому сразу этот баг не увидел)

Единственный известный недочёт (уже писал об этом)
- когда компьютер открывает твой ряд, первая клетка ряда остается не прорисованной до самого конца открытия (уверен, что этот баг лечится, но на сегодня времени больше нет)

Планы
- Сетевая игра против человека
ChessBat_v1_80.rar
(781.93 КБ) 7 скачиваний
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Исправлены баги непрорисовки битых полей до момента появления картинок .
Отлично, я с этим долго безуспешно бился. Что там за баг был. Если не особо сложно, как ты сделал, что сейчас работает нормально?
А насчет хелпа, его опять надо переписать. Картинки то другие теперь, и шрифт поменялся шахматных фигур. Как будет готова сетевая игра займусь. А то опять наверное новая кнопка будет и как по сети играть, надо об'яснить будет. Впрочем насчет сетевой игры, это наверное уже, ты Андрей сначала об'яснишь. :-)
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

По поводу хелпа. Посмотрел у меня картинки экранов изначально были сохранены в jpg файлах. Но я их копировал в Ворд 2007 методом копипаста. И уже ворд их сохранил в png. Так что здесь проблема. Надо как-то по другому хелп сохранять. Каким-нибудь другим html редактором воспользоваться. Не подскажете, какой установить?
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный бой

Сообщение Михаил Киселев »

Андрей, посмотри насчет бага. При игре с тремя фигурами, после проигрыша и нажатии на кнопку показать фигуры противника на клетке e4 вместо ладьи появился слон.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный бой

Сообщение Андрей »

Михаил Киселев писал(а):Андрей, посмотри насчет бага. При игре с тремя фигурами, после проигрыша и нажатии на кнопку показать фигуры противника на клетке e4 вместо ладьи появился слон.
Хорошо бы сюда скриншот. Вряд ли я буду сам этот баг отлавливать... скорее тебе исходник вышлю.
Ответить