Arka fon
90'ların sonlarında / ilk 00'larda, Flash Web Design'ın hiç kimse tam bir Flash web sitesine veya en azından animasyonlu bir widget'a sahip olmadan yaşayamayacağı kadar serin olduğunda, Flash / Actionscript'te bir "at yarışları görüntüleyicisi" geliştirmek için işe alındım, 80'lerin video oyunu tarzı animasyon şeklinde, bu yüzden sitenin ziyaretçileri sadece yarış sonuçlarını okuyamaz, aynı zamanda hareketli bir animasyonda da görebilirler! VAOV! Etkileyici!
Bana tüm yarış detaylarını içeren bir CSV dosyası sağladılar: başlangıç ve varış sırası, at isimleri, sürücü isimleri, ödüller, vb. Flash uygulamam her yarış için bu dosyayı okudu ve yukarıda belirtilen animasyonu gösterdi.
Günümüzde Flash desteği önemli ölçüde azaldı, bu yüzden ascii-art'a geri dönmeliyiz !
Görev
Göreviniz, standart verileri CSV formatında okuyan ve aşağıdaki örnekte gösterildiği gibi yarışın ascii-art temsilini veren tam bir program veya işlev oluşturmaktır.
GİRİŞ
2 alana sahip CSV verileri: 1) başlangıç sırası; 2) Finişe varış zamanı 1.13.4
(1 dakika, 13 saniye, saniyenin onda biri). Zaman raporları R
, olay, düşme veya başka bir nedenden dolayı atın geri çekildiği (yarışı bitirmediği) anlamına geliyorsa . Not: Varış süresi 2 veya daha fazla at için aynı olabilir, bu durumda varış pozisyonunu paylaşırlar.
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
ÇIKTI
Her bir CSV satırı için aşağıdaki gibi bir yarış pisti çıkın:
1_|______________4(1.13.0)___________________________
Yarış pisti aşağıdakilerden oluşur:
1
hangi atlar emir başlar._|
burada_
bir ara parçası ve|
bitiş çizgisidir.- 50 x
_
saniyenin 50 onda birini temsil eder. 5(1.13.4)
varış noktası ve ardından varış zamanı gelir. Bu, atlar arasındaki zaman farklılıklarına göre konumlandırılmalıdır. Örneğin: 1. sırada bitiş çizgisine geldi1.11.5
, ikincisi zamanında geldi1.12.1
, fark1.12.1 - 1.11.5 = 6
saniyenin onda biri, yani ikinci at 6. karaktere yerleştirilmeli vb. Zaman farkı 50 saniyenin on saniyeden (veya 5 saniyeden) fazlaysa, atı sonuna yerleştirmelisiniz. AtR
(Geri Çekilir) ise aynı .
Dolayısıyla yukarıdaki CSV verileri için tüm yarış pisti şöyle olmalıdır:
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
Eklemeye gerek yoktur F=Finish line
ve son satır 0123456789...
sadece açıklamak içindir.
Test senaryoları
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
kurallar
- En kısa kod kazanır.
1
?
R
ata sahip olmayacağını varsayabilir miyiz ? (Bunun gerçek hayatta mantıklı bir soru olmadığını biliyorum, ama bu kod.)