アニメ『ハイスコアガール』
今期一は他のアニメと思ってましたが、終盤になってこれが一番と思えてきました。
いやあ、ほんと、おもしろいっす。
ゲームでつながる二人の関係は、小、中、高校まで続きます。ハルオはゲーム狂いなので、クラスの高嶺の花である晶のことは、ゲームが強い変なやつぐらいにしか思ってなかったのに、いつの間にか心の中にいます。でもハルオはゲームキチなので、それが何なのか分からない。だから距離が近づいたと思ったら遠のいたり、見てて心揺さぶられます。晶は無口なのに、いや、無口だからこそ、時折の涙や暴力がやたらと可愛いし、頭にゲームしかないハルオがやたらモテるので嫉妬したり、しかしハルオは女子たちを対戦ゲームのライバルだと思ってる。もう青春過ぎてきゅんとなります。
青春を感じるのは、私がゲーム好きだったらかってのもあるかもしれません。ストリートファイター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$


コメント