Hintergrund
In den späten 90ern / ersten 00ern, als Flash Web Design so cool war, dass niemand ohne eine vollständige Flash-Website oder zumindest ein animiertes Widget leben konnte, wurde ich beauftragt, einen "Pferderennen-Viewer" in Flash / Actionscript zu entwickeln. In Form einer Animation im Stil eines Videospiels aus den 80er Jahren konnten die Besucher der Website nicht nur die Rennergebnisse lesen, sondern sie auch in einer bewegenden Animation sehen! BEEINDRUCKEND! Beeindruckend!
Sie stellten mir eine CSV-Datei mit allen Details zum Rennen zur Verfügung: Start- und Ankunftsreihenfolge, Pferdenamen, Fahrernamen, Preise usw. Meine Flash-App las diese Datei für jedes Rennen und zeigte die oben genannte Animation an.
Heutzutage wird die Flash-Unterstützung erheblich abgelehnt, daher müssen wir auf ASCII-Kunst zurückgreifen !
Aufgabe
Ihre Aufgabe ist es, ein vollständiges Programm oder eine vollständige Funktion zu erstellen, die die Renndaten im CSV-Format aus der Standardeingabe liest und eine ASCII-artige Darstellung des Rennens ausgibt, wie im folgenden Beispiel gezeigt.
EINGANG
CSV-Daten mit 2 Feldern: 1) Startreihenfolge; 2) Ankunftszeit im Ziel im Format 1.13.4
(1 Minute, 13 Sekunden, 4 Zehntelsekunden). Wenn die R
Zeitberichte bedeuten, dass das Pferd aufgrund eines Vorfalls, eines Sturzes oder eines anderen Grundes zurückgezogen wurde (das Rennen nicht beendet hat). Hinweis: Die Ankunftszeit kann für 2 oder mehr Pferde gleich sein. In diesem Fall teilen sie sich die Ankunftsposition.
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
AUSGABE
Geben Sie für jede CSV-Zeile eine Rennstrecke wie folgt aus:
1_|______________4(1.13.0)___________________________
Die Rennstrecke besteht aus:
1
Welches ist die Pferde Startreihenfolge._|
Wo_
ist ein Abstandshalter und das|
ist die Ziellinie.- 50 x
_
, was 50 Zehntelsekunden entspricht. 5(1.13.4)
Dies ist die Ankunftsposition, gefolgt von der Ankunftszeit. Dies muss unter Berücksichtigung der Zeitunterschiede zwischen Pferden positioniert werden. Beispiel: Sie positionieren das erste Pferd1.11.5
, das zur Zeit auf der Ziellinie angekommen ist , das zweite kommt zur Zeit1.12.1
, die Differenz beträgt1.12.1 - 1.11.5 = 6
Zehntelsekunden, also sollte das zweite Pferd beim sechsten Zeichen positioniert sein und so weiter. Wenn der Zeitunterschied mehr als 50 Zehntelsekunden (oder 5 Sekunden) beträgt, müssen Sie das Pferd am Ende positionieren. Das gleiche gilt, wenn das PferdR
(zurückgezogen) ist.
Die gesamte Rennstrecke für die oben genannten CSV-Daten sollte also sein:
F=Finish line
1_|____________________________5(1.13.4)_____________
2_|______________4(1.13.0)___________________________
3_|__________________________________________________R
4_|___________3(1.12.7)______________________________
5_1(1.11.5)__________________________________________
6_|____________________________5(1.13.4)_____________
7_|_____2(1.12.1)____________________________________
8_|__________________________________________________6(1.17.9)
012345678901234567890123456789012345678901234567890
Es muss nicht hinzugefügt werden F=Finish line
, und die letzte Zeile 0123456789...
dient nur zur Erläuterung.
Testfälle
RACE:
1,1.14.9
2,R
3,R
4,1.14.2
5,1.15.2
6,1.15.3
7,1.15.3
RACE:
1,1.13.6
2,1.13.8
3,R,
4,1.15.9
5,1.13.8
6,R,
7,1.14.4
8,1.15.6
9,1.14.1
10,1.13.9
11,1.13.2
12,1.14.3
13,1.15.0
RACE:
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9
RACE:
1,1.17.3
2,1.20.4
3,1.17.0
4,1.18.8
5,1.18.5
6,1.18.4
7,1.18.4
8,1.17.8
9,1.18.3
10,1.18.7
11,R
RACE:
1,1.17.5
2,R
3,1.17.7
4,1.16.9
5,1.16.1
6,1.18.9
RACE:
1,1.12.8
2,1.13.0
3,1.13.2
4,1.12.7
5,1.11.5
6,1.13.0
7,1.12.1
8,1.12.8
Regeln
- Der kürzeste Code gewinnt.
1
?R
Pferd geben wird? (Ich weiß, dass dies im wirklichen Leben keine vernünftige Frage ist, aber dies ist Code.)Antworten:
JavaScript (ES6), 261 Byte
Nimmt ein Array von Zeitzeichenfolgen
"1.ss.t"
als Eingabe. Die Startreihenfolge ist implizit.Demo
Code-Snippet anzeigen
quelle
Python 2,
282272246 BytesÄhnlich wie bei Arnauld wird angenommen, dass die Eingabe bereits von der Startnummer entfernt wurde, da sie implizit ist.
quelle