プチコン3号 SmileBASIC コミュニティトピックbはかせ kojimadaiti2016/08/02 13:50:26質問またまた質問【画像参照】 要約→スコアに合わせてそれぞれ 違った処理をしたいのですが、 (例:スコア1000だったらbgm4を流し、 スコア2000だったらbgm2を流す) しかし、その分岐が多く、 ひとつずつ IF (条件) THEN (処理) としていたのでは少し面倒で… 何か他にいい方法ありませんかね? (説明分かりにくかったらすみません。) 画像はやりたかっただけです。2そうだね 12返信プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿bはかせ kojimadaiti2016/8/2 13:58実際のところ、スコア次第で様々な 処理を行うというよりかは、 画像のように結構細かく条件を 分けているんです。 なのでこれを大量に打ち込むとなると もう少しいい方法がないのかと 考えるようになりまして。 うーん、DEFでひとつの命令にまとめるのも 手ですかね…1そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿Villit nakahara12262016/8/2 17:16FOR A=0 TO 区切りの個数 READ MAX,MIN IF SCORE<=MAX&&SCORE>=MIN THEN B=A:A=区切りの個数 NEXT んでBの数値で分岐 あとは区切りの最大値と最小値をDATAで書き殴る3そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿Villit nakahara12262016/8/2 17:17まあ要するに分岐する点数をDATAで書きなぐって FORで総当りさせれば 見やすいんじゃない?ってこと2そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿Villit nakahara12262016/8/2 17:18ただ俺はまだ初心者だし神様がもっと楽な方法を御教授してくれるかもね。1そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿ΖΕΧ ZEX2562016/8/2 18:38排列にBGM番号を入れておく スコアを1000でdivして配列の添え字にしbgmplayに渡す。5そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿しょぼーん sin52382016/8/2 21:19すごく面倒くさいですが、 BGMPLAY 2*(SC==10)+4*(SC==100)+5*(SC==1000)+8*……… のような方法があります。 あとはZEXさんがいったとおり、 SCBGM[99]とかの配列に全BGMデータぶちこんで、 BGMPLAY SCBGM[LEN(STR$(SC))] にするとか1そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿しょぼーん sin52382016/8/2 21:21すいません間違ってました。 1そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿bはかせ kojimadaiti2016/8/2 23:46なるほどなるほど… 結構いろいろな方法があるものですね。 この中で、頑張って自分で使いこなせそう なものを使おうと思います。 他にもこんな方法あるぞ!という方は 是非教えていただければ嬉しいです。 皆さん回答ありがとうございます。0そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿ネタバレish owlis12016/8/3 1:03皆さんが答えられていますが、単純に処理の共通化ができれば、評価する値をDATAに持たせ、対になるBGM番号を持つのがシンプルでしょうか。 私の論点が間違っているかもですが、もし「煩雑なIF文が続くのを回避したい」という要件であれば、一つの大きな関数にする方法もあるし、IF文を関数で分解してしまうのも実装の選択肢としてはあるかと。 添付はif文を分解した実装サンプル。 かえって、とても長いコードになりました。 1そうだね プレイ済み2017/11/03 17:59:16に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿Ϊċăņ ďо įт hikahikaru32016/8/3 20:48自分がやるとしたら ON S DIV 1000 GOSUB @b0,@b1,@b2 END @b0 bgmplay 0 return @b1 bgmplay 3 retuen @b2 bgmplay 9 return とかかなー((適当1そうだね 未プレイ2017/11/03 17:59:16に取得