私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

No.557  Re[4]:簡単なことだったらすいません。
発言者: なず
発言日: 2003 05/10 05:22
> > 当然最初の条件式($Axexp > $Bwexp && $Axexp > $Swexp)の部分もすべてのパタンを書く、といったものでもっと他に処理の方法がないかなぁ?と思ったので質問させてもらったわけです。
>
> そういった感じの処理ならば、
>   @x = ($a, $b, $c, $d, $e); # 新しい配列を作成する。
>   @z = ('武器1', '武器2', '武器3', '武器4', '武器5'); # 説明
>   $max = -1;
>   $i = 0;
>   foreach(0..$#x){
>     if($x[$_] > $max){
>       $max = $x[$_];
>       $i = $_;
>     }
>   }
>   print qq|貴方は$z[$i]が得意です\n|;
> かな〜。
なるほどぉ〜。 途中の処理をどうしていいものか?ってことで配列にいれるのは避けて考えてたのですが、この例をみて理解できそうです。

> > map→sort という部分の理解度が乏しくどういうことなのかが、理解できていません(^^;
> > if文位しかまともに書けないので、配列?とかかなり苦手で....コツさえつかめばすんなりいくのでしょうけど。
> > なんとなくでもヒントいただければ有難いのですが.....。
>
> 上記をmap→sort形式で書くと、
>   @x = 〜; # 同じ
>   @z = 〜; # 同じ
>   $i = -1;
>   @x = sort {$b <=> $a} map {$i++; "$_<>$i";} @x;
>   $i = (split(/<>/, $x[0]))[1];
>   print qq|貴方は$z[$i]が得意です\n|;
> となります。
> 簡単なデータを用意して、コマンドプロンプトで実行してみるとやっていることが掴みやすいと思います。
上記のものと結果は同じだけど、書き方が違うってことでしょうか? おそらく流れくらいは理解できたとおもいますが(^^;
どちらのパタンも試してみて、動きを確認してみます。
(最近ぜんぜん時間が取れなくて、ご報告遅れたらすいません......)
ご返答ありがとうございます、助かりましたm(、、)m

▼関連発言

551:簡単なことだったらすいません。 [なず] 05/07 23:51
 └552:Re:簡単なことだったらすいません。 [moon] 05/08 00:16
  └555:Re[2]:簡単なことだったらすいません。 [なず] 05/09 00:36
   └556:Re[3]:簡単なことだったらすいません。 [moon] 05/09 09:13
    └557:Re[4]:簡単なことだったらすいません。 [なず] 05/10 05:22
     └664:大変遅れました.... [なず] 07/13 23:51
      └665:Re:大変遅れました.... [moon] 07/14 09:10<-last

Pass 保存


CGIROOM