* 小学1年生向けのプログラミング言語を考える -(by [[K]], 2018.07.21) ** 基本仕様 -ひらがなとカタカナがメインになると想定(でも漢字も使える) -全角英数字も半角英数字と同じように使える -blaライブラリを組み込んで、グラフィックが扱える -「。」がセミコロンの代わり -スペースで区切れというのは難易度が高いので、コンマか「、」で区切る ** 教育目標 -変数を使う前は、座標の考え方を理解するのが目標 -「おしたらつづく」命令を覚えれば、紙芝居が作れる -wait系の命令を覚えることで、アニメーションができる -変数を覚えれば、ループとかができる -でも一年生にそこまで求めなくても・・・ ** 命令一覧 |命令|相当する動作|h |がめん、xsiz、ysiz。|int win, wxsiz, wysiz, keycode; win = openWin(xsiz, ysiz); start: fillRect(win, xsiz, ysiz, 0, 0, 0xffffff); wxsiz = xsiz; wysiz = ysiz;| |しかく、ぬる、xsiz、ysiz、x0、y0、c。|fillRect(win, xsiz, ysiz, x0, y0, c);| |しかく、せん、xsiz、ysiz、x0、y0、c。|drawRect(win, xsiz, ysiz, x0, y0, c);| |まる、ぬる、xsiz、ysiz、x0、y0、c。|fillOval(win, xsiz, ysiz, x0, y0, c);| |まる、せん、xsiz、ysiz、x0、y0、c。|drawOval(win, xsiz, ysiz, x0, y0, c);| |しかく、ぬる、xsiz、ysiz、x0、y0、c。|fillRectEx(win, xsiz, ysiz, x0, y0, c);| |しかく、せん、xsiz、ysiz、x0、y0、c。|drawRectEx(win, xsiz, ysiz, x0, y0, c);| |まる、ぬる、xsiz、ysiz、x0、y0、c。|fillOvalEx(win, xsiz, ysiz, x0, y0, c);| |まる、せん、xsiz、ysiz、x0、y0、c。|drawOvalEx(win, xsiz, ysiz, x0, y0, c);| |おしたらつづく。|キーを入力して、0だったら最初へ、スペースかEnterで再開、それ以外はwait継続| |ぜんぶけす、c。|fillRect(win, wxsiz, wysiz, 0, 0, c);| |c=いろまぜる、rr、gg、bb。|rgbはそれぞれ00~99 その方が子供にはわかりやすいと思うので| -初期設定 int くろ; くろ = 0x000000; int しろ; しろ = 0xffffff; int あか; あか = 0xff0000; ** 例1 日本の国旗 がめん、600,400。 まる、ぬる、300,300、150,50、あか。 ** 例2 グラデーション(ver.1) がめん、300,300. かず、たて、よこ、いろ。 for (たて=0;たて<300;たて++){ for (よこ=0;よこ<300;よこ++){ いろ=いろまぜる、よこ÷3、たて÷3、0. setPixEx(win,よこ、たて、いろ)。 } } -forやsetPixExをどうにかしなければ・・・ ** 例2 グラデーション(ver.2) がめん、300,300. かず、たて、よこ、いろ。 くりかえし、たて、0、299. くりかえし、よこ、0、299. いろ=いろまぜる、よこ÷3、たて÷3、0. がそのいろ、よこ、たて、いろ。 ここまで。 ここまで。 ** 他の言語に対する優位点 -根本的に高速(TJ10ベースなので)。ほとんどC言語並の速度が出る。 -基本的な命令は、プログラミング言語というよりもできの悪いスクリプトみたいにしか見えないかもしれないが、普通にC言語っぽい構文も混在できるので、小学生は連続的にステップアップできる。 -(現在苦戦しているblaライブラリさえ何とかなれば)移植性は高いので、いろんなOS上でこの言語は使える。 -ビジュアルプログラミングではないので、普通の言語へのステップアップがしやすい。 * こめんと欄 #comment