Мое творчество. Игра Шахматный сапёр
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов, МО
- Благодарил (а): 1214 раз
- Поблагодарили: 556 раз
Re: Мое творчество. Игра Шахматный сапёр
Да, красиво, конечно. Но как на Button писать в уголке (x2)?
Либо придётся делиться исходниками с графо-дрочерами (сорри, такое слово пришло и не хочет уходить), что мне лично совсем не вариант. Либо им придётся долго и подробно нас учить как делать графику и на каких компонентах, да если это ещё будут нестандартные компоненты - кода кучу переписывать. А оно ИМ и НАМ надо?
То, что графика делается ими мастерски - спору нет. Но между представлением в уме или в том же графическом редакторе и возможностью реализации в Lazarus может стоять пропасть (рад был бы ошибаться).
Либо придётся делиться исходниками с графо-дрочерами (сорри, такое слово пришло и не хочет уходить), что мне лично совсем не вариант. Либо им придётся долго и подробно нас учить как делать графику и на каких компонентах, да если это ещё будут нестандартные компоненты - кода кучу переписывать. А оно ИМ и НАМ надо?
То, что графика делается ими мастерски - спору нет. Но между представлением в уме или в том же графическом редакторе и возможностью реализации в Lazarus может стоять пропасть (рад был бы ошибаться).
-
Михаил Киселев
- Сообщения: 716
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 159 раз
- Поблагодарили: 69 раз
Re: Мое творчество. Игра Шахматный сапёр
Думаю можно просто кинуть всю картинку приведенную на главную форму. Сделать множество прозрачных изображений, чтобы по ним кликать можно было с требуемым откликом. Для выбора фигур просто оставить кнопки button или bitbtn как было, только увеличить размер юникод фигур, нам (х2) и прочее не надо, иначе вообще всю игру надо кардинально переписывать, чтоб играть со всеми фигурами на шахматной доске можно было. Да, интересно в bitbtn можно вставлять любое изображение или только однородный цвет? Андрей, ты вроде писал закрашивание bitbtn, не помнишь как там дело обстоит?
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов, МО
- Благодарил (а): 1214 раз
- Поблагодарили: 556 раз
Re: Мое творчество. Игра Шахматный сапёр
Да, именно так.
Что я могу сказать по новому дизайну. В первую очередь нравятся новые картинки фигур (тогда шахматные шрифты будут не нужны) и идея рисовать крестики (x число).
Если крестики будут рисоваться новым методом, то и лупа не понадобится. Правая кнопка будет отвечать только за перекрашивание.
По идее, надо уметь генерировать картинку (bmp) состоящую из фигуры + x (число) из текста. Потому что все возможные сочетания картинок с цифрами загонять в программу - это извращение. Если у игроделов есть возможность написать пример кода, реализующего приведённую мной схему - пусть они выложат его.
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 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;
-
Михаил Киселев
- Сообщения: 716
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 159 раз
- Поблагодарили: 69 раз
Re: Мое творчество. Игра Шахматный сапёр
В начале игры вообще шрифт 15 выставлен, но он громадный и не все крестики в клетке помещаются. В принципе и 12 шрифтом не все х помещаются когда их больше 4-х.
Обнаружил в юникоде надстрочные символы х, 4,5 . Может стоит менять таблице mb и eb символы: хххх на х4, а в сочетании с фигурой на надстрочный х4? Чтобы воплотить идею мне конечно придется немало подумать и поработать. Но работа осуществима. Как думаете стоит постараться или это не так уж важно?
Обнаружил в юникоде надстрочные символы х, 4,5 . Может стоит менять таблице mb и eb символы: хххх на х4, а в сочетании с фигурой на надстрочный х4? Чтобы воплотить идею мне конечно придется немало подумать и поработать. Но работа осуществима. Как думаете стоит постараться или это не так уж важно?
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов, МО
- Благодарил (а): 1214 раз
- Поблагодарили: 556 раз
Re: Мое творчество. Игра Шахматный сапёр
Пока ничего не надо менять. Мы ещё не выпустили эталонную версию без глюков. Иначе к старым добавятся возможные новые. И мы запутаемся.
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов, МО
- Благодарил (а): 1214 раз
- Поблагодарили: 556 раз
Re: Мое творчество. Игра Шахматный сапёр
Процедура Append предназначена для открытия текстового файла и добавления записей в файл (запись добавляется в конец файла)
Вы должны использовать процедуру AssignFile, чтобы назначить файл для записи. Только после этого возможна запись в файл.
Чтобы добавленные в файл данные сохранились, необходимо закрыть файл процедурой CloseFile.
Используйте Write или WriteLn для записи данных в файл.
Источник: http://www.delphibasics.ru/Append.php
Пример, как записать текущее время в чат или файл:
Вы должны использовать процедуру 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. При открытии ряда жёлтые клетки на поле соперника перекрашиваются в зелёные, но фактически остаются жёлтыми
Исправлено в новых играх теперь тоже 15-й шрифт.3. После завершения игры происходит перерисовка всего поля стандартным шрифтом (вроде 12). Есть сведения, что на некоторых Виндах этот шрифт выглядит меньше, чем шрифт после начального запуска. Надо выловить в чистом виде этот глюк и решить. Можно в самом начале добавить перерисовку поля 12 шрифтом.
Исправил4. Что-то там со счётчиком побед и поражений
Ещё не исправили5. Выдавать корректное сообщение при запуске второго экземпляра программы (это решается элементарно парой строк кода).
Ещё не исправили6. Если после окончания игры нажать на любую клетку на поле противника, то "Ваш таймер" меняется на "Соперника", хотя игра уже закончена.
Исправил7. После угадывания фигуры или во время угадывания выделенная жёлтым фигура перекрашивается в зелёный и потом в красный. Пользователь пишет, что должна оставаться жёлтой.
Сделано, но надо доработать, чтобы эмоции болельщицы снова включались с первого раза.8. Люди просят возможность отключать "девушку - болельщицу". Тогда надо будет оставить только реакцию на победу и поражение, если убрана галочка.
-
Андрей Карпишин
- Архитектор
- Сообщения: 9195
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов, МО
- Благодарил (а): 1214 раз
- Поблагодарили: 556 раз
Re: Мое творчество. Игра Шахматный сапёр
Да, но тут не сказано про глюк с решётками. И мигание открытых фигур. И задержки хода во время этого.
Не исправлено.
Не исправлено.
-
Михаил Киселев
- Сообщения: 716
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 159 раз
- Поблагодарили: 69 раз
Re: Мое творчество. Игра Шахматный сапёр
Отловил и надеюсь исправил глюк с решётками на форме (#). Причина глюка - при повторной игре одна переменная не сбрасывалась до 0.
Глюк мог возникать при повторной игре, если человек выиграл предыдущую игру, а компьютер в той игре не угадал фигуру.
Поэтому в автоигре глюк не мог возникнуть - все время выигрывал компьютер.
Глюк мог возникать при повторной игре, если человек выиграл предыдущую игру, а компьютер в той игре не угадал фигуру.
Поэтому в автоигре глюк не мог возникнуть - все время выигрывал компьютер.