私設SoS2オーナー応援BBS

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

No.555  Re[2]:簡単なことだったらすいません。
発言者: なず
発言日: 2003 05/09 00:36
> > $a,$b,$c,$d,$e......と変数があったとして、この中で一番大きいものだけを選び、
> というのはわかるのですが、
> > もしそれが$bなら$bだけをチョイスする
> の後半の「だけ」付近、特に「$bだけをチョイス」がいまいち何をやろうとしているのかがわかりません。
> 出来たら、具体的なデータを使用して「すべての変数を比べて行く方法」でのソースを載せてもらえるとわかると思うのですが。
説明不足な点申し訳ありません(^^;
やろうとしていることは、武器経験値が各種類にありまして、その中で一番大きいものを表示する。と言った具合です。
ソースの具体的なもの、というのは組めないでこまってますのでどう書いていいかわかりませんが、
$Axexp,$Bwexp,$Swexp,とすべての各武器経験値を記録しているので、その中で一番大きいものを探させる、といった具合なのです。
私の思いつきでは、
if ($Axexp > $Bwexp && $Axexp > $Swexp){$Axflag = 1}
elsif ($Bwexp > $Axexp && $Bwexp > $Swexp){$Bwflag = 1}
elsif ($Swexp > $Axexp && $Swexp > $Bwexp){$Swflag = 1}
.......(略)
if ($Axexp) {print qq |貴方は斧が得意です\n|;}
elsif ($Bwexp) {print qq |貴方はゆみが得意です\n|;}
elsif ($Swexp) {print qq |貴方は剣が得意です\n|;}
.......(略)

というかんじです。
(略)としたのは武器の種類すべてにあるので長くなるためです。(11種類です)
当然最初の条件式($Axexp > $Bwexp && $Axexp > $Swexp)の部分もすべてのパタンを書く、といったものでもっと他に処理の方法がないかなぁ?と思ったので質問させてもらったわけです。

> 以上を踏まえた上での意見ですが、$aなどを配列の要素としてmap→sortという流れが単純といえば単純ですが、変数の数が少ないのならばif〜elsif〜elseでやったほうがわかりやすいと思います。
map→sort という部分の理解度が乏しくどういうことなのかが、理解できていません(^^;
if文位しかまともに書けないので、配列?とかかなり苦手で....コツさえつかめばすんなりいくのでしょうけど。
なんとなくでもヒントいただければ有難いのですが.....。
(これでも説明不足だったら申し訳ありません)

▼関連発言

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