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

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

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

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

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

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

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

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

Изображение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

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

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

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

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

Ответ на вопрос: почему нельзя поменять цвет кнопки (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 в разделе "Вещи, которые никогда не будут исправлены".
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

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

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

В общем, я поизучал ресурс 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;
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

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

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

Это я делал на Дельфи, но я думаю, на Лазарус ты перенесёшь. Во вложении архив с этой прогой, можешь глянуть, как выглядит.
Вложения
Project1.rar
(161.35 КБ) 14 скачиваний
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

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

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

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