Reaktionsspiel mit srand & Clock()



  • @RBS2 es funktioniert. Das stimmt. Aber warum sollte man es nutzen, wenn es keine Vorteile hat, aber Nachteile? Was mir spontan einfällt sind fehlende type safety, keine direkte Kompatibilität zu z.B. der thread lib, geringere Auflösung und schlechtes C++-Design. Warum also so etwas nutzen (selbst wenn die Kompatibilität zu anderen C++ libs in dem Anwendungsfall wegfällt, sollte man es doch verwenden, um, wenn man es doch braucht, sich massig Umwandlung/Änderungen im Code zu sparen).



  • @Ronny2709 Wo wir schon dabei sind:
    Das srandgehört nur einmal in das Programm.
    Irgendwo am Anfang.


  • Gesperrt

    @Unterfliege sagte in Reaktionsspiel mit srand & Clock():

    @RBS2 es funktioniert. Das stimmt. Aber warum sollte man es nutzen, wenn es keine Vorteile hat, aber Nachteile? Was mir spontan einfällt sind fehlende type safety, keine direkte Kompatibilität zu z.B. der thread lib, geringere Auflösung und schlechtes C++-Design. Warum also so etwas nutzen (selbst wenn die Kompatibilität zu anderen C++ libs in dem Anwendungsfall wegfällt, sollte man es doch verwenden, um, wenn man es doch braucht, sich massig Umwandlung/Änderungen im Code zu sparen).

    Ja, aber bei dieser kleinen und überschaubaren Aufgabe fallen deine Einwände nicht so ins Gewicht. Er will doch rand() und clock() benutzen. Die sind beide sowieso nicht das Gelbe vom Ei.

    Sein Programm wird nicht "besser" oder "schlechter", wenn er C oder C++ benutzt. Bei größeren Projekten hast du sicher Recht. Dabei ist "mixed code" aus C und C++ kaum sinnvoll, d.h. man sollte sich schon für eine dieser Sprachen entscheiden und dabei bleiben.



  • @RBS2 ich stimme dir vollkommen zu, dass es in diesem kleinen Programm egal ist. Allerdings hat man dann bereits einen solchen Mix, gegen den du ja auch bist. Es geht vor allem am Anfang darum, es richtig und sauber zu lernen. Klar sollte man auch die C-Funktionen kennen, aber da er C++ lernen will, sollte man die erst am Schluss lernen, um eben keinen schlechten Stil zu entwickeln.


  • Gesperrt

    @Unterfliege sagte in Reaktionsspiel mit srand & Clock():

    aber da er C++ lernen will

    Das wissen wir nicht. Er hat zwar seine Frage im C++-Unterforum gepostet, aber das will nichts heißen.



  • Also erstmal Danke für die ganzen Antworten, aber leider kann ich damit nicht so viel anfangen, außer das ich jetzt das srand am Anfang haben muss. Bin noch sehr ein Anfänger und Studiere Mechatronik. Da hatten wir im ersten Semester C gelernt. Jetzt im Zweiten lernen wir C++ und Programmieren mit Visual Studio Enterprise also auf Windows.



  • Und was ist deine Frage (außer „kann mir mal einer meine Hausaufgaben machen“)?


  • Gesperrt

    @manni66 sagte in Reaktionsspiel mit srand & Clock():

    Und was ist deine Frage (außer „kann mir mal einer meine Hausaufgaben machen“)?

    Ja, die obligatorische Komplettlösung fehlt. Nur den Thread lange genug oben halten, dann kommt die auch. 🐱



  • Zerlege dein Problem doch einfach in die Einzelschritte:

    int wait_time = /*random_number*/;
    std::this_thread::sleep_for(std::chrono::milliseconds(wait_time);
    std::cout << "___";
    // save start time here
    getch(); // or an alternative
    // save end time here
    // calc duration and output it
    

    Das musst du jetzt nur noch mithilfe der gezeigten Links in echten C++-Code umwandeln



  • @Unterfliege Danke, so ähnlich habe ich es jetzt gemacht und habe mit einer Abfrage in einer While-schleife die Bedingung des Neustarts geprüft.



  • @manni66 Ich hatte nur keine Ahnung von der Clock() Funktion, weil ich die noch nie hatte und habe sie auch nicht verstanden. Wollte das mir die eventuell jemand erklärt, aber hab jetzt ein passendes Beispiel bei Google gefunden das ich verwenden konnte.



  • @Ronny2709 ich habe dir bewusst kein Beispiel zu clock() gezeigt, weil du das in gutem C++ Code eigentlich nicht verwenden solltest. Die Alternative habe ich oben verlinkt.


Anmelden zum Antworten