雨谷の日和

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

人狼BBS作成日記54

次は、襲撃と処刑の場合について考えてみます。
ただ、まだ日付更新の実装を全く考えていないので、とりあえずデータを読み込むことだけを考えてみます。
襲撃と処刑で変わる状態はキャラクターの生死フラグということになると思います。
ですから、そのための配列を用意します。

@Char_Life = ();

キャラクター毎に、生きているなら0を、死んでいるなら1を保持します。
これはキャラクター登場の際に0に初期化しておき、死んだら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);
        push(@Char_Life, 0);
      }elsif($Line_Type == 82 || $Line_Type == 83){
        $Char_Life[$Line_Char_Index] = 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);
      }

キャラクター登場(81)の時に初期化し、襲撃成功(82)か処刑実行(83)のときに1をセットしています。
これで、キャラクターの生死フラグをデータとして保持することになります。


さて、読み込み部分は一通り終わったので、次は表示の方を実装します。