[ TARMI @ 13.06.2006. 16:23 ] @
| znaci u Delphi-ju sam pravio igricu iks-oks i ova funkcija mi nije bas jasna
function TfrMain.CheckWin(iPos : TXOPosArray) : Integer;
var
iScore : Integer;
i : Integer;
j : Integer;
begin
Result := -1;
//in rows?
iScore := 0;
for i := 1 to 3 do
begin
iScore := 0;
Inc(Result);
for j := 1 To 3 do Inc(iScore, iPos[i,j]);
if iScore = 3 Then Exit
end;//for i
...
sta znaci ovo Result :=1?
i sta se desava tu po kolonama ("in rows"-pa nadalje), ako mozete to da mi pojasnite?!!!!
[Ovu poruku je menjao TARMI dana 13.06.2006. u 17:35 GMT+1] |
[ Nemanja Avramović @ 13.06.2006. 23:12 ] @
Čekaj, ti si pravio igru a ne znaš šta si pisao? Pa kako mi da znamo?
Ovo result je šta vraća funkcija (vidiš da vraća integer), a for petlja izgleda prolazi kroz polja tabele i proverava ko je pobedio (ko ima 3 vezana polja). To je sve od mene :P
[ _v!rus_ @ 14.06.2006. 09:50 ] @
.Funkcija (bar prikazani deo) proverava da li su tri poljavezana U JEDNOJ KOLONI, znači ništa se ne dešava po redovima (ponavljam, bar u prikazanom delu koda). Totalno je nejasno sta predstavalja Result f-je, ovde izgleda da je Result indeks kolone (X kolone) koja ima 3 vezana polja, mada ako je u poslednjoj koloni dobitak Result će biti isti kao i da nije, fali jedan result := -1 na kraju svega..
[ TARMI @ 14.06.2006. 11:30 ] @
za JaHvram-a ---- "PRAVIO"
Taj kod je samo deo, ima i za redove i za dijagonalu..hvala _v!rus_ u svakom slucaju, kao i tebi JaHvram, svaka pomoc znaci! Malo mi je jasnije..ako neko moze jos da pojasni bilo bi ok, za taj sugavi result
[ _v!rus_ @ 14.06.2006. 11:37 ] @
Mislim da ce neko tesko da ti objasni taj result ako ne das malo vise koda... Na kraju krajeva, ti si pravio...
BTW, jel si probao duboku hipnozu i vraćanje kroz vreme?

[ TARMI @ 14.06.2006. 20:59 ] @
pa to je sustina koja je bitna u toj proceduri, evo ima i u ovoj funkciji ako vam nesto znaci-ponavljam nisam ekspert!
function TfrMain.GamePlay(xo_Move : Integer):integer;
var
x, y : 1..3;
iWin : integer;
begin
Result := -1;
Inc(iMove);
x := (xo_Move Div 3) + 1;
y := (xo_Move Mod 3) + 1;
if sPlaySign = 'O' then
begin
iOPos[x,y] := 1;
iWin := CheckWin(iOPos);
end
else
begin
iXPos[x,y] := 1;
iWin := CheckWin(iXPos);
end;
TLabel(FindComponent('lblCell' + IntToStr(xo_Move))).Caption := sPlaySign;
Result := iWin;
if iWin >= 0 then
begin
bGameOver := True;
if sPlaySign = 'X' then
begin
iXScore := iXScore + 1;
lblXScore.Caption := IntToStr(iXScore);
end
else
begin
iOScore := iOScore + 1;
lblOScore.Caption := IntToStr(iOScore);
end;
ShowMessage(sPlaySign + ' - Pobedjuje!');
end;
if (iMove = 9) AND (bGameOver = False) Then
begin
ShowMessage('Nereseno je!');
bGameOver := True
end;
if sPlaySign = 'O' Then
sPlaySign := 'X'
else
sPlaySign := 'O';
end;
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.