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

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

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

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

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

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

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

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

Изображение

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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 в разделе "Вещи, которые никогда не будут исправлены".
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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;
Конец жизни – это начало жизни где-то,
Ничто не появляется из ниоткуда, даже планеты.
И мы летим вперёд, доверившись Божественным вёслам,
Не бойся будущего, не жалей о прошлом.

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

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

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

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

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

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

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

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


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

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

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