投稿
フレア Amatsuna
WHILE 1<2 TOUCH OUT S,X,Y GPSET X,Y WEND これだけ打ったら、後は自由に、書くべし!描くべし!
6そうだね
プレイ済み
返信[1]
親投稿
フレア Amatsuna
とある方の投稿にて、1行プログラムに頭を捻らせていたのですが、mkll公式ページの、3行だけで絵が描けるものを思い出して、自分なりに短くまとめられないかと奮闘してみてました… 仕様がmkllと違うので、どこをどう変えればいいのか、考えさせられますね…!
0そうだね
プレイ済み
返信[2]
親投稿
フレア Amatsuna
無限ループにさせるのにも、いろんな書き方のバリエーションがありますね…! 分かり易さ的には、@とGOTOかな?WHILE~WEND/REPEAT~UNTILLなんて、初耳だと思ったら、mkllにはなかった命令なんですね…! FOR~BUTTON~NEXTはwikiを参考にしてみました。このループの仕方だけは、どうしてこれでループになるのかは、よくわからない!
0そうだね
プレイ済み
返信[3]
親投稿
フレア Amatsuna
GPSETはX,Yだけでも、その後の色指定を省略しても白でかいてくれるようだけど、色を変えるなら今回はRGBというのを入れないといけないんですね… その分mkllよりも、いろんな色にできるということなのかな。 これだけだと不便な点というのはどうしても出てきてしまう!とにかく簡単に!が主眼だけど、余計な文字消して広々と書きたい!となったらACLSを先頭に付けても1行内には何とか収まる!下画面がキーボードのままで、キーを押す音がうるさい!→SYSBEEP==0を付ける、…どこに書いてるかが分かりにくくなりがち!中止ボタンを押しちゃう!→下画面を消して、上画面と同じような状態を表示するように…なんてのはできるのか?!色々と、追加の改善案が浮かんできますね
0そうだね
プレイ済み
返信[4]
親投稿
フレア Amatsuna
白だけじゃ物足りない!もっとカラフルに!→ボタンを押したらRGB値が代入されるようにする? 消しゴムないのはやっぱり不便!→同じく、ボタンを押す(切り替え式か、はたまた押してる間だけか、とかも)とRGB値が背景の色と同じになるようにする。ボタンを押すとACLSが実行するようにする あとは何か、書いたものを気軽に保存できるようにしてみるとかができても、便利に使えそうですね こうやって、だいたいの今の自分の考え付く範囲で、どうすれば良くなる?と試行錯誤してみると、少しずつだけど次のステップに進んで行けるのかなと思います…!うまくいったのでまた少し、自信もついてきたような?!
0そうだね
プレイ済み
返信[5]
親投稿
フレア Amatsuna
ペン先が細い!もっと太く!→GPSETのX,Y値をどうにかいじくるのか?!四角を塗りつぶす命令なんかもあったような… とりあえず思い付く限りはこんなものでしょうか。
0そうだね
プレイ済み
返信[6]
親投稿
フレア Amatsuna
WHILE ○○~WENDについても少し。REPEAT~UNTIL ○○は例えば、X>Yになるまで、X=X+1を繰り返す、みたいな感じで繰り返しをする、と理解したのだけど、WHILEは例えば、X<Yの時の間だけ、X=X+1を繰り返すのかなと、最初は0<Xと書いてみた(Xがマイナスになることはないので無限ループにできそうだと考えた)のだけど何故かすぐ終わってしまうので、1<2なんて、まずひっくり変えらないものに変えたら、動かせた。でも改めてもう一度0<Xにしてみたら、今度はきちんと動いた。さっきは何かがいけなかったのか…?書き始めに、Xに代入をしてないから、最初はX=0で…って感じでだめだったのか。ナゾです。
0そうだね
プレイ済み
返信[7]
親投稿
フレア Amatsuna
再起動して出直してみたら、やっぱり動かない。たぶん、Xに代入された値が、そのまま残ってたから、動かせたのかな?変数情報のリセットのCLEARがいらなくなって、RUNするたびにリセットされるというコメントを見たので、そこでもなにか勘違いしてしまってるのかも…。
0そうだね
プレイ済み
返信[8]
親投稿
フレア Amatsuna
先に別の書き方で動かしてから、もう一度0<Xで試してみる、とやってみたけれど、また動かなくなった… 1<2と書いたものでよかったのでしょうかね。もう、よくわからない! あと、RUNした直後になぜかポツンと、点が入るのだけど、これの原因も一体…?RUNするたびに場所はいちいち変わるのだけど、だいたい左下辺りに集まってます… 私の3DSのタッチパネルの誤作動なのやら仕様なのやら。mkllでも同じように最初に点が… なぜだ。 なんだかとても分かりにくい上に長々と書いてしまいましたが、いろいろと考えるきっかけをいただき、ありがとうございました…!
0そうだね
プレイ済み
返信[9]
親投稿
フレア Amatsuna
あとタッチパネルの枠の限界というか、下画面の方が狭いのでどうしても、上画面フルには書けないのは… どうすればいいのだろ。ともかく、また考えてみます…
0そうだね
プレイ済み
返信[10]
親投稿
フレア Amatsuna
他の方のコメント欄を見て知ったのですが、 WHILEは1、UNTILは0とだけ後ろに書くのでループになるんですね。 それぞれWHILE 0、UNTIL 1ではループにはならない…  ここまでくるとループの仕組みが分かりにくい!WHILE 1 なんて書かれても「?」になってしまう… 簡単に書けるのは良いことだけど、分かりやすさを考えると、ある程度のながさはやっぱり、あった方がいいのかもしれませんね…。
0そうだね
プレイ済み
返信[11]
親投稿
おかっぺ Japanese_WASABI
1行プログラムでもこんなことが出来るよ。と言う内容でありながら、改造の楽しさもとてもあり、凄く良いプログラムですね。 ちょっと感動しました!
1そうだね
プレイ済み
返信[12]
親投稿
よっぱらい yopparai1965
whileの時は条件式が真の間、untilの時は条件式が真になるまでループします。 条件式がx>0だとして、xの内容を変化させる内容をループの中に書かなければxは変化しません。 x=10 while x>0 gpset ... wend だとxが変化しないので無限ループになります。 x=10 while x>0 gpset ... x=x-1 wend だとxが変化し、そのうち条件を満たさなくなるので、ループが終わります。
1そうだね
プレイ済み
返信[13]
親投稿
フレア Amatsuna
>おかっぺさん ラクに書けて、それでいて分かりやすくて、実用的なプログラムなんて、いいとこ取りすぎて理想すぎる…のでしょうかね。短くなればどうしても分かりにくくなりがちだし… mkll用のものとはいえ、こうして書き換えて、同じようにも動かせるこのプログラムはやっぱり、凄いものがありますね…!組み合わせや発想次第で、こんな感じのプログラムはまだまだあるんじゃないかと、興味がわいてきました…! >よっぱらいさん 解説のほう、どうもです! 0<Xだけではダメで、X=10と先に、値を与えておけば良かったのかな…?REPEATは先に実行をしてから、条件式を判断するそうなのですが、WHILEはそれとは違うらしく、先に判断した後に、実行しようとする 、それで、Xには何の値も入ってないので式が成り立たなかった、ということのでしょうかね…!なんとなく、わかってきたような。ありがとうございます!
0そうだね
プレイ済み