Brauche Hilfe beim Programmieren von Snake in C
-
Hallo,
ich versuche schon seit einiger Zeit mit C, Snake zu programmieren.
Ich versuche es mit C (nicht C++) unter einer Consolen Applikation.
Hab mit ganz normalen Strichen (- , |) ein Quadrat gezeichnet indem
sich die Schlange bewegt und mit einem einfachen x den Schlagenkopf
symbolisiert.
Ich hab schon geschafft, dass sich das x bewegt, und man verliert wenn
man in das Quadrat kracht. Hab auch schon random-zeichen erstellt die
irgendwo im Qaudrat erscheinen und man sie "fressen" muss.Leider bin ich zu blöd dazu, das wenn man ein random-zeichen mit dem
x überschreibt, dass die Schlange länger wird.Wäre froh über jede Hilfe, danke.
-
Wie hast du das Spielfeld realisiert?
Als zweidimensionales Array ?
-
Nein, hab es ganz simpel gelöst.
Einfach mit nem printf und for-schleifen hingeschrieben:for(;v<=47;v++) {
gotoxy(v,2);
printf("-");
}
for(i=3;i<=23;i++) {
gotoxy(5,i);
printf("| |");
}
v = 5;
for(;v<=47;v++) {
gotoxy(v,23);
printf("-");
}
-
Ich hätte da noch eine Frage dazu.
Kann man so ne if-Abfrage machen:
if(case1 "wechselt zu" case2) ?
-
Fatman_Stoned schrieb:
Ich hätte da noch eine Frage dazu.
Kann man so ne if-Abfrage machen:
if(case1 "wechselt zu" case2) ?versteh ich nicht!!
Kannste das mal genauer erklären!
-
Ich hätte da noch eine Frage dazu.
Kann man so ne if-Abfrage machen:
if(case1 "wechselt zu" case2) ?
-
Musst halt die Koordinaten der Schlangenteile speichern, z.B. in nemm Ringpuffer.
-
meinst irgendwie so? ist jetzt nur symbolisch: über die sinnhaftigkeit lässt sich evtl. streiten, hab das jetzt nur schnell hingedonnert, aber man könnte ja sagen wenn es 1 ist, erhöhe eine andere variable auch noch um 1 und gehe dann in den normalzustand (2), der das sonst nicht brauchen würde.
while(true) { switch(a) { case 1: //mach irgendwas a=2; break; case 2: //mach irgendwas irgendwas.... break; } }
-> bitte nicht böse sein, hab jetzt nicht eingerückt...
-
einfach beide cases untereinander schreiben und beim ersten das 'break' weglassen.
switch(a) { case 1: //mach irgendwas ... case 2: //mach irgendwas irgendwas.... ... break; }
-
Vielen dank für eure Antworten.
Das mit dem case ist schwer zu erklären...naja,
kann man eine if-Abfrage machen: wenn nach dem case1
das case2 kommt, dann tu irgendwas.
Falls ihr versteht was ich meine ^^Und das mit dem Ringpuffer werd ich gleich mal ausprobieren,
danke.
-
Könntest du mir bitte ein Beispiel für nen Ringpuffer angeben?
Danke