Drucken Sie auf STDOUT ein Muster, das zeigt, in welche Richtung ein springender Ball gehen wird.
Folgende Annahmen werden getroffen:
- Der Ball beginnt in der oberen linken Ecke:
0, 0
mit einer Anfangsgeschwindigkeit von Null. - Die Schwerkraft ist
9.8ms^-2
genau in Richtung Boden (y positiv). - Der Ball wiegt
500g
genau. - Der Ball springt mit 45 oder 135 Grad zum Boden, es sei denn, Sie möchten die entsprechenden Berechnungen hinzufügen, um variable Flugbahnen hinzuzufügen. (Beliebige Bonuspunkte!)
- Der Ball hat einen
Federkonstanten-Restitutionskoeffizienten / Sprungkonstanten von0.8
genau. - Der Ball ist perfekt kugelförmig und verformt sich beim Abprallen nicht.
- Der Raum ist 25 Zeichen hoch und 130 Zeichen breit. Jedes x und y ist 1 Meter und jede Ballposition stellt eine diskrete Probe dar - der genaue Zeitraum ist absichtlich nicht spezifiziert, aber die Anzeige sollte den Weg des Balls ausreichend klar machen. Die Ausgabe sollte den Weg des Balls zeigen, nicht nur die Endposition.
- Der Boden und die Kugel sollten mit Zeichen auf STDOUT gekennzeichnet werden, die möglicherweise gleich sind. Das Vorhandensein keiner Kugel oder Bodenfläche ist mit einem Leerzeichen zu kennzeichnen.
- Sie können bei allen Berechnungen von einer Rundung auf drei Dezimalstellen ausgehen. (Lösungen, die reine Ganzzahlen verwenden, sind möglicherweise besonders an dieser Regel interessiert.)
- Die Simulation stoppt, wenn sich der Ball entweder nicht vom Boden bewegt oder den Raum verlässt (
x > width of area
.) - Das Programm muss den Pfad des Balls simulieren, ihn nicht einfach aus einer Datei laden oder irgendwie im Programm codieren lassen. Der Test hierfür besteht darin, optional eine der Konstanten zu ändern. Wenn das Programm kein neues, korrektes Ergebnis berechnet, ist es nicht qualifiziert.
Beispielausgabe:
*
*
*
*
*
*
*
*
*
* ***********
* ***** ****
* **** ***
* *** ***
* ** **
* *** **
* ** ** *********
* * ** **** ****
* ** * ** **
* * ** ** **
* * * ** ** ********
* ** * ** ** **** ****
* * ** ** ** ** **
* * ** ** ** ** ** **
** ** ** ** ** ** **
* **** **** ***
**********************************************************************************************************************************
Ermittlung des Gewinners. Ich werde die Antwort akzeptieren, die:
- Erfüllt die oben definierten Regeln.
- Bonusleistung wird berücksichtigt.
- Ist die kürzeste und eleganteste (subjektive Entscheidung.)
code-challenge
Thomas O.
quelle
quelle
code-golf
oder ,code-challenge
oder was? Bitte entsprechend kennzeichnen.Antworten:
Python 143 Bytes
Die resultierende Kurve unterscheidet sich geringfügig vom Beispiel, dies liegt jedoch daran, dass die Geschwindigkeit angepasst wird, bevor der Ball in den Boden geht, anstatt nachdem er bereits hat.
Python 132 Bytes
Eine realistischere Version, die mit einer konstanten x- Geschwindigkeit beginnt :
Produziert:
quelle
Ich werde meine eigene Lösung in Python einreichen. Nur leicht vereinfacht; Ich bin sicher, es gibt viel bessere Möglichkeiten!
282280 Zeichen. Die Beispielausgabe im Fragenbeitrag wurde mit diesem Programm generiert.quelle