2016-04-29 20 views
2

Ich habe funktionierendes Labyrinth-Spiel in C++ in der Konsole erstellt.C++ maze count passing time

Ich möchte Funktion hinzufügen, um Zeit zu zählen, die benötigt wird, um das Labyrinth nach Spieler zu übergeben.

Gesamtzeit kann nach dem Labyrinth angezeigt werden.

Ich würde wirklich jede Hilfe oder Ideen schätzen. obwohl

do { 
    show(); // function do display maze , 2d array 
    cout << "Your position: " << x << " " << y << endl; 
    cout << "Coins gained: " << coins << endl; 
    cout << "blahblahblah" : "<<endl; 
    m = getche(); 
    cout << endl; 
    move(m); // function to recognize which way player want to go, including checking for not going through the wall 
    cout << endl; 
    system("CLS"); 
} while (x != 12 || y != 18 || coins < 10); //for pass the maze player have to move on these position and gain x coins 

system("CLS"); 
cout << "You Won!" << endl; 
cout << "Click enter to move on. \n"; 
+0

Ihr Beitrag ist nicht klar, auf was Sie eigentlich Hilfe brauchen. Haben Sie eine _spezielle_ Frage oder etwas _spezifisches_ benötigen Sie Hilfe? \ –

+0

Wenn Ihr Compiler C++ unterstützt 11 'std :: chrono' wäre der Ort zu starten: http://en.cppreference.com/w/cpp/chrono – drescherjm

Antwort

1
#include <time.h> 
#include <iostream> 

int main() { 
    int start, end, total; 
    start = time(NULL); 
//place loop here 
    //game ends, calc time 
    end = time(NULL); 
    total = end - start; 
    std::cout << "You completed the maze in " << total << " seconds."; 
    return 0; 
} 

Wesentliches, was das bedeutet ist die Startzeit an einem bestimmten Punkt zu zählen, dann zu einem späteren Zeitpunkt (in Sekunden) aufhören zu zählen,:

Hauptspiel-Schleife sieht so ähnlich cin und getch() oder irgendetwas anderes, das das Programm pausiert, um eine Eingabe zu erhalten, kann dazu führen, dass der Timer stoppt. In bestimmten Bibliotheken wird die Systemzeit verwendet. In anderen Bibliotheken wird die Laufzeit verwendet. Sei dies vorsichtig, und wenn es Laufzeit nicht verwenden, müssen Sie wie

int main(){ 

     time_t myTime,myTimeEnd; 
     time(&myTimeEnd); 
     myTime = myTimeEnd; 
    //code 
     time(&myTime); 
     int total = myTimeEnd - myTime; 
     std::cout<< "Time taken is " << total << " seconds."; 
     return 0; 
    } 

Die zweite Methode wird eine Eingabemethode verwenden und hält die Zeit für Sie, die, indem Sie Ihre Zeitvariable durch Verweis gespeichert zur Zeitfunktion, die Zeit bekommt.

+0

Oh, ich habe Chrono verwendet, bevor es so wäre nicht zu schwierig sein. Danke für die Hilfe. – Matthaius