プレイ日記
nobu divine-creator
ゼロから始めるプチコン生活 第21話『繰り返しの簡略化』 同じ命令を繰り返す場合に、FOR ~ NEXT を使って簡略化する方法についてです!
9そうだね
プレイ済み
返信[1]
親投稿
nobu divine-creator
SPHIDE と WAIT を4回ずつ繰り返すのを FOR ~ NEXT で簡略化できるという内容ですが、比較しやすいように SPSHOW に変えています。 なので、SPSHOW を SPHIDE に変えて、上の4行を消すこともできます。
0そうだね
プレイ済み
返信[2]
親投稿
nobu divine-creator
これは第19話で2番目に登場したプログラムの簡略化です! 「緑色になっている部分」が簡略化前のプログラムで、その直後の FOR ~ NEXT で簡略化しています。
0そうだね
プレイ済み
返信[3]
親投稿
nobu divine-creator
U=0 だから U+ の所が無くても良いんじゃね?と思った人へ 確かに、この例の場合は U=0 なので無くても問題ないのですが、U=0 でない場合もあるので、U+ を消さずに残しています。
0そうだね
プレイ済み
返信[4]
親投稿
nobu divine-creator
この例が今回の目標であり、これが理解できれば、FOR ~ NEXT の使い方をマスターできたと言っても過言ではないと思います! 二重の FOR ~ NEXT は、私も使えるようになるまでに時間がかかりました…。 でも、使えるようになると非常に便利です♪ たくさんのスプライトをまとめて定義できるので、同じ命令を羅列しないで済むようになります!
0そうだね
プレイ済み
返信[5]
親投稿
FOR~TO~STEP~NEXT それは考えすぎると上級者でさえハマってしまう文。
1そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
FOR~NEXTは引数が小数の場合は中上級者でもハマることがありますからね。 例えば FOR I=0 TO 1.9 STEP 0.1 NEXT というのは、一見すると20回ループするように見えますが、実は19回ループです。
0そうだね
プレイ済み
返信[7]
親投稿
nobu divine-creator
私には、引数を少数にするという考え自体が無かったのですが、どういう時に少数を使うのですか?
0そうだね
プレイ済み
返信[8]
親投稿
>引数を少数にするという考え自体が無かったのですが< 基本的にそれで合っています。FOR~To~NEXTで小数はなるべく使わない方が良いです。(誤差の元になるだけでなくプログラムが非常に読みづらくなる。) >どういう時に小数を使うのですか?< あえて言うならおちゃめさんの簡易地球儀QSPのSTEPを変更すると画質が変化するので、そこで1と2の間にしたいというときに1.5にしたり…ですかね?(そのときも1.5など誤差の発生しない小数を使う)
1そうだね
プレイ済み
返信[9]
親投稿
nobu divine-creator
それは地球儀?!……じゃなくて、ハカセ儀?
0そうだね
プレイ済み
返信[10]
親投稿
今日学校でC言語やっていたらfor文の罠に引っ掛かりました。 Cのfor文ってプチコンのFOR~To~NEXTと書式が少し違って for(初期化;条件;式)文 みたいな感じなんですけど(初期化がI=1みたいなところ、条件はwhileみたいな感じ。式はプチコンで言うところのSTEP) これって初期化→条件→文→式→条件→文… の順で実行されるんですよねー。 それを知らずに int c;for(;c=n%m;n=m)m=c; みたいに書いちゃいました。(超スパゲティー) 本当は int c;for(;c=n%m;m=c)n=m; みたいに書こうとしたんですよね。
0そうだね
プレイ済み
返信[11]
親投稿
nobu divine-creator
Smile BASIC の基礎しか知らないので、もし他の言語を学ぼうとしたら、ゴチャゴチャになって、Smile BASIC の基礎を忘れてしまいそうですね…(´-ω-`)。 とりあえず、Smile BASIC の応用まで使えるようになれば良いかな…と思っています。(・ω・)ノ
0そうだね
プレイ済み
返信[12]
親投稿
ちなみにさっきのプログラムをSmile BASICに翻訳するとこんな感じです。
0そうだね
プレイ済み