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

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

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

Сообщение Андрей Карпишин »

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

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

То, что графика делается ими мастерски - спору нет. Но между представлением в уме или в том же графическом редакторе и возможностью реализации в Lazarus может стоять пропасть (рад был бы ошибаться).
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

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

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

Думаю можно просто кинуть всю картинку приведенную на главную форму. Сделать множество прозрачных изображений, чтобы по ним кликать можно было с требуемым откликом. Для выбора фигур просто оставить кнопки button или bitbtn как было, только увеличить размер юникод фигур, нам (х2) и прочее не надо, иначе вообще всю игру надо кардинально переписывать, чтоб играть со всеми фигурами на шахматной доске можно было. Да, интересно в bitbtn можно вставлять любое изображение или только однородный цвет? Андрей, ты вроде писал закрашивание bitbtn, не помнишь как там дело обстоит?
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9194
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

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

Сообщение Андрей Карпишин »

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

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

По идее, надо уметь генерировать картинку (bmp) состоящую из фигуры + x (число) из текста. Потому что все возможные сочетания картинок с цифрами загонять в программу - это извращение. Если у игроделов есть возможность написать пример кода, реализующего приведённую мной схему - пусть они выложат его.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9194
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

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

Сообщение Андрей Карпишин »

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

procedure ClearButton (but: TBitBtn);
begin
but.Caption:='';
but.tag:=0;
but.Font.Size:=11;                                                 // добавлено
SetButtonColor2 (but,  TColor($00EAEAEA),'')
end;
Вот он, код, который очищает клетки. Вижу, тут 11 шрифт, наверное надо на 12 поменять и потестить на разных масштабах.
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

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

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

В начале игры вообще шрифт 15 выставлен, но он громадный и не все крестики в клетке помещаются. В принципе и 12 шрифтом не все х помещаются когда их больше 4-х.
Обнаружил в юникоде надстрочные символы х, 4,5 . Может стоит менять таблице mb и eb символы: хххх на х4, а в сочетании с фигурой на надстрочный х4? Чтобы воплотить идею мне конечно придется немало подумать и поработать. Но работа осуществима. Как думаете стоит постараться или это не так уж важно?
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9194
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

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

Сообщение Андрей Карпишин »

Пока ничего не надо менять. Мы ещё не выпустили эталонную версию без глюков. Иначе к старым добавятся возможные новые. И мы запутаемся.
Аватара пользователя
Андрей Карпишин
Архитектор
Сообщения: 9194
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 1214 раз
Поблагодарили: 556 раз

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

Сообщение Андрей Карпишин »

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

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

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

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

str:=FormatDateTime('hh:nn:ss:zzz', Now);
writeln (str)
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

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

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

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

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

Сообщение Андрей Карпишин »

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

Не исправлено.
Михаил Киселев
Сообщения: 716
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 159 раз
Поблагодарили: 69 раз

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

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

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