Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
5th
Ноя
Крестики нолики исходник
Posted by Chas under Delphi, Исходники
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, Grids;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
ScrollBox1: TScrollBox;
TabSheet1: TTabSheet;
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
DrawGrid1: TDrawGrid;
procedure FormCreate(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
Type TKrestikeNolice=(KrKrestik, KrNolic);
Type TRubachkaType=(TlRubachka, TlNolice, TlKrestike);
Type TilesMap=record
TypeRubachkaType:TRubachkaType;
end;
var
Form1: TForm1;
TypeHod:Array of Array of TRubachkaType;
Hod:TKrestikeNolice;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Bitbtn1.Align:=AlTop;
Bitbtn2.Align:=AlTop;
Bitbtn3.Align:=AlTop;
Bitbtn4.Align:=AlTop;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
Var bit:TBitmap;
I,I1:Integer;
begin
Randomize;
RadioGroup1.Enabled:=True;
RadioGroup1.Buttons[1].Enabled:=False;
RadioGroup1.Buttons[2].Enabled:=False;
Radiogroup1.ItemIndex:=0;
DrawGrid1.Width:=161;
DrawGrid1.Height:=161;
Drawgrid1.Left:=0;
Drawgrid1.Top:=0;
DrawGrid1.RowCount:=3;
DrawGrid1.ColCount:=3;
BitBtn3.Enabled:=False;
Hod:=TKrestikeNolice(Random(2));
SetLength(TypeHod,3,3);
For i:= 0 to 2 do For i1:=0 to 2 do
TypeHod[i,i1]:=TlRubachka;
end;
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
Var bit:TBitmap;
X,Y,i,i1:Integer;
begin
bit:=TBitmap.Create;
Case typeHod[ACol, ARow] of
TlRubachka:bit.LoadFromFile(ExtractFileDir(Application.ExeName)+'\resRub.bmp');
TlNolice:bit.LoadFromFile(ExtractFileDir(Application.ExeName)+'\resNl.bmp');
TlKrestike:bit.LoadFromFile(ExtractFileDir(Application.ExeName)+'\resKr.bmp');
end;
DrawGrid1.Canvas.Draw(Rect.Left,Rect.Top,bit);
end;
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
If TypeHod[ACol, ARow]=TlRubachka then
If Hod=KrKrestik then begin
TypeHod[ACol, ARow]:=TlKrestike;
Hod:=KrNolic;
end else begin
TypeHod[ACol, ARow]:=TlNolice;
Hod:=KrKrestik;
end;
end;
end.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)