Programm das Rundenzeiten Simuliert?
Hallo,
Hat jemand eine Idee wie ich dieses Problem lösen könnte, zusammen mit Zwei Freunden haben wir ein Go kart, aber da immer nur eine Strecke abfahren ohne Gegner auf Dauer langweilig ist haben wir uns gedacht dass wir mal ein Programm schreiben in dem wir unsere Rundenzeit auf dem Kurs eintragen und es dann eben verschiedene "Gegner" gibt die auch Rundenzeiten setzen und daraus wird dann eben die Position im Rennen berechnet.
Als ich allerdings mal versucht habe das ganze zu Programmieren ist mir aufgefallen dass das garnicht so einfach ist wie gedacht (habe das einmal in Python und einmal in VBA probiert)
Deswegen wüsste ich gerne ob jemand eine konkrete Idee hat wie ich das Programmieren könnte?
Du willst also einfach nur ein Programm, das Rundenzeiten sortiert?
Naja es soll zum einen Rundenzeiten sortieren aber auch Rundenzeiten generieren
Nach welchen Kriterien sollen sie Zeiten generiert werden? Die Frage ist mir echt viel zu ungenau gestellt.
Die Zeiten sollen zufällig generiert werden zwischen 55 und 60 sekunden und sollen Zwei Nachkommastellen haben
Daraus sollen dann noch die Abstände und Positionen berechnet werden
1 Antwort
Zeiten zufällig erzeugen sollte trivial sein. (Du nimmst eine Verteilung und lässt dir entsprechend Werte generieren.
Position auf der Strecke kannst du berechnen indem du die Strecke als Kurve über die Zeit parametrisierst.
Von den zwei genannten Programmiersprachen würde ich zu Python raten. Im Allgemeinen aber eher ganz was anderes verwenden (C++, Java, ... ).
Werte speichern kann man in Datenbanken, Werte eingeben mittels GUI oder Konsole. Für al das gibt es APIs. Für Zufallszahlen erzeugen auch. Und visualisieren kann man das auch vergleichsweise einfach mit dem passendem API.
Das Parametrisieren der Kurve musst du selbst erledigen durch Messungen. (Am besten vermutlich einmal senkrecht von oben fotografieren, dann die Kurve digital nachbauen und passend skalieren.)
Im Übrigen gibt es auch spezielle Tools für Robotersimulationen (so Zeug wie Gazebo, ROS, ...).
Aber es braucht weder Hardwarenähe noch Performance, warum also eine Sprache nehmen die eine so niedrige Entwicklungsgeschwindigkeit hat? Java/C# oder eine simple Webseite wäre da mmn vollkommen ausreichend
Klar ist Performance immer gut aber in dem Fall würde einfach keinen wahrnehmbaren unterschied machen in welcher Sprache es implementiert wurde.
Und bei C++ ist alleine die Kompilationszeit schon ein enormer Zeitfaktor im Vergleich zu C# / Java. Und tagelanges Templatedebugging gibts auch nicht
Doch. Python ist schon wahrnehmbar deutlich langsamer als C++, selbst bei einfachen Anwendungen.
Kompilen musst du das Zeug nur einmal. Bei C# und Java wird im Übrigen mehrfach kompiliert.
Templatdebugging gibt es nur, wenn man Templates verwendet. Und das ist auch nicht allzu schwer, wenn man Erfahrung hat.
Ok, stell dir vor OP schreibt sein Programm 3 mal. Einmal in C++, einmal in Java und einmal in Python.
Dann werden dir alle 3 Programme vorgelegt und du erkennst dann Problemlos an der Performance welches in welcher Sprache geschrieben wurde? Das bezweifel ich ganz stark...
Die JIT Kompilation ist für die Entwicklungszeit aber vollkommen irrelevant. Die AOT Kompilation ist was zählt und die ist nun mal in C++ deutlich langsamer als in Java oder C#.
Dann werden dir alle 3 Programme vorgelegt und du erkennst dann Problemlos an der Performance welches in welcher Sprache geschrieben wurde?
Je nach Performencmetrik.
Aber nein, eher nicht, kann man sich ja auch etch blöd anstellen dabei und je nach JVM ist auch das Laufzeitverhalten des Javaprogramms komplett anders.
Die JIT Kompilation ist für die Entwicklungszeit aber vollkommen irrelevant.
Natürlich ist die relevant, wenn man sein Programm testen muss. Und dann muss das auch laufen, wenn das ewig braucht, dann hilft einem eine schnelle Compilation auch nichts.
Bei dem Programm, das der Fragensteller plant, sollte die Compilationszeit aber bei allen angegebenen Sprachen recht gering sein, sofern man einen modernen Compiler nutzt und nicht groben Unfug baut.
ok, lass mich raten: du hast außer dem standard Javazeug im Studium nie wirklich mit C# oder Java gearbeitet?
Warum in aller Welt sollte man das mit C++ machen?