アニメ『ハイスコアガール』
今期一は他のアニメと思ってましたが、終盤になってこれが一番と思えてきました。
いやあ、ほんと、おもしろいっす。
ゲームでつながる二人の関係は、小、中、高校まで続きます。ハルオはゲーム狂いなので、クラスの高嶺の花である晶のことは、ゲームが強い変なやつぐらいにしか思ってなかったのに、いつの間にか心の中にいます。でもハルオはゲームキチなので、それが何なのか分からない。だから距離が近づいたと思ったら遠のいたり、見てて心揺さぶられます。晶は無口なのに、いや、無口だからこそ、時折の涙や暴力がやたらと可愛いし、頭にゲームしかないハルオがやたらモテるので嫉妬したり、しかしハルオは女子たちを対戦ゲームのライバルだと思ってる。もう青春過ぎてきゅんとなります。
青春を感じるのは、私がゲーム好きだったらかってのもあるかもしれません。ストリートファイター2は、実はハマってません。1の殴打操作が良かったので、ボタンの指先操作ってのに邪道を覚えたので、あえてやらなかったです。バーチャファイター1は、もう張り付いたようにやってました。独身だったので、ゲームセンターで給料全部使える、ぐらいの勢いで鉄山靠繰り出してました。
VF2が登場した頃は、本当にハマりすぎてたので、お金も続かず、高いゲーセンから、1プレイ50円でバーチャファイターがやれる、安いゲーセンを見つけて通いましたが、やはり安いところは対戦待ちする人が多かったです。
勝ち進んでいる対戦台の向こうのお兄さんは、アキラ使いで鉄山靠を見事に決めていて、お兄さんのファッションも(鉢巻ではなくバンダナでしたが)アキラみたいだったのが印象的でした。
さて、続きです。
前回作ったis_higher関数、とても分かりにくいです。
sub is_higher{ my($rev_a, $rev_b) = @_; my($rev_a1,$rev_a2) = split /\./,$rev_a; my($rev_b1,$rev_b2) = split /\./,$rev_b; return "yes" if ($rev_a1 > $rev_b1); return "no" if ($rev_a1 < $rev_b1); if($rev_a1 == $rev_b1){ return "yes" if ($rev_a2 > $rev_b2); return "no" if ($rev_a2 < $rev_b2); } return "ng"; }
なので、このような関数に変えました。有効レビジョンかどうかをyes、noで返します。
sub is_valid_revision{ my($from, $rev, $to) = @_; my($from1,$from2) = split /\./,$from; my($rev1,$rev2) = split /\./,$rev; my($to1,$to2) = split /\./,$to; return "no" if ($from1 > $rev1); return "no" if ($to1 < $rev1); return "no" if ($from2 > $rev2); return "no" if ($to2 < $rev2); return "yes"; }
使い方は、
is_valid_revision(FROM-REV, REV, TO-REV)
これを組み込んだ全ソースです。
takk@deb9:~/tmp$ cat -n my-rcs.pl 1 @target_rev = (); 2 foreach(@ARGV){ 3 if(/-r(\d+\.\d+):(\d+\.\d+)\b/){ 4 $from=$1; $to=$2; 5 next; 6 } 7 if(/-r(\d+\.\d+(?:\,\d+\.\d+)*)\b/){ 8 @target_rev = split /,/,$1; 9 next; 10 } 11 } 12 13 $working_file = $ARGV[0]; 14 $rcs_file = "./RCS/$working_file,v"; 15 $n=$#target_rev+1; 16 open(IN,"<$rcs_file"); 17 while(<IN>){ 18 chomp; 19 if(/^head\t(\d+\.\d+);/){ 20 $head = $1; 21 next; 22 } 23 if(/^locks; (\w+);/){ 24 $locks = $1; 25 next; 26 } 27 if(/^(\d+\.\d+)$/){ 28 $rev = $1; 29 next; 30 } 31 if(/^(date\t\d\d\d\d\..*)$/){ 32 $date = $1; 33 $hist{$rev} .= ":SEP:" . $date; 34 $total_revision++; 35 next; 36 } 37 if(/^log$/){ 38 $sts = "log-start"; 39 next; 40 } 41 if($sts eq "log-start"){ 42 if(/^\@/){ 43 s/^\@//; 44 $hist{$rev} .= ":SEP:" . $_; 45 $sts = "log"; 46 } 47 next; 48 } 49 if($sts eq "log"){ 50 if(/\@$/){ 51 s/\@$//; 52 $hist{$rev} .= $_ . ":SEP:"; 53 $sts = ""; 54 next; 55 } 56 $hist{$rev} .= $_; 57 } 58 } 59 close(IN); 60 61 @all = sort {$b <=> $a} keys %hist; 62 print <<EOL; 63 64 RCS file: $rcs_file 65 Working file: $working_file 66 head: $head 67 branch: 68 locks: $locks 69 access list: 70 symbolic names: 71 keyword substitution: 72 total revisions: $total_revision; selected revisions: $n 73 description: 74 75 EOL 76 foreach(@all){ 77 my $rev = $_; 78 79 my $aa= is_valid_revision($from,$rev,$to); 80 next if($aa eq "no"); 81 82 # foreach(@target_rev){ 83 # next unless(/$rev/); 84 my $line = $hist{$rev}; 85 my ($tmp,$date,$log) = split /:SEP:/,$line; 86 87 print "----------------------------\n"; 88 89 print"revision $rev\n"; 90 print"$date\n"; 91 print"$log\n"; 92 # } 93 } 94 print"=============================================================================\n"; 95 96 97 sub is_valid_revision{ 98 my($from, $rev, $to) = @_; 99 100 my($from1,$from2) = split /\./,$from; 101 my($rev1,$rev2) = split /\./,$rev; 102 my($to1,$to2) = split /\./,$to; 103 104 return "no" if ($from1 > $rev1); 105 return "no" if ($to1 < $rev1); 106 107 return "no" if ($from2 > $rev2); 108 return "no" if ($to2 < $rev2); 109 110 return "yes"; 111 } takk@deb9:~/tmp$
実行してみます。
takk@deb9:~/tmp$ perl my-rcs.pl test.c -r1.2:1.3 RCS file: ./RCS/test.c,v Working file: test.c head: 1.10 branch: locks: strict access list: symbolic names: keyword substitution: total revisions: 10; selected revisions: 0 description: ---------------------------- revision 1.3 date 2018.09.13.11.00.44; author takk; state Exp; TEST ---------------------------- revision 1.2 date 2018.09.12.11.58.02; author takk; state Exp; 2nd Check in ============================================================================= takk@deb9:~/tmp$
コメント