![見出し画像](https://assets.st-note.com/production/uploads/images/113823241/rectangle_large_type_2_36463652fd53e550be7948d9cb68d84a.png?width=1200)
プログラマーのためのScatch入門
Scatchに夢中
Scatchは、小学生たちがプログラムを学習するために使っているプログラム環境です。
以前から気にはなっていましたが、今回あるきっかけで始めてみました。
私は60歳を越えても現役を続けるプログラマーです。
初めてみると面白く、ちょっとしたプログラマーズハイを味わいました。
以前、プログラムを作り始めるとハイになる現象がありましたが、最近はなくなっていました。
ランナーズハイにあやかって、プログラマーズハイと呼んでいます。
Scatchのサイトで共有
猫を散歩させて遊んでいます。
Scatchのサイトで私の作ったものを共有しています。
https://scratch.mit.edu/users/ysfactory/
猫の散歩
旗をクリックすると、ねこがサッカーボールまで歩き出し、くるくる回って、元の場所へ帰ってきます。
ねことサッカーボールの位置は、マウスでドラッグして変更することが出来ます。
https://scratch.mit.edu/projects/882976678/
猫の散歩 second
アルゴリズムを少し進化させました。変数を減らしシンプルになったと思います。
https://scratch.mit.edu/projects/883133087/
猫の散歩 分散指向
分散処理することにより、Scatchの元々ある機能をできるだけ使って、アルゴリズムを短く簡単にしています。
https://scratch.mit.edu/projects/883792829/
プログラマーのためのScatch入門
さて、Scatch初心者の私が、感想をまとめてみました。
■全般
スプライトがオブジェクトの役割を果たす。
用意されたイベントや、定義したメッセージで、あたりまえに並列処理が行なえる。
逐次処理的でも、イベントドリブン的でもある。
ブロックの形が少々合わなくても、無理やりはめ込むことが出来るものもある。
グローバル的なので、注意しないとスパゲティーになる。
■ブロック(サブルーチィン)
ブロック(サブルーチィン)に引数は渡せても、戻り値は返せない。
戻り値は変数で返すのが良いと思う。
他のスプライト(オブジェクト)のブロック(サブルーチィン)を呼び出すことはできない。
■メッセージ
メッセージはスプライト(オブジェクト)を越えて飛ばすことが出来る。
メッセージは、そのスプライト(オブジェクト)のクローンにも、同じように届く。
メッセージには引数も戻り値も持てない。
■変数
変数はバリアント的で型はない。数値(実数型)や文字列を格納できる。
変数に判断の結果<真偽値>をはめ込むことは出来るが、文字列に変換されている感じ。
変数を直接判断にはめ込むことはできない。
■マルチタスク
メッセージを送ると、受け取ったスクリプトは並行して動くが、動き出すタイミングは不定である。
メッセージを送ってすぐに、「スプライトの他のスクリプトを止める」を呼んでも、その時点ではまだ動いていなくて、止められないことがある。
「スプライトの他のスクリプトを止める」は並行で動いている複数のスクリプトから、呼び合わない方がよい。
この記事が気に入ったらサポートをしてみませんか?