![]() |
Quelltext Verständniss
Hallo,
ich habe folgenden QT gefunden:
Delphi-Quellcode:
Das ist ein Teil eines Snake spiels.
procedure TForm1.calc_snake;
var i, j: Integer; begin for i := 0 to breite do for j := 0 to hoehe do if map[i, j]>0 then Dec(map[i, j]); Inc(kopf.X, richtung.X); Inc(kopf.Y, richtung.Y); if (kopf.X<0) or (kopf.X>breite) or (kopf.Y<0) or (kopf.Y>hoehe) then begin spiel_ende; ShowMessage('Sie haben den Rand berührt!'); end; if (map[kopf.X, kopf.Y]>0) and (not ende) then begin spiel_ende; ShowMessage('Sie haben sich selbst gebissen!'); end; if (kopf.X=futter.X) and (kopf.Y=futter.Y) then begin Inc(laenge); neues_futter; end; map[kopf.X, kopf.Y] := laenge; end; Leider verstehe ich die vorletzte Codezeile nicht,,, Erläuterung: laenge wird pro gefressenem Stein um eins erhöht |
Re: Quelltext Verständniss
Delphi-Quellcode:
bedeutet nix anderes als
Inc(laenge);
Delphi-Quellcode:
wenn die Schlange als etwas gefressen hat wird sie um eins länger und in der Folgezeile wird neues Futter bereit gestellt
laenge := laenge + 1;
|
Re: Quelltext Verständniss
ich meinte aber
Delphi-Quellcode:
:-D
map[kopf.X, kopf.Y] := laenge;
|
Re: Quelltext Verständniss
aua hat sich geklärt ich hätte genauer lesen müssen :)
|
Re: Quelltext Verständniss
An der Stelle wird die Länge der Schlange an diesen Koordinaten eingetragen. Steht an dieser Stelle dann, wenn die Prozedur nochmal durchlaufen wird, keine 0, dann hat sich das Tierchen selbst gebissen... Außerdem wird so denke ich festgestellt, wie viele Körperteile noch folgen müssen... steht da aber nicht in diesem Code...
//Edit: na dann... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz