Создал свою компьютерную игру, она похожа на Морской бой и Сапёр, но чтобы насладиться победой, здесь надо немного подумать. Вместо кораблей на поле расставляются шахматные фигуры.
Шахматный бой отлично развивает навык видения свободных и битых полей, что очень пригодится и при игре в Шахматы.
Чтобы играть и выигрывать в Шахматный бой, уметь играть в Шахматы не обязательно, но моя игра - это и первый шаг к Шахматам.
Андрей писал(а): Помню-помню,
помогал писать немного ваш покорный слуга )
Это точно. Но Шахматный бой с тех пор значительно изменился, сейчас с пятью фигурами у компа попробуй выиграть, впрочем, думаю, тебе это конечно удастся
Дело в том, что у меня сейчас хорошо работает интеллект (ясная голова) + я понял некоторую закономерность - связь с моей дипломной работой по языку Паскаль - игрой Морской Бой, я там делал 2 уровня сложности, на уровне Хард компьютер не целился в небитые поля. Поэтому я применил похожую на анти-Хард расстановку.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Михаил, есть огромное желание, чтобы ты чуть улучшил проект.
Ты можешь выделять-подсвечивать светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.
Т.е. я предлагаю подключить 1 (может и 2 - если понадобится) цвЕта для клеток.
Андрей писал(а): Ты можешь выделять светло-красным цветом те клетки, в которые уже пробили? Хочется более наглядного отображения динамики игры (в этом весь азарт!), на крестиках теряется глаз, замыливается.
Т.е. я предлагаю подключить 1 (может и 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;
Спасибо. То, что компонент button цвет не поддерживает я уже успел до Рождества выяснить и думал, что ничего из затеи с расцвечиванием кнопок не выйдет, а тут такое перспективное решение
Если возникнут по ходу реализации вопросы здесь в личку или в VK лучше спрашивать?