AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Snake - Ein Problem mit dynamischen Arrays

Ein Thema von MrMooed · begonnen am 3. Apr 2012 · letzter Beitrag vom 11. Apr 2012
 
Popov
(Gast)

n/a Beiträge
 
#12

AW: Snake - Ein Problem mit dynamischen Arrays

  Alt 4. Apr 2012, 19:42
Also würdest du alle Koordinaten (sei es nun die der Schlange als auch die der Äpfel/ Münzen) in einem Array Speichern ?
Ich habe gemerkt, dass wenn man auf einem C64 angefangen hat zu programmieren, dann denkt man auch Byte-sparsam. Hier das Konzept mit einem Array-Snake:

Beispiel Array 40x40 als Byte (mehr braucht man nicht)
Vereinbarung: 0 ist leeres Feld, 1 bis 126 Snake, wobei 1 der Kopf ist, 127 ist der Apfel, 128 Wand, Rest 129 bis 255 offen für Erweiterungen
Eine Count Variable für die Länge der Schlange, wobei man auf die verzichten könnte, aber wir wollen es nicht zu kompliziert machen

Neue Kopfposition berechnen, prüfen auf Kollision mit Apfel oder Wand, bei Apfel Count erhöhen, bei Wand Ende
Mit zwei For-Schleifen (X/Y) das Ganze Array durchlaufen. Wert 0 und Werte größer 126 werden ignoriert
Alle Werte zwischen 1 und (126 - 1) und 1 erhöhen
Kopf-X/Y-Position übertragen und den Wert 1 zuweisen
Werte größer Count löschen, bzw. 0 setzten

Fertig

In einer weiteren Prozedur mit den Werten zeichnen.
  Mit Zitat antworten Zitat
 

 

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 07:21 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