Skip to content

Instantly share code, notes, and snippets.

@am0c
Created February 11, 2011 18:55
Show Gist options
  • Select an option

  • Save am0c/822819 to your computer and use it in GitHub Desktop.

Select an option

Save am0c/822819 to your computer and use it in GitHub Desktop.
Jubeat Evans Play Simulation
#!/usr/bin/env perl
#
# Jubeat Evans Play Simulation
# -----------------------------
#
#
use Time::HiRes qw(usleep);
use List::Util qw(sum);
use warnings;
use strict;
local $| = 1;
my $file = *DATA;
my %note;
sub clear { system "clear" }
my $note_length = do {
my $s; chomp($s = readline $file) for 1 .. 6; $s
};
my @note_time = map <$file>+0, 1 .. $note_length;
for my $i (0 .. $note_length - 1) {
my $curtime = $note_time[$i];
push @{$note{$curtime}}, <$file> + 0;
}
sub loop_note (&) {
for my $k (sort {$a <=> $b} keys %note) {
local $_ = $k; $_[0]->();
}
}
loop_note { $note{$_} = sum @{$note{$_}} };
sub marker {
my ($note) = @_;
my $s = ("\t\t\t[ ][ ][ ][ ]"."\n")x4;
my $c = 0; $s =~ s{ }{
2 ** $c++ & $note and "#" or " "
}ge;
$s;
}
my $last = 0; loop_note {
usleep 105465 * ($_ - $last);
clear; print for marker $note{$_};
$last = $_;
};
__DATA__
Evans_EXT (4x4)
key20208447226020
185.000000
105465
1180
805
17
19
21
23
35
35
35
35
41
41
41
41
45
45
45
45
49
49
49
49
49
51
53
55
75
76
77
79
80
81
81
83
85
85
87
89
91
93
95
97
99
99
101
103
105
105
107
109
109
111
113
113
115
117
119
121
121
123
125
127
129
129
131
131
137
137
140
140
143
143
149
149
149
149
153
155
157
159
161
163
165
167
169
170
171
173
175
177
179
181
183
185
187
189
191
193
193
195
195
197
199
201
201
203
205
205
207
209
209
211
213
213
215
217
219
221
223
225
225
227
229
231
233
234
235
237
239
241
241
243
245
247
249
249
251
253
255
257
257
259
259
261
263
265
267
268
269
269
271
272
273
273
305
305
308
308
311
311
314
314
317
319
321
321
324
324
327
327
330
330
333
335
337
337
340
340
343
343
346
346
349
351
353
353
356
356
359
359
362
362
365
367
369
369
372
372
375
375
378
378
381
383
385
385
388
388
391
391
394
394
397
399
401
401
404
404
407
407
410
410
413
415
417
417
420
420
423
423
426
426
429
431
433
433
436
436
439
439
442
442
445
447
449
449
452
452
455
455
458
458
461
463
465
465
468
468
471
471
474
474
477
479
481
481
484
484
487
487
490
490
493
495
497
497
500
500
503
503
506
506
509
511
513
513
516
516
519
519
522
522
525
527
529
529
532
532
535
535
538
538
541
543
545
545
548
548
551
551
554
554
555
556
557
559
560
561
561
561
565
569
573
575
581
585
589
591
593
593
597
597
597
597
601
601
605
605
607
607
613
613
617
617
621
621
622
623
623
624
625
625
625
625
629
629
631
631
637
637
638
639
639
640
641
641
641
641
645
647
653
655
657
661
665
669
673
677
681
685
689
691
693
695
697
699
701
703
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
737
738
739
740
741
744
747
749
751
753
753
753
753
756
757
759
759
761
762
762
765
767
769
769
772
772
773
775
775
777
778
778
781
783
785
785
788
788
789
791
791
793
794
794
797
798
799
800
801
801
801
801
804
804
807
807
809
809
809
809
812
812
815
815
817
817
820
820
821
821
823
823
825
826
826
829
831
831
833
833
833
833
836
836
837
839
839
841
842
842
845
847
849
849
849
849
852
852
855
855
857
857
858
858
861
863
865
865
866
867
869
869
871
871
874
874
877
879
881
881
884
884
885
887
887
889
890
890
893
895
897
897
900
900
901
903
903
905
906
906
909
911
913
913
916
916
917
919
919
921
922
922
925
927
929
929
929
929
932
932
933
933
935
935
937
937
938
938
940
940
943
943
945
945
948
948
949
951
951
953
954
954
957
959
961
961
961
961
964
964
965
967
967
969
970
970
973
975
977
977
977
977
980
980
981
983
983
985
985
986
986
989
991
993
994
995
996
997
997
999
999
1003
1003
1005
1005
1007
1007
1009
1009
1009
1009
1013
1013
1015
1015
1025
1025
1029
1029
1031
1033
1033
1037
1037
1041
1041
1045
1049
1049
1053
1055
1057
1057
1059
1061
1061
1063
1065
1065
1067
1068
1068
1069
1071
1071
1073
1073
1077
1079
1081
1085
1085
1089
1089
1093
1097
1101
1101
1105
1105
1109
1111
1113
1113
1115
1117
1119
1121
1121
1121
1123
1125
1127
1129
1131
1133
1135
1141
1141
1143
1143
1145
1146
1146
1149
1151
1153
1153
1156
1156
1157
1159
1159
1161
1162
1162
1165
1167
1169
1169
1172
1172
1173
1175
1175
1177
1178
1178
1179
1181
1182
1183
1184
1185
1185
1187
1187
1188
1188
1191
1193
1194
1194
1195
1197
1197
1199
1201
1201
1203
1203
1204
1207
1209
1209
1211
1212
1213
1213
1215
1216
1217
1217
1219
1219
1220
1223
1225
1225
1226
1229
1229
1231
1232
1233
1233
1235
1236
1237
1239
1240
1241
1241
1243
1244
1245
1247
1249
1249
1251
1253
1253
1255
1257
1257
1259
1260
1261
1261
1263
1264
1265
1265
2048
1024
512
256
16
32
64
128
4096
8192
16384
32768
1
2
4
8
16
256
512
1024
2048
32
64
128
32
512
8192
8
128
1024
2048
1
16384
32768
2
4
32
64
512
1024
4096
32768
8192
16384
256
2048
32
16
128
2
1
8
512
1024
64
4
8192
256
16
32
2
16384
1
32768
512
1024
32
64
2
4
1
8
16
128
32
256
1024
2048
64
128
512
16
4096
8192
16384
2048
256
2
1
64
8
16384
512
1024
32
4096
32768
256
2048
2
4
8192
16384
8
512
1024
128
32
64
2048
2
4
32768
16384
4096
1024
256
32
64
16
4
1
8
512
1024
128
32
4096
32768
8192
16384
512
256
2048
1024
64
32
4096
32768
16
128
8192
8
4
2
32
256
512
64
1024
16384
32768
16
2048
128
256
1
32768
8
4096
1024
32
4
8192
2
16384
8
4096
1
32768
64
512
16
2048
128
256
1
32768
8
4096
1024
32
4
8192
2
16384
8
4096
1
32768
64
512
16
2048
128
256
1
32768
8
4096
1024
32
4
8192
2
16384
8
4096
1
32768
512
1024
16
2048
8
4096
1
32768
128
256
32
512
4
8192
1
32768
8
4096
2
16384
64
32
16
2048
128
256
1
32768
8
4096
1024
32
4
8192
2
16384
8
4096
1
32768
512
64
16
2048
128
256
1
32768
8
4096
32
1024
4
8192
2
16384
8
4096
1
32768
64
512
16
2048
128
256
1
32768
8
4096
1024
32
4
8192
2
16384
8
4096
1
32768
512
1024
16
2048
8
4096
1
32768
128
256
32
512
4
8192
1
32768
8
4096
2
16384
16
32
64
2048
1024
4
512
8192
1
8
4096
32768
1
8
4096
32768
256
2048
1
16
32
128
8
64
512
4096
1024
32768
1
32
8
64
512
4096
8192
1024
32768
16384
16
128
256
2048
1
32
8
64
512
4096
8192
1024
32768
16384
16
128
256
2048
32
64
512
1024
256
4096
8192
16384
32768
2048
128
8
4
2
1
16
256
4096
8192
16384
32768
2048
128
8
4
2
1
16
256
4096
8192
16384
1024
64
32
512
2
4
32
64
512
1
8
4096
1024
4
16
2048
8192
256
512
1
32768
64
8
4096
1024
32
4
8192
2
16384
512
8
4096
64
1
32768
32
1024
16
2048
128
256
512
1
32768
64
8
4096
32
16
1024
2048
4
128
256
8192
2
16384
8
4096
1
64
512
32768
32
1024
4
8192
16
2048
128
256
2
16384
1
32768
64
8
4096
512
32
1024
4
16
2048
8192
2
16384
256
8
4096
128
1
32768
512
1024
2
16
2048
16384
8
4096
1
32768
32
64
128
256
512
1024
4
8192
16
2048
1
32768
8
4096
2
16384
64
32
16
2048
128
256
512
1
32768
1024
8
4096
32
64
4
8192
2
16384
512
8
4096
1024
1
32768
32
64
16
2048
128
256
512
1
32768
1024
8
4096
32
64
4
128
256
8192
2
16384
16
2048
8
4096
512
1024
1
32768
32
64
4
8192
2
16384
128
256
2048
1
32768
16
8
4096
1024
32
4
128
256
8192
2
16384
64
8
4096
512
1
32768
32
1024
2
16
2048
16384
8
4096
4
1
32768
64
512
128
256
8192
1024
2
4
4096
32768
1
8
256
2048
8192
16384
512
1024
32
64
16
128
4096
32768
256
2048
2
4
512
1024
4096
32768
8192
256
2048
16
128
1
8
8192
4096
32768
4
2
1
8
256
16
128
2048
8192
16384
32768
512
1024
4096
32
64
1
8
4
8192
16384
4096
32768
256
2048
32
64
16
128
1
8
8192
16384
4096
32768
2
64
32
256
1024
2048
512
16384
8192
4
2
64
32
128
256
1
32768
1024
8
4096
32
64
4
8192
2
16384
512
8
4096
1024
1
32768
32
64
16
2048
128
256
512
1
32768
1024
8
4096
32
2
4
8192
16384
16
2048
64
512
128
256
1024
32
1
32768
4096
4
8192
8
2
16384
16
128
256
1
4096
32768
4
64
1024
2048
2
32
256
512
16
128
8
1
4096
32768
2048
8192
16384
2
4
8
128
16
32
64
512
1024
2048
32768
4096
8192
16384
4
1
8
2
16
128
32
256
2048
4096
8192
1024
16384
1
2
4
64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment