Создал свою компьютерную игру, она похожа на Морской бой и Сапёр, но чтобы насладиться победой, здесь надо немного подумать. Вместо кораблей на поле расставляются шахматные фигуры.
Шахматный бой отлично развивает навык видения свободных и битых полей, что очень пригодится и при игре в Шахматы.
Чтобы играть и выигрывать в Шахматный бой, уметь играть в Шахматы не обязательно, но моя игра - это и первый шаг к Шахматам.
Посмотреть и скачать игру можно здесь: https://yadi.sk/d/8F6d9mD_3A954s
Если кому удалось выиграть у компа - пишите и шлите скриншоты
Мое творчество. Игра Шахматный сапёр
-
- Сообщения: 704
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 154 раза
- Поблагодарили: 66 раз
Re: Мое творчество. Игра Шахматный бой
Это точно. Но Шахматный бой с тех пор значительно изменился, сейчас с пятью фигурами у компа попробуй выиграть, впрочем, думаю, тебе это конечно удастся
-
- Архитектор
- Сообщения: 7472
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 600 раз
- Поблагодарили: 471 раз
Re: Мое творчество. Игра Шахматный бой
С первого раза выиграл:
Дело в том, что у меня сейчас хорошо работает интеллект (ясная голова) + я понял некоторую закономерность - связь с моей дипломной работой по языку Паскаль - игрой Морской Бой, я там делал 2 уровня сложности, на уровне Хард компьютер не целился в небитые поля. Поэтому я применил похожую на анти-Хард расстановку.У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Архитектор
- Сообщения: 7472
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 600 раз
- Поблагодарили: 471 раз
Re: Мое творчество. Игра Шахматный бой
Михаил, есть огромное желание, чтобы ты чуть улучшил проект.
Ты можешь выделять-подсвечивать светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.
Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.
Ты можешь выделять-подсвечивать светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.
Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.
-
- Сообщения: 704
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 154 раза
- Поблагодарили: 66 раз
-
- Архитектор
- Сообщения: 7472
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 600 раз
- Поблагодарили: 471 раз
Re: Мое творчество. Игра Шахматный бой
Ответ на вопрос: почему нельзя поменять цвет кнопки (TButton) в Lazarus.
http://forum.lazarus.freepascal.org/ind ... ic=12706.0
Родные кнопки Windows не позволяют это делать.
Это задокументировано в Wiki в разделе "Вещи, которые никогда не будут исправлены".
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 в разделе "Вещи, которые никогда не будут исправлены".
-
- Архитектор
- Сообщения: 7472
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 600 раз
- Поблагодарили: 471 раз
Re: Мое творчество. Игра Шахматный бой
В общем, я поизучал ресурс CyberForum и нашёл всего пару толковых рекомендаций на этот счёт.
1. Использовать вместо кнопки TPanel.
2. Использовать не TButton, а TBitBtn и прописывать ей свойство Glyph.
Так как у тебя игровые ячейки всё же щёлкаются мышью, а компонент TPanel статичен при нажатии мышью, остаётся 2-й вариант.
Вот нужный код:
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;
-
- Архитектор
- Сообщения: 7472
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 600 раз
- Поблагодарили: 471 раз
Re: Мое творчество. Игра Шахматный бой
Это я делал на Дельфи, но я думаю, на Лазарус ты перенесёшь. Во вложении архив с этой прогой, можешь глянуть, как выглядит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Сообщения: 704
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 154 раза
- Поблагодарили: 66 раз
Re: Мое творчество. Игра Шахматный бой
Спасибо. То, что компонент button цвет не поддерживает я уже успел до Рождества выяснить и думал, что ничего из затеи с расцвечиванием кнопок не выйдет, а тут такое перспективное решение
Если возникнут по ходу реализации вопросы здесь в личку или в VK лучше спрашивать?
Если возникнут по ходу реализации вопросы здесь в личку или в VK лучше спрашивать?