キッズのミチノリです。今日はscratch(スクラッチ)でサンプルゲームを作ってみました。現在、scratchはプログラミング教室や小学生のプログラミング体験で最も利用されているプログラム言語だと思いますが、プログラミングの基本的な構造を学び練習するのにとても適しています。私が過去に学んだプログラム言語は、PHP、JAVA、C言語といったものですが、最終的にはPHP、HTML、CSS、javaScriptといったWEB系のプログラミングが主でした。プログラム言語に接してから10年以上になりますが、今では小学生からscratch等でプログラミング学習に取り組み始めている時代です。時代が変化し続けている事を実感します。昔語りになってしまったので、話を戻します。Scratch(スクラッチ)では視覚的な命令のブロックを組み合わせてプログラミングを行うので、一度作ってみたスクリプトが見直しやすくなっています。作ってみては、見直す。プログラミングでは、「無駄なくキレイなコード」が書ける事が重要です。パソコンで動かしてみて、パッと見た目には問題なく動いているように見えても、実際のプログラムでは同じ処理が重複していたり、無くてもよい無駄なコードが書かれていたり、1つのファイル内で様々な動きのコードが書かれていたりする場合があるのです。プログラミングの世界では、自分が書いたプログラムコードを第三者に見せて共有する場面が多々あります。一般的な会社では前任者が残していったプログラムを後任の担当者が引き継いだりしますね。プログラミングを行う時に、時間が無かったり、複雑な処理に翻弄されたり、もはや面倒になっちゃったりして、見直しをせずに「もう、とりあえず何となく動いてるからいいや!」と作業をOKにしてしまう場合があります。昔からある言葉で言うと、スパゲッティコードが誕生する瞬間です。※スパゲッティコードとは、プログラムのソースコードを書いた本人以外には読み解くことが難解でゴチャゴチャになってしまっているコードをあらわす俗語です。なった後に別の人が作業を引き継ぐと、「え、このコード何なの?」という難解なパズルを読み解くような無駄で出来ればやりたくない不毛な謎解きが始まってしまいます。Scratchのプログラミングは、視覚的なブロックを組み合わせていくので、見たとおりに分かりやすく、見直しがしやすい構造になっています。見直してみると、背景を指定するためのブロックが予め用意されている事に気づいたりします。先程までは、「ずっと」や「もし」のブロックと演算のブロックを組み合わせて少し長くなっていたスクリプトがとてもシンプルになりました。Scratchでは複製の機能も便利です。一度作成したスプライトを複製すると、スクリプトが書かれた状態でコピーして使う事が出来ます。サンプルでよく作られているキャッチゲームでも、基本となるリンゴを作った後に、それを複製して色を変えたり、速度を変えたり、スコアで得られる点数に変化をつける事が容易になります。スプライトを複製をした時にも見直しが大切です。コピーした事で、同じ処理を行う命令が重複しやすくなります。命令文が重複をした状態でも画面の動きに問題が無かったとしても、「同じ処理」が2つ存在することで、ゲームをカスタマイズしていく中で想定とは異なる動きをしてしまう可能性があります。繰り返しになりますが、プログラミングでは、プログラムを見直して、よりシンプルにしていった方が後々楽になるのです。プログラミングでは、同じ処理や動きを実現するための方法が複数存在します。スクリプトを複数に分ける事も出来ますし、1つのスクリプトで実現する事も出来ます。他の人が見た時に、いかに分かりやすいか?いかにシンプルか?を追求する事が出来れば、自然と無駄のないプログラミングが見についていくと思います。Scratchはオープンであり、作ったゲームとプログラムを世界中に共有することが出来るため、ブラックボックスではなくホワイトボックスな環境です。物凄く人目につきやすい環境なので、出来るだけキレイにソースコードを書きたくなると思いますのでスパゲッティコードは生まれにくいかもしれませんね。台風の夜に停電しても少しは大丈夫?スクラッチのofflineEditorscratch(スクラッチ)でリミックスをする時にはファイル名に注意しようダンボールで作る子ども向けプログラミングロボット「embot」を組み立てよう【沖縄市】プログラミング教室で男の子たちに見られる行動とは?YouTubeチャンネル更新中!YouTubeでは主に、『scratch(スクラッチ)で作れるカンタンなゲームやアニメーションのプログラミング動画』を更新してます。エイドの塾生のほか、プログラミングに興味のある方もぜひご覧ください。受付中!お電話で申し込み098-959-9257受付時間13時-19時メールで申し込みお問い合わせフォーム。