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

Видео, книги, журналы, научные статьи, (по тематике форума), наше творчество
Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 20 сен 2020, 10:35

Да, красиво, конечно. Но как на Button писать в уголке (x2)?

Либо придётся делиться исходниками с графо-дрочерами (сорри, такое слово пришло и не хочет уходить), что мне лично совсем не вариант. Либо им придётся долго и подробно нас учить как делать графику и на каких компонентах, да если это ещё будут нестандартные компоненты - кода кучу переписывать. А оно ИМ и НАМ надо?

То, что графика делается ими мастерски - спору нет. Но между представлением в уме или в том же графическом редакторе и возможностью реализации в Lazarus может стоять пропасть (рад был бы ошибаться).
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Михаил Киселев
Сообщения: 521
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 98 раз
Поблагодарили: 58 раз

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

Сообщение Михаил Киселев » 20 сен 2020, 12:17

Думаю можно просто кинуть всю картинку приведенную на главную форму. Сделать множество прозрачных изображений, чтобы по ним кликать можно было с требуемым откликом. Для выбора фигур просто оставить кнопки button или bitbtn как было, только увеличить размер юникод фигур, нам (х2) и прочее не надо, иначе вообще всю игру надо кардинально переписывать, чтоб играть со всеми фигурами на шахматной доске можно было. Да, интересно в bitbtn можно вставлять любое изображение или только однородный цвет? Андрей, ты вроде писал закрашивание bitbtn, не помнишь как там дело обстоит?

Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 20 сен 2020, 14:46

Михаил Киселев писал(а):
20 сен 2020, 12:17
в bitbtn можно вставлять любое изображение
Да, именно так.

Что я могу сказать по новому дизайну. В первую очередь нравятся новые картинки фигур (тогда шахматные шрифты будут не нужны) и идея рисовать крестики (x число).
Если крестики будут рисоваться новым методом, то и лупа не понадобится. Правая кнопка будет отвечать только за перекрашивание.

По идее, надо уметь генерировать картинку (bmp) состоящую из фигуры + x (число) из текста. Потому что все возможные сочетания картинок с цифрами загонять в программу - это извращение. Если у игроделов есть возможность написать пример кода, реализующего приведённую мной схему - пусть они выложат его.
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 22 сен 2020, 08:22

Код: Выделить всё

procedure ClearButton (but: TBitBtn);
begin
but.Caption:='';
but.tag:=0;
but.Font.Size:=11;                                                 // добавлено
SetButtonColor2 (but,  TColor($00EAEAEA),'')
end;
Вот он, код, который очищает клетки. Вижу, тут 11 шрифт, наверное надо на 12 поменять и потестить на разных масштабах.
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Михаил Киселев
Сообщения: 521
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 98 раз
Поблагодарили: 58 раз

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

Сообщение Михаил Киселев » 22 сен 2020, 21:42

В начале игры вообще шрифт 15 выставлен, но он громадный и не все крестики в клетке помещаются. В принципе и 12 шрифтом не все х помещаются когда их больше 4-х.
Обнаружил в юникоде надстрочные символы х, 4,5 . Может стоит менять таблице mb и eb символы: хххх на х4, а в сочетании с фигурой на надстрочный х4? Чтобы воплотить идею мне конечно придется немало подумать и поработать. Но работа осуществима. Как думаете стоит постараться или это не так уж важно?

Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 23 сен 2020, 08:34

Пока ничего не надо менять. Мы ещё не выпустили эталонную версию без глюков. Иначе к старым добавятся возможные новые. И мы запутаемся.
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 23 сен 2020, 11:33

Процедура Append предназначена для открытия текстового файла и добавления записей в файл (запись добавляется в конец файла)
Вы должны использовать процедуру AssignFile, чтобы назначить файл для записи. Только после этого возможна запись в файл.
Чтобы добавленные в файл данные сохранились, необходимо закрыть файл процедурой CloseFile.
Используйте Write или WriteLn для записи данных в файл.

Источник: http://www.delphibasics.ru/Append.php

Пример, как записать текущее время в чат или файл:

Код: Выделить всё

str:=FormatDateTime('hh:nn:ss:zzz', Now);
writeln (str)
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Михаил Киселев
Сообщения: 521
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 98 раз
Поблагодарили: 58 раз

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

Сообщение Михаил Киселев » 24 сен 2020, 19:49

Что уже поправлено в новой версии (2.85f):
1. Компьютер опять не убивает последнюю фигуру и из-за этого странно себя ведёт (Миша сказал, что уже поправил этот глюк)
Исправлено
2. При открытии ряда жёлтые клетки на поле соперника перекрашиваются в зелёные, но фактически остаются жёлтыми
Исправлено
3. После завершения игры происходит перерисовка всего поля стандартным шрифтом (вроде 12). Есть сведения, что на некоторых Виндах этот шрифт выглядит меньше, чем шрифт после начального запуска. Надо выловить в чистом виде этот глюк и решить. Можно в самом начале добавить перерисовку поля 12 шрифтом.
Исправлено в новых играх теперь тоже 15-й шрифт.
4. Что-то там со счётчиком побед и поражений
Исправил
5. Выдавать корректное сообщение при запуске второго экземпляра программы (это решается элементарно парой строк кода).
Ещё не исправили
6. Если после окончания игры нажать на любую клетку на поле противника, то "Ваш таймер" меняется на "Соперника", хотя игра уже закончена.
Ещё не исправили
7. После угадывания фигуры или во время угадывания выделенная жёлтым фигура перекрашивается в зелёный и потом в красный. Пользователь пишет, что должна оставаться жёлтой.
Исправил
8. Люди просят возможность отключать "девушку - болельщицу". Тогда надо будет оставить только реакцию на победу и поражение, если убрана галочка.
Сделано, но надо доработать, чтобы эмоции болельщицы снова включались с первого раза.

Аватара пользователя
Андрей
Архитектор
Сообщения: 5528
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 479 раз
Поблагодарили: 390 раз

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

Сообщение Андрей » 24 сен 2020, 20:55

Да, но тут не сказано про глюк с решётками. И мигание открытых фигур. И задержки хода во время этого.

Не исправлено.
Я спокоен, я возвышаюсь над землёю,
Притягиваю взгляды, знаю, Бог всегда со мною,
Не скрою - планов наперёд не строю,
О том, что было раньше, шепчут годы за спиною.

Михаил Киселев
Сообщения: 521
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 98 раз
Поблагодарили: 58 раз

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

Сообщение Михаил Киселев » 24 сен 2020, 21:53

Отловил и надеюсь исправил глюк с решётками на форме (#). Причина глюка - при повторной игре одна переменная не сбрасывалась до 0.
Глюк мог возникать при повторной игре, если человек выиграл предыдущую игру, а компьютер в той игре не угадал фигуру.
Поэтому в автоигре глюк не мог возникнуть - все время выигрывал компьютер.