Е. Жақсылықов мультимедиалық ЖҮйелерді жобалау және қҰрастыру


Мультимедиалық жүйелер үшін ойындарды жобалау



бет7/9
Дата21.07.2016
өлшемі3.19 Mb.
#214513
1   2   3   4   5   6   7   8   9

9 Мультимедиалық жүйелер үшін ойындарды жобалау


«Он бес» ойынының ережелері.

Кездейсоқ сандардың датчигінің көмегімен өлшемі 4*4 болатын шаршы алаңда нөмірлері 1-ден 15-ке дейін болатын 15 фишка орналастырылған. Бір бос позиция бар. Фишкаларды нөмірлердің өсуі бойынша орналастыру керек. Фишканы тек қана көрші бос позицияға жылжытуға болады.




6

5

7

8




11

13

9

3

10

4

15

14

1

2

12


Программа коды.

unit Unit 1; interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dia­logs, Grids, StdCtrls, ExtCtrls, Buttons, ComCtrls, Menus;



type

TForm1 = class(TForm) StringGrid1: TStringGrid; Panel1:TPanel; BitBtn1:TBitBtn; BitBtn2: TBitBtn;

procedure StringGrid1Click(Sender: TObject);

procedure StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure N6Click(Sender: TObject); private

{ Private declarations } function IsFull:Boolean; public

{ Public declarations } end; var

Form 1: TForm1; x 1 ,y 1 ,col,row:integer; a: array [0..14] of integer;

b: string;
implementation

uses Unit4; {$R *.DFM}

function TForm 1 .IsFull :boolean; //бос ұяшықтардың бар болуына тексеру

var i,j,k: integer;

h:boolean;

begin


k:=l;h:=true;

for i:=0 to 3 do

for j:=0 to 3 do

begin


if stringgridl.cells[j,i]o" then if strtoint(stringgridl.cells[j,i])ok then h:=false;

inc(k);


end;

if h then IsFull:=true else IsFull:=False; end;

procedure TForml.StringGridlClick(Sender: TObject); //тышқанды шерту кезіндегі орын ауыстыратын ұяшықтарды таңдау процедурасы

begin


stringgrid1 .MouseToCell(x1,у1 ,col,row); if col-l>=0 then if stringgridl.cells[col-l,row]=" then begin stringgrid1.cells[col-l,row]:=stringgridl.cells[col,row];

stringgrid1 .cells[col,row]:=";

end;

if row-l>=0 then if stringgridl.cells[col,row-l]=" then begin



stringgrid1 .cells[col,row-1 ] :=stringgrid1 .cellsfcol,row]; stringgrid1.cells[col,row]:="; end;

if col+l<=3 then if stringgrid1.cells[col+l,row]=" then begin stringgrid1.cells[col+1 ,row] :=stringgrid.cells[col,row]; stringgrid1.cells[col,row]:="; end;

if row+l<=3 then if stringgrid1.cells[col,row+l]=" then begin stringgrid1.cells [col,row+1 ] :=stringgrid 1 xells[col,row]; stringgrid1.cells[col,row]:="; end;

if IsFull then

begin showmessage (Сіз жеңдіңіз!'); BitBtnl. caption :='Ойынды жалғастыру'; end;end;

procedure TForml.StringGridlMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); //ұяшықтардың координаталарын анықтау begin xl:=x;

yi:=y;

end;
procedure TForml.BitBtnlClick(Sender: TObject); //1ден 15-ке дейін ұяшықтарды нөмірлермен толтыру



var

k,i,j,l: integer; label 1;

function isin (k:integer):boolean; //бірдей сандардың бар болуына тексеру

var


g:integer; h:boolean; begin h:=true;

for g:=0 to 14 do

if a[g]=k then h:=false;

if h then isin:=true else isin:=false;

end; begin

randomize;

fori:=Oto 14doa[i]:=-l;

k:=0;


while k<> 16 do begin

1: l:=random(16); if not isin(l) then goto 1; a[k]:=l;k:=k+l; end;

k:=0;

for i:=0 to 3 do



for j:=0 to 3 do

begin


if a[k]<>0 then stringgridl.cells[ij]:=inttostr(a[k]);

if a[k]=0 then stringgridl.cells[i,j]:="; k:=k+l; end;



BitBtnl .Caption:='CBPOC; end;

procedure TForml.BitBtn2Click(Sender: TObject); //программадан шығу

begin


if MessageDlg('BH уверены?',mtConfirmation, [mbYes, mbNo], 0) =

mrYes then

close; end;

procedure TForml.N6Click(Sender: TObject); // программадан шығу

begin


if MessageDlg(Сіз сенімдісізбе?' ,mtConfirmation, [mbYes, mbNo], 0) =

mrYes then close; end; end.



Компоненттер қасиетті: object StringGridl: TStringGrid

Left = 8


Top = 8

Width = 497

Height =297

Color = clNavy

ColCount = 4

DefaultColWidth=120

DefaultRowHeight = 67

FixedCols = 0

RowCount = 4

FixedRows = 0

Font.Charset = RUSSIAN_CHARSET

Font.Color = clRed

Font.Height = -64

Font.Name = 'Arial'

Font.Style = ffsBold, fsltalic]

ParentFont = False

TabOrder = 0

OnClick = StringGridl Click

OnMouseMove = StringGridlMouseMove

object BitBtn2: TBitBtn

Left = 264 Top = 8 Width =145 Height = 25 Caption ='Шығу'

Font.Charset = DEFAULTCHARSET

Мысал 19. Еркін массив берілген. 5-ке тең элементтерді 0-мен алмастыру.

Формаға Additional парағында орналасқан екі StringGrid және Bitbtn компоненттерін кірістіріңіз.



Тапсырманы орындау технологиясы:


Компоненттер

Объектілер инспекторындағы өзгертулер

StringGrid 1

StringGrid 2



FixedCols: 0

FixedRows: 0

RowCount: 4

ColCount: 4



Bitbtn 1

Caption: Массив

Label 1

Caption: Енгізілетін массив

Label 2

Caption: Алынған массив


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет