Blog pentru dezvoltatori

solicitări de căutare

Programul ryanashki Delft în Delphi joc de tag-ul joc tag-ul în joc Delfi de jocuri algoritm tag-ul pe tag-ul Delphi pe tag-ul Delphi în Delphi jucărie simplu tag-ul Delphi aogoritm Delfi tag-ul jocuri secrete pentru a găsi și aduce numărul de mutări în tag-ul joc Delphi Delphi petnashki modul de a face Delfi program pentru a juca un cod de program tag-ul tag-ul Dephi n1click pe Delfi Delphi tag-ul pe tag-ul tag-ul joc algoritm pe jocul Delfi de tag-ul joc algoritm tag-ul în secretele joc tag Delfi pentru a dezvolta o aplicație de joc în Delphi tag-ul deget de la picior Ashka pe jocuri Delphi pe Delfi Delphi joc simplu modul de a crea diferite tag-ul joc pe delphi7 tag-ul tag-ul programului Delfi Delfi 7 joc cum să joace tag-ul în opt algoritmul







Vă prezint prototipul programului "Joacă la fața locului". Prototipul deoarece, deși programul este o implementare completă a algoritmului jocului în sine, un loc, dar în mod clar nu are suficiente. funcții care fac programul convenabil pentru utilizator, bine, trebuie să lucrați mai mult la aspect.

Mai multe cuvinte. În implementarea acestui algoritm, tipul standard TButton a fost folosit pentru afișarea jetoanelor de joc. Puteți utiliza o altă componentă vizuală pentru a afișa cipurile de țiglă. Pentru a face acest lucru, este suficient în linie

tip Tfish = TButton; în loc de TButton introduceți tipul de care aveți nevoie.

Vreau să arăt imediat cum va arăta prototipul jocului "Fiddles"

Blog pentru dezvoltatori

Dar aceasta a devenit o jucărie după procesarea fișierului, vezi Programele mele

Blog pentru dezvoltatori

Programul sa dovedit a fi ușor scalabil (așa că a fost intenționat), astfel încât dimensiunea câmpului să poată fi specificată de oricine, nu doar cu numărul de jetoane de 4x4. De exemplu, pentru a face un câmp de 10x10 trebuie să modificați valorile a două constante:

Const. NXM = 10; M = 100;

Descărcați arhiva cu sursa pe care o puteți așeza *** AICI ***.
Sortați, alegeți sursa, dacă ceva nu este clar - întrebați. Mult noroc.
PS. Faceți clic pe cipul pe care doriți să îl mutați.

