AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Snake (das Spiel)

Snake (das Spiel)

Ein Tutorial von Pr0g · begonnen am 25. Mai 2004 · letzter Beitrag vom 8. Mai 2018
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#1

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 16:53
Mir ging es eigentlich um den Record sondern, die Art und weise wie ich die Schlange im Speicher halte.

Bei die ist Spielfeld und Schlange eins. Bei mir ist dies klar getrennt.

Übrigens das weiterrücken der Schlange ist bei mir einfach zu lösen.

Delphi-Quellcode:
with Snake do
  begin
   Inc(iHead);
   if iHead > ciMaxBuffer then
      iHead := 0;
   aBody[iHead] := Point();
  end;
Achtung: Die Schlange sollte nie länger werden als ciMaxBuffer.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#2

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 17:05
Wie würdest du bei deinem Code das Entfernen des letzten Stücks der Schlange realisieren? Alle Elemente des Arrays eins nach vorne verschieben?

Wofür ist die Variable "iGrow" gedacht?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 17:23
Das interessante bei der Sache ist das die Schlange im Speicher nicht verschoben wird, sondern ich setze den Anfang nur neu.

Bsp.:
Speicher:

Code:
  iHead = 2
  iLen = 3
  ((1, 2), (1, 3), (2, 3), (?, ?), (?, ?), ...)
Nach der Bewegung:
Code:
  iHead = 3
  iLen = 3
  ((1, 2), (1, 3), (2, 3), (3, 3), (?, ?), ...)
Noch eine:
Code:
  iHead = 4
  iLen = 3
  ((1, 2), (1, 3), (2, 3), (3, 3), (4, 3), (?, ?), ...)
(Index bei 0 beginnend)


Das Grow (Wachstum) kümmert sich um das längerwerden der Schlange.

Ungefähr so:

Delphi-Quellcode:
if iGrow > 0 then
   begin
     Inc(iLen);
     Dec(iGrow);
   end;
Bsp:
Code:
  iGrow = 2
  iHead = 2
  iLen = 3
  ((1, 2), (1, 3), (2, 3), (?, ?), (?, ?), ...)
Bewegung:
Code:
  iGrow = 1
  iHead = 3
  iLen = 4
  ((1, 2), (1, 3), (2, 3), (3, 3), (?, ?), ...)
Noch eine:
Code:
  iGrow = 0
  iHead = 4
  iLen = 5
  ((1, 2), (1, 3), (2, 3), (3, 3), (4, 3), (?, ?), ...)
Eine ohne Wachstum da iGrow = 0
Code:
  iGrow = 0
  iHead = 5
  iLen = 5
  ((1, 2), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (?, ?), ...)
Wie man sieht kommt man bei meinen Algo ohne irgentwelche aufwendigen Schleifen aus. Was bei Handy, GTR oder alten Rechnern wichtig ist. Da die ja nicht so Schnell sind.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 17:58
Zitat von neolithos:
Nach der Bewegung:
Code:
  iHead = 3
  iLen = 3
  ((1, 2), (1, 3), (2, 3), (3, 3), (?, ?), ...)
Das Element mit dem Index 3 (iHead) stellt den Kopf der Schlange da, richtig? Nun hat die Schlange eine Länge von 3 (iLen), also werden die Elemente 3 bis 1 genutzt um die Schlange darzustellen, etc. Das würde bedeuten, dass das Element 0 ungenutzt ist, oder? Wenn ja, dann würde beim nächsten Schritt zusätzlich noch das Element 1 ungenutzt sein, sofern sich die Länge nicht ändert, da der Kopf ja nun den Index 4 hat. Doch dann wäre nach einiger Zeit kein Element mehr vorhanden, um den Kopf zu setzen. Oder?

[Edit]Schon gut, habe die Zeile if iHead > ciMaxBuffer then iHead := 0; in deinem Code übersehen [/edit]
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 18:07
Ist diese Erkenntnis eine neues Tutorial Wert?

Snake für Fortgeschrittene!

Hinweis:
Bei einem einfachen Snake würde ich nur das erste Element zeichnen und das letzte überzeichnen mit dem Levelfeld.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#6

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 18:15
Zitat von neolithos:
Ist diese Erkenntnis eine neues Tutorial Wert?
Vielleicht irgendwann mal, sofern du keins über das von dir genutze System schreibst.

Zitat von neolithos:
Bei einem einfachen Snake würde ich nur das erste Element zeichnen und das letzte überzeichnen mit dem Levelfeld.
Hast recht, würde auch gehen. Ich hatte eigentlich geplant einen zweiten Teil zu schreiben, in dem die Zeichenfunktion so ergänzt wird, dass die Schlange aus einem Grafikset, also mit Kurven, Kopf usw. gezeichnet wird, kam bis jetzt aber nicht dazu, bzw. hatte keine Lust.

Vielleicht mache ich irgendwann mal eine Neuauflage oder Ergänzung zu diesem Turorials
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 18:25
Zitat von Pr0g:
Vielleicht irgendwann mal, sofern du keins über das von dir genutze System schreibst.
Keine Sorge von mir wird es keine Tutorial geben,

1. Ich bin schlecht im Erklären,
2. Die liebe Reschschrebung,
3. Denke ich das ich dazu schon viel zuviel weis (das soll kein Eigenlob sein).

-> max. ein Tutorial für fortgeschrittene Sachen.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Snake (das Spiel)

  Alt 25. Mai 2004, 18:27
Zitat von nailor:
naja, hab mich ein wenig aifgeregt. aber man muss ja nicht alles schlechtmachen
Ich wollte das Tutorial bestimmt nicht schlecht machen. Eher war es mein ansinnen konstruktive Kritik zu äußern.
Wenn ich mich im Ton vergriffen habe bitte um Entschuldigung.



P.S. Die größten Kritiker der Elche waren früher selber welche.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
MasterC

Registriert seit: 9. Jan 2004
Ort: Krefeld
369 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Snake (das Spiel)

  Alt 17. Sep 2004, 17:44
Hi, echt geiles Tutorial!

Leider geht der Downloadlink vom Beispiel nicht mehr.

Kannst du das bitte nochmal hochladen?

MFG Chris.
Christian H.
www.Future-Coding.de
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Snake (das Spiel)

  Alt 26. Sep 2004, 10:05
jo bitte wwäre nett

gutes TUT!
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 

Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 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 by Thomas Breitkreuz