雨谷の日和

過去20年で2,800を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

人狼BBS作成日記53

さて、次は襲撃/占い/護衛のデータの読み込みを考えてみます。
まず、以下のようにデータを格納する変数を用意しておきます。

@Exec_Attack = (-1, -1);
@Exec_Fortune = (-1, -1);
@Exec_Guard = (-1, -1);

これらは第二候補まで設定できないといけないので、配列にします。
で、読み込み部分を昨日のヤツに追加します。関連する部分だけを抜き出すと以下のようになるでしょう。

      if($Line_Type == 51){
        $Char_Vote[$Line_Char_Index] = $data[0];
      }elsif($Line_Type == 52){
        $Exec_Attack[0] = $data[0];
        $Exec_Attack[1] = $data[1];
      }elsif($Line_Type == 53){
        $Exec_Fortune[0] = $data[0];
        $Exec_Fortune[1] = $data[1];
      }elsif($Line_Type == 54){
        $Exec_Guard[0] = $data[0];
        $Exec_Guard[1] = $data[1];
      }elsif($Line_Type == 81){
        push(@Char_Name, $data[0]);
        push(@Char_Icon, $data[1]);
        push(@Char_Vote, -1);
      }
      if($Day_Count_Max < $Line_Day){
        $Day_Count_Max = $Line_Day;
        foreach $vote (@Char_Vote) {
          $vote = -1;
        }
        @Exec_Attack = (-1, -1);
        @Exec_Fortune = (-1, -1);
        @Exec_Guard = (-1, -1);
      }

それぞれのコードだった場合に、それを該当する配列にセットしていきます。
また、日付が変わればそれをまた-1にクリアします。
これで、その日にセットされた襲撃先/占い先/護衛先を変数に格納することになります。
ところで、その日に何もセットされなかった場合は変数の値が-1のままなんですが、その場合はどうしようかという問題が残ります。まあ、ランダムで良いかなぁと思ってますけども。