unitate principală; interfața utilizează Windows, Mesaje, SysUtils, Clase, Grafică, Comenzi, Formulare, Dialoguri, StdCtrls, Meniuri; tip TForm1 = clasa (TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; procedura FormCreate (expeditor: TObject); procedura FormShow (expeditor: TObject); procedura N1Click (expeditor: TObject); procedura N2Click (expeditor: TObject); procedură privată ButClicked (expeditor: TObject); procedura CreatFishkas (); procedura KillOldFihkas (); poziția funcției (const x, y: integer): integer; procedura victopia (); public se încheie; tip Tfish = TButton; // indicați tipul de jetoane, nu ne place bud - specificați un alt const W = 80; // lățimea cipului D = 10; // distanța dintre chips-uri L = D + W; // distanța dintre "x" pentru chips-uri NXM = 4; // dimensiunea câmpului 4x4 N = 1; M = 16; // dimensiunea matricei de jetoane POLET = 10; POLEL = 10; // pozițiile inițiale ale câmpului chip pe prefixul formularului = 'Fishka'; var Form1: TForm1; btn: matrice [N..M] din Tfish; sorseAr: matrice [N..M] de boolean; zeroX, zeroY: întreg; XYmatrix: matrice [1..M, 1 ... 2] de număr întreg; implementare // procedura formularului de formular FormSize; începe Form1.Width: = (POLEL * 2) + (L * NXM); Form1.Height: = (L * NXM) + POLET + 50; se încheie; procedura TForm1.FormCreate (expeditor: TObject); var i, ty, lx: întreg; începe randomize; i: = 0; // completați matricea cu coordonatele la care a pus // chips-uri la începutul noului joc ty: = POLET; lx: = POLEL; pentru i: = N la M începe XYmatrix [i, 1]: = lx; XYmatrix [i, 2]: = ty; lx: = lx + L; dacă i mod NXM = 0 atunci începe ty: = ty + L; lx: = POLEL; se încheie; se încheie; FormSize (); se încheie; procedura TForm1.FormShow (expeditor: TObject); începe CreatFishkas (); se încheie; / / faceți clic pe elementul de meniu - procedura "nou joc" TForm1.N1Click (Expeditor: TObject); începe KillOldFihkas (); FormSize (); CreatFishkas (); se încheie; <сбрасывает все элементы массива в true, массив отвечает за неповторяющиеся порядковые номера фишек которые выбираются случайным образом нужно при иницилизации новой игры> funcția dump (): boolean; var i: întreg; începe i: = 0; pentru i: = N la M face sorseAr [i]: = adevărat; ; se încheie; // direct algoritmul de eșantionare a valorilor care nu se repetă în mod aleatoriu alegeți (): integer; var i: întreg; începe i: = 0; rezultat: = aleatoriu (M) + 1; în timp ce sorseAr [rezultat] = rezultat fals: = aleatoriu (M) + 1; sorseAr [rezultat]: = fals; se încheie; procedura TForm1.CreatFishkas; // NEW GAME, creând un câmp de joc var i, ty, lx, ch: integer; începe randomize; dump (); // But.Enabled: = false; BitBtn1.Enabled: = true; BitBtn2.Enabled: = true; ty: = POLET; lx: = POLEL; pentru i: = N la M începe btn [i]: = Tfish.Create (Self); btn [i]. Lățime: = W; btn [i] Înălțime: = W; btn [i] .Font.Size: = 26; btn [i] .Font.Style: = [fsBold]; ch: = alege (); // primi numărul aleatoriu 1-16, numerele nu se repetă btn [i] .Left: = XYmatrix [ch, 1]; // obține coordonatul X btn [i] .Top: = XYmatrix [ch, 2]; // obține coordonata lui y btn [i] .Tag: = ch; // în Tag vom păstra poziția curentă a chipului btn [i] .Name: = prefix + inttostr (i); dacă i <> M începe apoi btn [i] .Caption: = inttostr (i); btn [i] .OnClick: = ButClicked; else begin // termina buton este gol, și fără a handler kaption OnClick BTN [i] .Caption: = ''; zeroX: = btn [i] .Left; zeroY: = btn [i] .Top; se încheie; btn [i]. Părinte: = Sine; se încheie; se încheie; // definește poziția pe care caracteristica este în prezent pe TForm1.position funcția sa koordenatam (const x, y: integer): integer; var i: întreg; începe i: = 0; rezultat: = -32; pentru i: = N la M do începe if ((XYmatrix [i, 1] = x) și (XYmatrix [i, 2] = y)), apoi începe rezultat: = i; pauză; se încheie; se încheie; se încheie; // mutați cipul într-o nouă procedură de poziție TForm1.ButClicked (Sender: TObject); var X, Y, ps: întreg; începe X: = Tfish (expeditor) .left; Y: = Tfish (Expeditor) .Top; if ((X = zeroX + L) și (Y = zeroY)) sau ((X = zeroX - L) și (Y = zeroY)) sau ((X = zeroX) și (Y = zeroY + L)) sau ( (X = zeroX) și (Y = zeroY - L)) apoi începe Tfish (Expeditor) .Left: = zeroX; Tfish (Sender) .Top: = zeroY; Tfish (FindComponent (prefix + inttostr (M))) stânga: = X ;. Tfish (FindComponent (prefix + inttostr (M))) top: = Y ;. ps: = poziția (zeroX, zeroY); dacă ps <> -32, apoi Tfish (Sender) .Tag: = ps alt ShowMessage ("Eroare în logica programului COORDENATE"); zeroX: = X; zeroY: = Y; victopia (); // verifica - VICTORIA sau joaca la sfarsit; se încheie; // check - VICTORY sau jucați în continuare. procedura TForm1.victopia; var i: întreg; b: boolean; începe b: = adevărat; i: = 0; pentru i: = N la M - 1 începe în cazul în care strtoint (Tfish (FindComponent (prefix + inttostr (i))). <> Tfish (FindComponent (prefix + inttostr (i))). Eticheta apoi începe b: = false; pauză; se încheie; se încheie; dacă b, apoi ShowMessage ("Ai vopsite"); se încheie; procedura TForm1.KillOldFihkas; // distrugeți butoanele, trebuie să începeți noul joc var i: întreg; începe pentru i: = N la M face FreeAndNil (btn [i]); se încheie; procedura TForm1.N2Click (expeditor: TObject); incepe Application.Terminate (); se încheie; end.













Articole similare

Trimiteți-le prietenilor: