HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0416
teruchi乱数で発生させた複数行の数字から任意の場所の数字を取り出す5解決


teruchi

リンク

2015/4/16(Thu) 19:31:00|NO.68582

半年未満の初心者です。以下のスクリプトで0から5までの数字を各々ランダムに並べたものを
3行表示しています。そしてbは3行目の最初の数字になっていますが、これを任意(例えば
2行目左から3番目)の数字にしたいと思っています。色々と試行錯誤しましたがダメでした。
解決法をご教授ください。厚かましいですができれば分かり易く説明していただければ幸いです。

dim a, 5
randomize repeat 5 a(cnt) = cnt loop px = 24 : py = 16 repeat 3 ycn = cnt gosub *shufl repeat 5 pos cnt*px, ycn*py mes a(cnt) loop loop b = a(cnt) mes b stop *shufl repeat 200 r1 = rnd(5) r2 = rnd(5) wk = a(r1) a(r1) = a(r2) a(r2) = wk loop return



この記事に返信する


暇人

リンク

2015/4/16(Thu) 20:35:41|NO.68583

別の配列に順に代入していけば良いんじゃ?

dim a, 5 dim b, 5,3 randomize repeat 5 a(cnt) = cnt loop px = 24 : py = 16 repeat 3 ycn = cnt gosub *shufl repeat 5 pos cnt*px, ycn*py mes a(cnt) b(cnt,ycn)=a(cnt) loop loop mes b(2,1) stop *shufl repeat 200 r1 = rnd(5) r2 = rnd(5) wk = a(r1) a(r1) = a(r2) a(r2) = wk loop return



窓月らら

リンク

2015/4/16(Thu) 20:42:13|NO.68584

これでいいのでは?

dim a, 5 randomize repeat 5 a(cnt) = cnt loop px = 24 : py = 16 repeat 3 ycn = cnt gosub *shufl repeat 5 pos cnt*px, ycn*py mes a(cnt) b(cnt+ycn*5)=a(cnt) // ここでコピーを取っておく loop loop ;b = a(cnt) mes b(7) // コピーから表示 stop *shufl repeat 200 r1 = rnd(5) r2 = rnd(5) wk = a(r1) a(r1) = a(r2) a(r2) = wk loop return

シャッフルの処理はこれでいいのかなぁ・・とか思いましたけど。
とりあえずそれは置いときます。



窓月らら

リンク

2015/4/16(Thu) 20:44:24|NO.68585

あ、同じ方法を書かれてたw
そうですね、この場合2次元配列のほうが分かりやすいかも。



teruchi

リンク

2015/4/16(Thu) 20:48:23|NO.68586

そういうことなんですか!確かに表示されました。
まだまだ勉強不足&頭の回転不足ですね。
暇人様 ありがとうございました。



teruchi

リンク

2015/4/16(Thu) 20:54:50|NO.68587

どちらがいいとか良く分かりませんが単純なことだったのですね。
窓月らら様 ありがとうございます。



ONION software Copyright 1997-2023(c) All rights reserved.