einfaches spiel
-
@randa. thx sowas in der art hatte ich mir vorgestellt. ist aber leider in c++ und dass kann ich nicht.
auf robsite war ich auch schon. da gibt es aber keine guten tutorials für dieses thema
-
Lol, auf diesem niedrigen Niveau! *g*
Ersetze einfach cout durch printf und & durch * und fertig!
Dann kommst du in den Genuss der ultimativen Geschicklichkeitsherausforderung!
(Bitte testen, vielleicht muss ich das Zeitlimit niedriger Stellen?)
-
hm. mein compiler kann scheinbar nur c. ging nämlich nicht.
werd mir mal einen anderen besorgen.
-
Was ging denn nicht?
Edit: Tja, also extra Tutorials für Konsolenspielchen gibt wohl kaum und braucht man nicht. Das Spielsystem kann jeder selbst entwerfen, für die Ausgabe reicht eine Formatierte Ausgabe von Zeichen in einer Schleife o.ä, wie oben. Da gibts nicht viel...
-
es waren einfach viele fehlermeldungen beim compilieren entstanden.
hab mir jetzt mal Dev-C++ runtergeladen. damit probier ichs jetzt.mein poblem ist halt, dass ich noch nie ein spiel gemacht habe und somit halt auch nicht den ablauf und somit weiß. deswegen wollte ich es ja auch. jetzt werd ich dass mal analysieren
-
Naja, wenn du selbst spielst kennst du ja den Ablauf, oder? Denk dir für den Anfang ein simples Prinzip aus und setze es einfach um, zum Beispiel in x sec y fragen beantworten oder das Kreuzchen-Kreis Spiel gegen den Computer (bei 9 oder mehr Feldern z.B.) oder vier Gewinnt mit Konsolengrafik...geht doch alles und sieht super aus!
-
ok. programm geht jetzt.
die zeit reicht volkommen aus.
ich habe jetzt nur noch dass problem dass viel anderst ist.
zb. cin,
ist "done" so etwas wie if?
-
C-Progger schrieb:
zb. cin
= scanf ()
ist "done" so etwas wie if?
Done = Die betretenen Felder. Die Gewinnbedingung.
Lol, hätte nicht gedacht das du das echt durchspielst. Ich habs nicht mal 1 Minute ausgehalten
Also, machs besser
-
ich habs auch nicht durchgespielt. hab aber rausgefunden dass man einfach zb.
10*d eingeben kann und dann enter drücken kann. dann hat man soch 40 felder in weniger als 5 sek. :p
-
Scheiße, muss ich noch fixen
Wollte sowieso die Eingabe per termios einlesen und den Bildschirm in jedem "Frame" (yeah) clearen.
Naja, morgen hab ich dann die Deluxe Version dabei
-
*g*
schade dass es nicht in c ist
aber so langsam verstehe ich dass prinzip
-
C-Progger schrieb:
schade dass es nicht in c ist
//c++ cout << "EinString" << endl; //c printf ("%s\n", "EinString"); //endl ist '\n' //c++: Referenz int &Done; Done++; //c int *Done; //und dann halt immer *Done++; //und natürlich nicht Done++;
-
ah. danke.
ich habe noch ein problem. (nerv ich schon
)
int main()
{
bool Field[20][40];
for (int i=0; i<20; i++)
for (int x=0; x<40; x++)
Field[i][x]=false;
Field[0][0]=true;was ist true und false in c. kennt mein compiler nämlich nicht
-
echt? AFAIK gibt auch in c bool, true und false...
Naja, dann ersetze bool durch int und true durch 1 und false durch 0.
-
bin im moment immer noch damit beschäftigt es umzuschreiben(in c). klappt aber irgendwie nicht so wirklich*g*. naja, es mir wohl etwas genauer ansehen.
dann sag ich aber mal danke für die ganze hilfe und geh dann mal. =>Nacht
-
Hier noch schnell der code, bevor ich auch schlafen gehe
void Go (bool Field[20][40], char Inp, int *Done) { static int CurPosX=0; static int CurPosY=0; if (Inp=='w') if (CurPosY>0) { Field[CurPosY][CurPosX]=false; CurPosY--; Field[CurPosY][CurPosX]=true; *Done++; } if (Inp=='s') if (CurPosY<19) { Field[CurPosY][CurPosX]=false; CurPosY++; Field[CurPosY][CurPosX]=true; *Done++; } if (Inp=='a') if (CurPosX>0) { Field[CurPosY][CurPosX]=false; CurPosX--; Field[CurPosY][CurPosX]=true; *Done++; } if (Inp=='d') if (CurPosX<39) { Field[CurPosY][CurPosX]=false; CurPosX++; Field[CurPosY][CurPosX]=true; *Done++; } if (Inp=='e') exit (0); } int main() { bool Field[20][40]; for (int i=0; i<20; i++) for (int x=0; x<40; x++) Field[i][x]=false; Field[0][0]=true; char Inp; printf ("Sie haben 2 Minuten, um alle Felder zu begehen!\n\n"); printf ("Zum Starten Taste drücken!\n"); char dummy; scanf ("%c", &dummy); time_t Time=time (0); time_t Start=Time; time_t CurTime=0; int Done=0; while (true) { for (int i=0; i<20; i++) { for (int x=0; x<40; x++) { if (Field[i][x]) printf ("0"); else printf ("-"); } printf ("\n"); } scanf ("%c", &Inp); Go (Field, Inp, &Done); Time+=time (0)-Time; CurTime=Time-Start; printf ("Aktuelle Zeit: %d\n", CurTime); printf ("Begangene Felder: %d\n", Done); if (CurTime>=120) //Bescheissen gibts nicht { printf ("\nZeit abgelaufen!\n"); if (Done==800) printf ("Sie haben gewonnen!!!!!"); else printf ("Sie haben verloren!"); return 0; } else if (Done==800) { printf ("Sie haben gewonnen!!!!!"); return 0; } } }
-
ich glaube langsam das hängt an meinem compiler. das was du am schluss nochmal gemacht hast geht bei meinem nämlich auch nicht. (hab:Icc Win 32)
muss mir mal einen besorgen, der c und c++ kann. wäre vllt gut
-
C-Progger schrieb:
ah. danke.
ich habe noch ein problem. (nerv ich schon
)
int main()
{
bool Field[20][40];
for (int i=0; i<20; i++)
for (int x=0; x<40; x++)
Field[i][x]=false;
Field[0][0]=true;was ist true und false in c. kennt mein compiler nämlich nicht
Vorher einfügen:
typedef enum { false, true } bool; /* Jetzt kann bool als Typ genutzt werden */
-
ah. danke.
-
C-Progger schrieb:
ich glaube langsam das hängt an meinem compiler. das was du am schluss nochmal gemacht hast geht bei meinem nämlich auch nicht.
Normalerweise liegt es imer am Programmierer, wenn etwas nicht geht, und nicht am Compiler.
Aber der code war eigentlich reines c.Besorg dir den gcc (gibts auch für windows), kostenlos und sehr gut.