[C++] Snake Klon Spielfeld

Asix

Mitglied
Tag Leute,

hab mir jetzt noch einige Gedanken gemacht über meinen Snake Klon...

Mein aktuelles Problem ist jetzt: Das Spielfeld

Ich will dies mit einem Array realisieren, also z.b. so int Feld[30][30];
Wie bekomme ich das jetzt gescheit angezeigt?


Gruß Asix
 
Hallo,

Ich würde das ganze immer Reihe für Reihe ausgeben.
Dafür must die die Breite deines Arrays auf (Breite des Spielfeldes + 1) setzen und den letzten Wert auf '\0' setzten.
Außerdem solltest du in das Array dann noch deine Schlange eintragen.

Code:
char Spielfeld[30][31];

system("cls"); //Console "säubern"
for(int iHigh = 0; iHigh < 30; iHigh++)
{
puts(Spielfeld[i]);
}

Hoffe ich konnte helfen.

Gruß

Anfänger
 
Tag auch,

was bewirkt denn das "puts();" ?
Ersatz für cout oder kann die Funktion was besonderes?

Und für was steht der "i" Wert bei dem Spielfeld[ i ] also der Ausgabe?

Danke schonmal
 
Sorry,

habe mich mit dem i vertan. Es muss iHigh heißen und gibt den Index an.
Code:
...
puts(Spielfeld[iHigh]);
...

puts gibt eine Zeichenkette aus du kanst genauso gut cout verwenden:
Code:
...
cout<<Spielfeld[iHigh];
...

Vielleicht solltest du aber auch mal googeln bevor du so Sachen wie zu dem puts fragst. Man findet sofort eine gute Erklärung der Funktion auf Deutsch.:google:

Gruß Anfänger
 
Jau danke dir, werd ich das nächste mal machen ;-)

Wenn ich das Programm so anfange wie dein Vorschlag war, werden mir lauter ASCII Zeichen angezeigt...
 
Zuletzt bearbeitet:
Naja, was willst du denn sonst in der Konsole? :-)
Falls du meinst, dass irgendein chaotischer Zeichenhaufen rauskommt: Hast du am Anfang das Array initialisiert?
Am besten überall Leerzeichen rein, und wenn du das ganze mit puts ausgibst die '\0' am Ende jeder Zeile nicht vergessen!
 
Ja das Array hab ich mit
Code:
char Spielfeld[30][31];
initialisiert oder verwechsel ich grade was^^
 
Hallo,

nichts gegen dich aber kann es sein das du dich noch nicht sehr lange damit beschäftigst?

Man sollte vielleicht erstmal die Grundlagen kennen und sich nicht alles auf nem Forum holen.

Was ich da geschrieben hab ist natürlich kein komplettes Programm. Es soll nur die Variablen zeigen die für die Funktionen und die Funktionsaufrufe die wichtig sind.

Jetzt zu deinem Problem:

Nach der Initialisierung ist der Speicherbereich natürlich mit i-welchen Werten aus dem RAM gefüllt. Man muss ihn z.B. erst auf NULL setzten.
Z.B. so:
Code:
...
ZeroMemory( Spielffeld, sizeof(Spielfeld) );
...
Das sollte ohne weiteres funktionieren.
Oder benutzte die Funktion memset.

Gruß Anfänger.

Edit:
C Library <-- nen paar Funktionen mit denen man viel machen kann. Wenn man nicht alle kennt (tue ich auch nicht) muss man ja wenigstens wissen wo man se findet ;).
 
Zuletzt bearbeitet:
Ich beschäftige mich seit letzten September mit C++, hab auch schon einige Programm geschrieben(Karten Spiele oder auch einen Simulator auf GUI Basis) aber hier steh ich irgendwie absolut auf dem Schlauch, werd mir in nächsten Tagen n paar ruhige Stunden raussuchen und nochmal alles genauer duchgehen.

Trotzdem Danke für eure schnellen Antworten.

Gruß Asix
 
Ich hab das auch vor gut 1 1/2 jahren ma gemacht in der Konsole und ich kann dir sagen gib das Spiefeld nicht auf einmal aus zeichne nur da neu wo ein neues Element hinkmment und wo eines weg geht also an Ende und Anfang der Schlange, sonst flackert das abgefuckt.
außerdem bracuhst du doch so ein Array garnicht die Schlange mit verketter Liste nd einfache die größe irgendwo definiet X und Y gut ist.
 
Zurück