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

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

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

Сообщение Михаил Киселев » 30 дек 2017, 11:29

Создал свою компьютерную игру, она похожа на Морской бой и Сапёр, но чтобы насладиться победой, здесь надо немного подумать. Вместо кораблей на поле расставляются шахматные фигуры.

Шахматный бой отлично развивает навык видения свободных и битых полей, что очень пригодится и при игре в Шахматы.

Чтобы играть и выигрывать в Шахматный бой, уметь играть в Шахматы не обязательно, но моя игра - это и первый шаг к Шахматам.

Посмотреть и скачать игру можно здесь: https://yadi.sk/d/8F6d9mD_3A954s

Изображение

Если кому удалось выиграть у компа - пишите и шлите скриншоты :)

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

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

Сообщение Андрей » 30 дек 2017, 11:42

Помню-помню, :)
помогал писать немного ваш покорный слуга )
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Михаил Киселев » 30 дек 2017, 11:51

Андрей писал(а):Источник цитаты Помню-помню,
помогал писать немного ваш покорный слуга )

Это точно. Но Шахматный бой с тех пор значительно изменился, сейчас с пятью фигурами у компа попробуй выиграть, впрочем, думаю, тебе это конечно удастся :)

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

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

Сообщение Андрей » 30 дек 2017, 12:09

С первого раза выиграл:
mihhim.png


Дело в том, что у меня сейчас хорошо работает интеллект (ясная голова) + я понял некоторую закономерность - связь с моей дипломной работой по языку Паскаль - игрой Морской Бой, я там делал 2 уровня сложности, на уровне Хард компьютер не целился в небитые поля. Поэтому я применил похожую на анти-Хард расстановку.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Андрей » 30 дек 2017, 12:11

Михаил, есть огромное желание, чтобы ты чуть улучшил проект.

Ты можешь выделять-подсвечивать светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.

Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Михаил Киселев » 30 дек 2017, 12:20

Андрей писал(а):Источник цитаты С первого раза выиграл:

Андрей писал(а):Источник цитаты Ты можешь выделять светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.

Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.


Спасибо за совет! Попробую применить его на практике.

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

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

Сообщение Андрей » 12 янв 2018, 22:32

Ответ на вопрос: почему нельзя поменять цвет кнопки (TButton) в Lazarus.
http://forum.lazarus.freepascal.org/ind ... ic=12706.0

Windows native button does not allow this.
It's documented in Wiki under "Things that will never be fixed":
http://wiki.lazarus.freepascal.org/Laza ... be_changed


Перевожу:
Родные кнопки Windows не позволяют это делать.
Это задокументировано в Wiki в разделе "Вещи, которые никогда не будут исправлены".
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Андрей » 12 янв 2018, 23:34

В общем, я поизучал ресурс CyberForum и нашёл всего пару толковых рекомендаций на этот счёт.

1. Использовать вместо кнопки TPanel.
2. Использовать не TButton, а TBitBtn и прописывать ей свойство Glyph.

Так как у тебя игровые ячейки всё же щёлкаются мышью, а компонент TPanel статичен при нажатии мышью, остаётся 2-й вариант.

Вот нужный код:

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

procedure SetButtonColor(ABitBtn: TBitBtn; AColor: TColor; Caption :string);
var
   Bmp: Graphics.TBitmap;
begin
   Bmp:=TBitmap.Create;
   try
      Bmp.Width:=ABitBtn.Width-4;
      Bmp.Height:=ABitBtn.Height-4;
      Bmp.Canvas.Font.Assign(ABitBtn.Font);

      // Fill TBitmap by color
      Bmp.Canvas.Brush.Color:=AColor;
      Bmp.Canvas.Brush.Style:=bsSolid;
      Bmp.Canvas.FillRect(Rect(2,2,Bmp.Width-2,Bmp.Height-2));
      ABitBtn.Caption:=Caption;

      // Show color in the middle
      Bmp.Canvas.Pen.Color:=ABitBtn.Font.Color;
      Bmp.Canvas.TextOut((Bmp.Width-Bmp.Canvas.TextWidth(ABitBtn.Caption)) div 2,
                         (Bmp.Height-Bmp.Canvas.TextHeight(ABitBtn.Caption)) div 2,
                          Caption);
      ABitBtn.Caption:='';
      ABitBtn.Glyph.Assign(Bmp);
   finally
      Bmp.Free;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Panel1.Color = clBtnFace then
  begin
  Panel1.Color:=TColor($7070FF);
  SetButtonColor (BitBtn1, TColor($7070FF), 'XXX');
  end
                            else
  begin
  Panel1.Color:=clBtnFace;
  BitBtn1.Glyph.Assign (nil);
  BitBtn1.Caption:='XXX';
  end;
end;
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Андрей » 12 янв 2018, 23:42

Это я делал на Дельфи, но я думаю, на Лазарус ты перенесёшь. Во вложении архив с этой прогой, можешь глянуть, как выглядит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

Сообщение Михаил Киселев » 13 янв 2018, 08:21

Спасибо. То, что компонент button цвет не поддерживает я уже успел до Рождества выяснить и думал, что ничего из затеи с расцвечеиванием кнопок не выйдет, а тут такое перспективное решение :-)
Если возникнут по ходу реализации вопросы здесь в личку или в VK лучше спрашивать?


Вернуться в «МЕДИАТЕКА»

Кто сейчас на конференции

Сейчас этот форум просматривают: CCBot [Bot] и 0 гостей