aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-102/luca-ferrari/raku/ch-2.p629
-rw-r--r--challenge-102/luca-ferrari/raku/filelist.csv7
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-102/luca-ferrari/raku/ch-2.p6 b/challenge-102/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..9ea6e731df
--- /dev/null
+++ b/challenge-102/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,29 @@
+#!raku
+
+
+sub MAIN( Int $start-ms where { $start-ms > 0 },
+ Int $now-ms where { $now-ms >= $start-ms },
+ Str $filename ) {
+
+ # lookup file name and tracks
+ my @tracks;
+ for $filename.IO.lines {
+ my ( $ms, $track ) = .split: ',';
+ @tracks.push: { time => $ms,
+ track => $track };
+ }
+
+ # try to reach the end of the time
+ my $diff = $now-ms - $start-ms;
+ my $last-track = 0;
+ while ( $diff > 0 ) {
+ $last-track = 0;
+ for @tracks.kv -> $index, $track {
+ $diff -= $track< time >;
+ last if ( $diff <= 0 );
+ $last-track = $index;
+ }
+ }
+
+ "Now playing { @tracks[ $last-track ]<track> } ".say;
+}
diff --git a/challenge-102/luca-ferrari/raku/filelist.csv b/challenge-102/luca-ferrari/raku/filelist.csv
new file mode 100644
index 0000000000..9428b93004
--- /dev/null
+++ b/challenge-102/luca-ferrari/raku/filelist.csv
@@ -0,0 +1,7 @@
+1709363,"Les Miserables Episode 1: The Bishop (broadcast date: 1937-07-23)"
+1723781,"Les Miserables Episode 2: Javert (broadcast date: 1937-07-30)"
+1723781,"Les Miserables Episode 3: The Trial (broadcast date: 1937-08-06)"
+1678356,"Les Miserables Episode 4: Cosette (broadcast date: 1937-08-13)"
+1646043,"Les Miserables Episode 5: The Grave (broadcast date: 1937-08-20)"
+1714640,"Les Miserables Episode 6: The Barricade (broadcast date: 1937-08-27)"
+1714640,"Les Miserables Episode 7: Conclusion (broadcast date: 1937-09-03)"