2
赛马的一天
背景 上世纪90年代末/ 00年代初,Flash Web Design非常酷,以至没有一个完整的Flash网站或至少没有动画小部件的人都无法生存,我受雇在Flash / Actionscript中开发“赛马查看器”,以80年代电子游戏风格的动画形式呈现,因此网站的访问者不仅可以阅读比赛结果,还可以通过动态动画观看比赛结果!哇!令人印象深刻! 他们向我提供了一个CSV文件,其中包含所有比赛的详细信息:开始和到达的顺序,赛马名称,车手姓名,奖品等。我的Flash应用程序为每次比赛读取该文件,并显示上述动画。 如今,Flash支持已大大下降,因此我们必须恢复为ascii-art! 任务 您的任务是创建一个完整的程序或函数,以从标准输入中读取CSV格式的比赛数据,并输出该比赛的ascii艺术表示形式,如下例所示。 输入 带有2个字段的CSV数据:1)开始顺序;2)到达完成时间的时间格式1.13.4(1分钟,13秒,十分之四秒)。如果时间报告R表明该马由于事件,跌倒或其他原因而退赛(未完成比赛)。注意:两匹或更多匹马的到达时间可能相同,在这种情况下,它们共享到达位置。 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 输出值 对于每个CSV行,输出如下所示的赛马场: 1_|______________4(1.13.0)___________________________ 赛马场由以下人员组成: 1 这是马匹的起跑顺序。 _|_垫片在哪里|,终点线在哪里。 50 x _表示十分之一秒。 5(1.13.4)即到达位置,然后是到达时间。这必须考虑到马之间的时差。例如:您将第一个到达的时间定位在终点线上1.11.5,第二个到达的时间1.12.1,相差1.12.1 - 1.11.5 = 6十分之一秒,因此第二匹马应定位在第6个字符上,依此类推。如果时间差超过十分之一秒(或5秒),则必须将马匹放在最后。如果马是R(退缩),则相同。 因此,上面CSV数据的整个运行轨道应为: 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 无需添加F=Finish line,最后一行0123456789...仅用于说明目的。 …