クリエイター手抜きプロジェクト[630]IoT Orange pico編 キーボードからの入力
── 古籏一浩 ──

投稿:  著者:



今回は、Orange pico(Orangino)でキーボードからの入力について説明します。最初に、定番の数あてゲームを作ってみます。

多くのBASICでは、キーボードからの入力用の命令としてinputが用意されています。Orange BASICでもinput命令がありますので、まずはこれを使って数値を入力してみましょう。inputの後に入力した値を入れる変数を指定します。入力した値を表示するプログラムは、以下のようになります。

10 input n
20 print n

runと入力し、実行してください。行の先頭に?マークが表示され、その後にカーソルが点滅します。この状態がキーボードからの入力待ちになります。数値を入れたら、リターンキーを押します。入力した数値が表示されます。





なお、間違って文字列を入れてしまうと、0が表示されます。文字列を入力してもエラーで停止しません。

なお、nは整数値しか扱えませんので、入力時に2.15と入れても表示されるのは2になります。小数点以下も処理したい場合は、文字列変数に入れてから変換する必要があります。

10 input n$
20 print val(n$)

inputでは入力時に文字を表示することができます。(プロンプト表示)以下のようにすると、Your name? の文字が表示され、そのすぐ右側でカーソルが点滅し、入力待ち状態になります。

10 input "Your name?",name$
20 print name$

それではinputを使って、数当てゲームを作ってみましょう。最初に1〜10までの乱数を発生させ変数に入れます。inputで入力した数と一致しているか調べます。一致している場合は、Goodの文字を表示します。そうでない場合はMissの文字を表示します。

10 a=rnd(10)+1
20 input "Number?",n
30 if a<>n then print "Miss":goto 20
40 print "Good"

ifはelseを使って条件を満たさなかった時の処理を書くことができます。上記のプログラムは、以下のように書くこともできます。

10 a=rnd(10)+1
20 input "Number?",n
30 if a<>n then print "Miss" else print "Good":end
40 goto 20

なお、:(コロン)を使うと複数の命令をつなげて書くことができますが、期待通り動かないことがあります。リファレンスにそう書いてあるので、なるべく1行に1命令を書くようにした方がよさそうです。

Orange BASICには、条件付きで繰り返すwhile〜wendがあります。これを使って書くと以下のようになります。whileの後に条件式を書きます。この条件が成立している間は、無限に繰り返します。

10 a=rnd(10)+1
20 while a<>n
30 input "Number?",n
40 if a<>n then print "Miss"
50 wend
60 print "Good"

whileの繰り返しから強制的に抜けることもできます。この場合、break whileを使います。上記のプログラムを、break whileを使ったものに書き換えると、以下のようになります。

10 a=rnd(10)+1
20 while 1
30 input "Number?",n
40 if a=n then break while
50 print "Miss"
60 wend
70 print "Good"

ちなみに、whileに戻るcontinue whileという命令もあります。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


今月28日にようやくInDesign自動化本が発売されました。自動化本の経緯については次回のデジクリで。

・InDesign自動化サンプルプログラム
https://www.amazon.co.jp/dp/4844379070


今年は長雨で農作業が一か月間ほどできず、スケジュールがどんどん詰まってしまうという何ともな状態に。まあ、今年に限らず最近は天気がおかしいので、まともに作業できる方が珍しいのかもしれませんが。

一か月前に終わってるはずの作業が未だに終わってなくて、いろいろ詰まり気味。でも、幸い(?)コロナウイルスの影響で、各種イベント・講座、撮影関係が中止になっているので、その点、楽と言えば楽。なんにせよ、イベントがないと人間的な生活ができて快適です。

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/