第1回:Small Basicを使ってみよう
はじめまして。「50歳からのプログラミング講座」を担当する JLabo(ジェイラボ) です。
昔々パソコンが出たての頃、私は「N88Basic」とか「QuickBasic」で遊んでいました。今は「Microsoft VisualBasic VB6」でアプリを作るお手伝いをしています。ちなみにこれは昔のパソコンです。懐かしいでしょ。見覚えあります?
Sony SMC-777
NEC PC-9801
- こんなPCに見覚えのある方
- 昔「Basic Magazine」を読んでいた方
- 調べ物がある時はスマホではなくパソコンを使う方
こんな方で、「今からちょっとだけプログラムを作ってみたい」という方はいませんか?このコラムでは、皆様に1年間(全12回)かけて簡単なプログラミングができるようになっていただきます。プログラミング版「デア〇スティーニ」みたいなものです。
ちなみに、いま世の中にはものすごい数のプログラム言語があります。1種類使いこなすことができるだけでもすごいですが、中には一人で数種類を自在に使いこなせる方もいます。
それぞれのプログラム言語には特徴があり、それぞれの特徴を活かしてユーザーの皆様にアプリケーションという形で商品が届けられています。
このプログラミング言語のひとつに、Microsoftの「Small Basic」という言語があります。この「Small Basic」の特徴は、
- とても簡単なので、誰でも始められます
- 簡単な分、出来ないことも多いです
- でも意外にすごいことも出来てしまいます
- なんと正規品が「無料」です
そこで、このコラムでは「プログラミングの最初の一歩」として最適な「Small Basic」を使って、最終的に「ブロック崩し」ゲームを完成させるのがゴールになります。
全12回をしっかり読み込んでいただき、あきらめずにコツコツとプログラミングをマスターしていけば、「Small Basic」を使ってほかのアプリケーションを作ることも出来ますし、「Small Basic」で基本さえマスターしてしまえば、ほかの新しい言語に乗り換えるのがとても楽になります。
■ここからはちょっとだけ プログラムの説明をしていきます。
For i=1 to 10 | 変数 i を1から10まで1おきに変化させます。 |
---|---|
Print I | i の値を画面に印刷します。 |
Next I | 繰り返しをするが i が10になったら繰り返しをやめます。 |
これを実行すると、画面には【1 2 3 4 5 6 7 8 9 10】と表示されます。これがプログラムで、これを実行できる環境を「言語」といっています。または、プログラムの開発環境言語ともいいます。
なんとなくおわかりでしょうか? では次はどうでしょう。
A=0 | 変数Aに0を割り当てします。 |
---|---|
For i=1 to 10 | 変数 i を1から10まで1おきに変化させます。 |
A=A+I | これは何でしょう? |
Next I | 繰り返しをするが i が10になったら繰り返しをやめます。 |
Print A | 計算したAの値を画面に印刷します。 |
これを実行すると、画面には【55】 と表示されます。そろばんの初級でやりましたよね。【1+2+3+4・・・・+10=55】っていうあれです。
【A=A+i】 は、「前のAに i を加えて新しいAにする」というプログラムの処理です。こんなのは算数で習ってないですよね。このような考え方は、プログラマーには常識であっても、普通の方にはなんのことだか理解出来ません。これが「プログラミングは難しい」と思わせている所以なのかもしれません。
そこでこのコラムでは、「難しいだろうと」と思われるものを「MyHelp」というアプリケーションにまとめてみました。これを使いながら「Small Basic」 の講座を進めたいと思います。
これが「MyHelp」の画面になります。
画面左側は Microsoft で用意しているリファレンスとほとんど同じです。特徴は右側です。 自由に修正保存が出来ます。また備考にご自身の言葉を入力して保存すれば、すぐに検索できるようになります。自分で入力した文字やコメントはなかなか忘れませんので、PDFのリファレンスマニュアルよりはるかに早く、正確に再検索で必要なコマンドを探すことが出来るでしょう。
プログラムは 【コマンド】と【変数】 でできています。コマンドは英語ですが、変数には日本語を使うことができます。一般的に変数に日本語は使わないことになっています。 マナーでしょうか・・でもこの講座はプログラムを理解するためなので、可能な限り変数には日本語を使おうと思っています。 そうすることによって、プログラムの流れを直感的に理解しやすいだろうと考えているからです。
ただ、「Small Basic」でプログラムを作成するエディタでは、 日本語に関してバグがあることが分かっております。日本語を書き込むと、先頭1文字と2文字が入れ替わるという奇妙な現象と、時々日本語入力が出来なくなるという問題です。このような問題はありますが、やはり「わかりやすさ」を皆様にお届けしたいという想いから、日本語多用作戦で行きたいと思っています。
■講座の進め方
最初にまず【プログラムを作成する手順】からといきたいところですが、これは次回以降のコラムでの作業になります。次回のコラムでは開発環境をダウンロードしていただくところから始めたいと思います。前述したように「Small Basic」は無料です。そしてダウンロードしたら、いくつかのコマンドと動作を体験していただきます。
ちなみに、上述で写真を掲載した「SonySMC-777」には、子供用の言語として「Dr.Logo」という言語が付属していました。1980年代のことです。これを当時小学生だった息子にやらせようと思い、がんばって購入したのですが見事に失敗しました。プログラム作成とは無縁の「ファミコン大好きっ子」になってしまったのです。
余談はさておき、「Small Basic」には「Dr. Logo」 と同じ「タートル」というコマンドが用意されています。このタートルによる図形描画もほんのさわりだけ体験して頂きます。
そして何回かに分けてプログラムの作成をしますが、最終完成品は「ブロック崩しゲーム」です。
最終的にはお孫さんの絵日記に、「今日はジィジの作ったゲームで遊びました。」と書かれれば、このコラムでの学習目的は見事達成です。これを目指して一緒に頑張っていきましょう!
お孫さんがまだいらっしゃらない方は、元気な今のうちに準備するのもありかなと思います。振り返って見れば、孫もすごい勢いで日々成長します。幼児時代のふれあいは一瞬です。もちろん自分の向学心を燃やすためにも有効です。そして必ず「達成感」があります。
コラムは【全12回】を予定しています。このゲームが出来たところで終了になりますが、さらに新しいプログラムを作成するには「MyHelp」のアプリがきっとお役に立てると思います。さらなる高級言語にチャレンジする場合でも、このコラムで体験した「Small Basic」は有力な足がかりになると思います。「MyHelp」のアプリも次回までに用意しておきます。もちろんこれも「無料」です。
ちなみにですが、最終完成品の「ブロック崩しゲーム」は、 kenji matsuoka様がお作りになった「Small Basicで簡単ブロック崩しを作ったよ」 をベースにさせて頂きました。私もこちらで「Small Basic」をいちから勉強させて頂きました。興味のある方はこちらもじっくりご覧ください。大変おもしろい記事が満載です。
■話は変わりますが・・・
話は変わりますが、私の趣味は「日曜大工」や「電子工作」などです。子供の頃から何かを作るのが好きでした。 ある意味プログラムは釘もはんだごてもいらない「ものづくり」といえるかもしれません。この流れもあって、本コラムでは私が作ったものもいくつかご紹介させて頂きたいと思います。見て頂いた方に一つでもご参考になれば幸いです。
ところで皆さんは「5S」はご存知でしょうか? 製造業・サービス業などの職場環境の維持改善で用いられるスローガンで、「整理・整頓・清掃・清潔・躾(しつけ)」の頭文字をとって「5S」と呼ぶそうです。 でもこれって家庭ではなかなか出来ないですよね。そこで私は以下の様に考えています。
整理=いらない物を捨てる
整頓=すぐ使えるようにする
清掃=生活を支えてくれる大切な物をきちんと手入れする
しかし、なかなか整理が出来ません。思い切って捨てることが出来ないのです。特に趣味に関わる物はなおさらです。その反動として整頓を頑張っています。
そこで今回は、整頓しやすい 「棚」 をご紹介します。そんなに大した内容ではないのに、雑誌や家具屋さんなどで同じようなものを私はまだ見たことがありません。棚板が「コの字」になっていて、中央に物を置けないようになっています。コの字なので、奥まで確認することが出来ます。
当初は「長期保管の食品置き場」にする予定だったのですが、結局雑多な物でいっぱいです。それでも思惑通り中まで確認出来ますので、この中での識別はいまいちですが良しとしています。
またまたついでですが、横にある姿見にはテープ状のLEDが付いています。スイッチは押しボタンで、45秒後に自動で消えます。消し忘れで妻から叱られるのを防止する目的の自動消灯です。待機電力を考えると絶対にエコではありません。
回路は「アリエクスプレス(アリババ)」で購入した遅延タイマーを使っています。4年前に 98円で2個購入しました。 送料込みです。
つまらない内容でしたがご参考になれば幸いです。では次回をぜひお楽しみに!!