今回は、乱数を使ってLEDを点滅させてみます。
一般的なJavaScriptでは、Mathオブジェクトのrandom()メソッドを使いますが、IchigoLatteではrnd()メソッドを使います。というのも、IchigoLatteに用意されているオブジェクトは、以下の二つしかないからです。
latte
Array
IchigoLatteでのrnd()やその他のメソッドは、latteオブジェクト内にあります。Arrayは配列オブジェクトです。配列オブジェクトは一般的なJavaScriptと同じ配列です。
Math.random()は0以上1未満の小数値の乱数を発生させますが、IchigoLatteのrnd()は0からパラメーターに指定した、値未満の乱数になります。この乱数は整数になります。
これまで説明していませんでしたが、IchigoLatteでは小数値を扱うことができません。演算はすべて整数で行われます。小数を扱う場合は、10倍したり100倍するなどして、計算した後に調整することになります。
さて、それでは乱数を使ってLEDを点滅させてみましょう。前回のプログラムを少し修正し、以下のようにします。乱数は0か1なので、そのままled()のパラメーターに変数を指定します。
while(1){
var i=rnd(2);
led(i);
sleep(500);
if(inkey()>0){exit();}
}
シェルからプログラムを実行すると、LEDが点灯したり消灯したりします。ランダムなので、いつ点滅するかはわかりません。乱数値が0なのか1なのか分からないからです。
そこで、乱数値を表示して確認するようにしてみましょう。数値や文字、変数の内容を表示するにはlog()メソッドを使います。一般的なJavaScriptでも、デバッグコンソールに出力するconsole.log()がありますが、だいたい同じように使えます。
プログラムを以下のようにすると、乱数の値が画面に表示されていきます。
while(1){
var i=rnd(2);
led(i);
log(i);
sleep(500);
if(inkey()>0){exit();}
}
ただし、このプログラムでは乱数値が改行されず、表示されていきます。乱数値を表示したら、改行する場合は"\n"の文字をlog()のパラメーターとして指定します。パラメーターは , で区切って複数書くことができます。
以下のプログラムでは、乱数値(変数iの値)を表示した後に改行します。
while(1){
var i=rnd(2);
led(i);
log(i,"\n");
sleep(500);
if(inkey()>0){exit();}
}
画面を消去した後に乱数値を表示したい場合は、cls()を使います。以下のようにすると、画面を消去してから乱数値が表示されていきます。
cls();
while(1){
var i=rnd(2);
led(i);
log(i,"\n");
sleep(500);
if(inkey()>0){exit();}
}
それにしても、キーの反応があまりよくないので、改良していきましょう。次回は関数について説明します。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
教育用のコンピューター「Micro:bit(マイクロビット)」を買ってみました。
http://microbit.org/ja/
機種を問わず、USB接続すればドライブとして認識されるとのことですが、うちのMacは三台とも認識せず。Micro:bitが駄目なのかと思って、三つあるうち二つで試したけど、なぜか駄目。
検索しても、そういう事例が出てこなくてさっぱり分かりません。Windows 7でも駄目だったので、ますます分からず。USB接続での使用は、あきらめた方がいいのかも。
・InDesign CS6 JavaScript Reference
http://www.openspc2.org/reibun/InDesignCS6/ref/
・Photoshop CS6 JavaScript Reference
http://www.openspc2.org/reibun/PhotoshopCS6/ref/
・Illustrator CS6 JavaScript Reference
http://www.openspc2.org/reibun/IllustratorCS6/ref/
・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/
・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/