Snake mit c++ schreiben



  • Hi,
    ich möchte zum lernen nen einfaches Programm schreiben so ein Mix aus Snake und Thron nur, bis jetzt lief alles sehr gut nur jetzt komme ich an die funktion wie ich Zeit in das Spiel ein baue d.h. das halt in dem DOS-Basisfenster jede Sekunde z.B. ein Stern mehr ausgegeben wird.

    Wie mach ich das könnt ihr mir da bitte helfen.

    Danke schon mal im Vorraus



  • Sleep(1000); !?
    


  • naja ich kenn mich noch net gut aus mit c++ aber sleep hält doch das Programm an und das soll ja gerade nicht passieren es soll ja nach einer bestimmten Zeit ein weiteres Zeichen ausgegeben werden damit es den anschein hat als ob sich die Schlange bewegen würde



  • Sleep hält das Programm für die angegebene Zeit an. Danach läuft es weiter.



  • Also bei mir hat sleep nie functioniert!^^ Ich habe daher diesen Code bekommen!

    Das kommt vor die main!

    void wait(double sec) //Warte Funktion
    {
        const DWORD dwWait = GetTickCount();
        while(GetTickCount()-dwWait < sec*1000);
    }
    

    und das dorthin wo sie die Pause haben wollen!

    wait(1); //Hier wartet das Programm eine Sekunde! Dann läuft es weiter!
    

    Ich hoffe das hilft ihnen! Viel Spaß!

    MFG: DerLateinProfi



  • Naja, hoffen wir mal dass Du besser Latein kannst als Programmieren...

    Deine FUnktion funktioniert zwar meistens aber nicht immer... und "Sleep" ist eigentlich trivial:

    #include <windows.h>
    #include <tchar.h>
    
    int _tmain()
    {
      Sleep(1000);
    }
    

    Ok, das ist für einen Lateinen zu schwierig... :p



  • Probier mal

    System::Threading::Thread::Sleep(Millisekunden);//Für Clr Console oder
    Sleep(Millisekunden);//Für win32 Console, die while Schleife verbraucht zu viel Leistung
    

    Warum so schwer machen



  • Ihr hört ihm ja garnicht zu. Er braucht keine Pause, sondern einen Timer.

    Ein Beispiel mit Standard-C Funktionen:
    http://oldmill.uchicago.edu/~wilder/Code/timer/



  • Bei einem konsolenprogramm, dass keine Buttons oder sonstigen Controls updaten muss reicht Sleep vollkommen aus



  • Da er eine Art Snake Spiel macht, denke mal die Schlange soll sich bewegen während die Sterne auftauchen. Aber das kann er uns vielleicht verraten.



  • Ja und? Dann machs Halt so

    while(running){
    
    Schlange->Move(JetztigeRichtung);//Schlange bewegen
    if(Schlange->KopfKommtIrgendwoGegen())Schlange->HatVerloren(); //Angedotzt? Verloren!
    
    if(ZeitPasstInMaske(Zeit))Field->FügeSternHinzu(NichtSoNaheAmKopfDer(Schlange));//Zeit  ist ein vielfaches von irgendwas? Stern hinzufügen!
    
    Sleep(1000);//Schleife warten Lassen
    Zeit++;//Zeit schreitet voran
    }
    

    Mit der while Schleife weisst du die Reihenfolge der Ereignisse genau



  • Ihr hört ihm ja garnicht zu. Er braucht keine Pause, sondern einen Timer.

    Wieso ? Er will jede Sekunde nen Stern ausgeben, die Antwort passt auf die Frage. Alles andere ist geraten und muss nicht das Ergebnis sein was der OP haben möchte. (Man kann ja die Fragen auch sinvoll stellen und schreiben was man hat. )



  • Knuddlbaer schrieb:

    Ihr hört ihm ja garnicht zu. Er braucht keine Pause, sondern einen Timer.

    Wieso ? Er will jede Sekunde nen Stern ausgeben, die Antwort passt auf die Frage. Alles andere ist geraten und muss nicht das Ergebnis sein was der OP haben möchte. (Man kann ja die Fragen auch sinvoll stellen und schreiben was man hat. )

    Jaja, ich hab verstanden..


Anmelden zum Antworten