見出し画像

書籍紹介「電子工作マガジン WINTER2021」(電波新聞社刊)

電波新聞社より年4回刊行されている「電子工作マガジン」を皆様にご紹介いたします。
今回ご紹介するのはWINTER2021(2021冬号)です。

まずは超ごめんなさいっ!!年末&年始のドタバタにて電子工作マガジンの紹介書くのが遅くなってしまいました。今回はクリスマス関係の電子工作がかなり充実した内容だったのですが、そのあたりはネタが古くなっちゃったので今回は割愛させていただきます。

それでは今回も、私が気になった記事(ほぼプログラミング関係ですが)に絞ってお届けしたいと思います。

紹介の関係上、書籍の一部を撮影またはキャプチャーして掲載しておりますが、あくまでも記事理解を助ける範囲に留めるよう配慮しております。もし関係者の方よりご指摘をいただいた際には、速やかに該当部分を削除させていただきますので、何卒ご了承のほどよろしくお願いいたします。

PCレクチャー「IchigoJam BASICでゲームを作ってこの冬を乗り切ろう!」

画像1

毎度おなじみくりひろし先生の連載漫画。今回のお話しは前号(2021秋号)からの続編となります。

前号では「これだけあればゲームプログラムが作れる!」と銘打って、IchigoJam BASICで使用可能な16種類のコマンドを紹介しておりました。

プログラムとして書かれるコマンド
 CLS 画面の表示を全て消去
 LET 数を変数や配列の値として記憶
 LOCATE または LC 次に文字を書く位置を指定
 FOR NEXT 変数でNEXTまでを繰り返し実行
 INKEY( ) キーボードから1文字入力
 PRINT または ? 数や文字列を表示
 CHR$ PRINTで文字コードの文字を表示
 IF ELSE 判定でIFの次かELSEの次を実行
 GOTO 指定した行番号に飛んで実行
 SCR 画面に表示の文字コードを取得
 END プログラムを終了

プログラムの作成に使うコマンド
 RUN プログラムを実行
 LIST プログラムリストを表示
 数字 数字を行番号としてプログラム
 SAVE プログラムを保存
 LOAD 保存されているプログラムを読出

(以上、2021秋号より引用)

それでね、これに対して私が前号紹介記事で次のように言ったのですよ。

その16種類…んー、このセレクトって「どんなゲームを作らせたいか?」によると思うのですが、私だったらCHR$とSCRの代わりにINPUTとRND( )を入れるかなぁ。

何でそう思ったかって言うと、この2つがあればとりあえず数当てゲームが作れるんですよ。数当てゲームっていうのは任意の範囲から乱数で決定された数が何であるかをプレイヤーに当てさせるゲームなのですが、これひとつで入力・表示・乱数・条件分岐の要素を学べることからプログラミング習得の第一歩としては最適な教材だと思うのです。

そしたらですね…。

画像9

何と!!「RND」コマンド(乱数発生)が今号にて紹介されているではあーりませんか!!

しかもここで紹介されている「ハイ & ロー ゲーム」は、言うなれば形を変えた数当てゲーム。そこまで汲み取ってくださりました?ホントにっ?!いやそう受け止めちゃいますよこれ。超大感謝ですくりひろし先生!神様仏様くりひろし様!!

ただ…(ごめんなさいねいつも指摘ばっかで)INKEY()のキー入力に対する数値がなんで「U=85」とか「L=76」に呼応するのかについてはどこかでちゃんと説明がほしいかもです。あれってIchigoJamのリファレンス(命令表)見ただけではよく分からない部分なので…。
(下記サイトを見ると「なんでそうなるのか?」が分かるかも…)

ここまで書いてて、「いやむしろINKEY()使わせてるんだったらカーソルキーとスペースキーで良くない?」とか思っちゃったり…。あぁそのっ、心にうつりゆくよしなしごとをそこはかとなく書き殴ってるだけですので、どうかお気を悪くされませぬようお願いします先生っ!!<(_ _)>

あと、これ。

画像10

「FOR~NEXT」と「GOTO」(GOSUB~RETURN)どっちがいいのさ問題。これ私も思ってることがありましてね…。

実は私、「FOR~NEXT」が昔からあんまり好きではありません。何故かと言うと「GOTO」(GOSUB~RETURN)で同じことができるからです。

例えば、以下のプログラムはどっちも同じ動きをします(Aを開始時の値から1ずつ加算していき99に達したら終了するプログラム)。

「FOR~NEXT」を用いたパターン

10 FOR I=1 TO 100
20 PRINT A
30 A=A+1
40 NEXT

「GOTO」を用いたパターン

10 PRINT A
20 A=A+1
30 IF A>99 THEN END
40 GOTO 10

ここで私が使っている「IF~THEN」(この例だとAの値が99より上なら終了しろ、の意)のことをプログラミング用語で「条件分岐」というのですが、プログラムってぶっちゃけちゃうと条件分岐の固まりだと思ってます。常に何かと何かを比較し、「こっちならこう、そっちならそう」というのをたくさん繰り返すことで成果物を作り上げるわけですから(私の経験が浅いからそう思っているだけかも知れませんが)。

で、これは個人のクセとか好みもあるでしょうが、基本的には同じ文法というか処理でみんな片付けたいわけですよ。で、プログラミングでどうしても多用するのが「GOTO」(あそこに飛べ)と「GOSUB~RETURN」(あそこに飛んでRETURNで戻ってこい)と「IF~THEN」(条件分岐)のパターンになりがちなので、あえてそのパターンから外れる「FOR~NEXT」(FORとNEXTの間を指定回数繰り返せ)をなんで使わにゃならんの?という思いが私の中にはずっとあったのですね…。

今回のくりひろし先生の漫画によれば、初期のIchigoJamにはFOR~NEXT文自体が搭載されていなかったそうですが(それはそれで「ホントにっ?!」と思っちゃいます…)、やはり私みたいに考える人がいたのでしょうか。

これに対するくりひろし先生(漫画ではDr.D)の見解としては

しかしプログラムのわかりやすさでは本来、FOR NEXT文の方がまさっている。GOTOだとプログラムが長くなるとどうしてもわかりにくくなるので、以前はGOTO文は使わずにGOSUBで!なんてキャンペーンもあったほどだ。

となっております。

うーん、そうなのかな…。

まぁ確かに、GOTOであちこちに飛ばしてばっかしのプログラムを「スパゲティプログラム」なんて揶揄するような傾向もありますからね。

私も苦手意識とか好き嫌いで避けてるのは確かに否めないので、最近はなるべく意識して「FOR~NEXT」も使うようにはしています(ってもあまり公開できるようなプログラムは書いてませんが)。

あとそれと(なんか今回これの説明だけで書籍紹介終わっちゃいそう…くりひろし先生を讃える回になってます)、IchigoJamのメモリスタックについても今回触れられてますね。

名称未設定 1

私がIchigoブレード作るときにやっちゃったやつだこれ!!(詳細は下記note記事参照)

そうなんです。これも原因が分からないと手詰まりになるトラップですから気を付けないと(十勇士パソコンクラブの斎藤先生、あのときはありがとうございました)。

あとこの漫画の中では「LOCATE」(座標指定)、「CHR$」(キャラクターコード)、「WAIT」(文字通り処理を待たせる)について細かく解説されています。

さて、2021秋号と2021冬号の知識を合わせて、これでゲームが作れるか!?

画像17

これについては「作りたいゲームによる」と思います。それこそ例に出してるような「数当てゲーム」みたいなものなら作れるんじゃないでしょうか。あと乱数が分かるんならジャンケンとかサイコロとか作れますよね?ただ、巷にあるような3Dのグラフィックで動くようなやつとかはこれじゃ無理。そういうのやりたいんならUnityとかでしょうけれども、まずは自分の知識と身の丈にあったところから始めるのが一番です。

まだ知識が足りない?そこは載ってるプログラムリストとか見て補完するのですよ。コマンドの意味をひと通り覚えたところでプログラム組めるようになんかなりません。まずは人の書いたプログラムを自分なりの知識で読んでみて、何をしてるのかが分かるようになることから。そのうえで「自分ならこうするんだけどなぁ…」と思ったらやってみる!うまくいくときもあればうまくいかないときもあります。でもそうして人の作ったものをいい意味でパクれるようになれば、それが自分で自分の作りたいものを作れるようになる第一歩なのだと思いますよ。

ぁ…なんかガラにもなく良いこと言っちゃってない私?大丈夫かな?(笑)

私が以前に作ったこれだって、人のプログラムのパクりだらけで構成されております。いつかパクられた皆様が人狼となって私を殺しに来るんじゃないかと、戦々恐々としている次第でございます(笑)。

マイコンBASICコーナー、読者投稿プログラム

毎度おなじみマイコンBASICコーナーでは、読者が作ったプログラムを紹介しています。今回は「水道管ゲーム」(IchigoJam BASIC v1.4.3以降)、「3Dあるけあるけゲーム」(プチコン3号)、「ZXC(ゼクシィ)」(IchigoJam BASIC 1.4.1)の3つが掲載されています。

水道管ゲーム

水道管ゲーム
作者(ペンネーム):てるぼ~ず 機種:IchigoJam1.4.3以降
■ゲーム内容
目の前にイチゴミルクの出る不思議な水道があります。何杯のイチゴミルクを注げるかな?

画像11

「イチゴミルクの出る水道」って、それ水道じゃなくない?というツッコミはさておき(甘いもの好きな人には幸せな水道かも😄)。

水道管ゲームっていうのは昔からあるゲームのひとつで、カードゲームでも発売されておりました。写真は私が学生の頃(ン十年前)に購入したもの。いまでもたまに家族で遊んでいます。

画像12

またかつてはゲームセンターや家庭用ゲームでも「パイフドリーム」というタイトルで「水道管ゲーム」のようなゲームが出ていたこともありました。

さて今回のこの「水道管ゲーム」ですが、どちらかというと水道管をつなげるゲームというよりも「水道管の中をうまく通り抜けてイチゴを回収して所定の場所に運ぶゲーム」という感じでしたね。そして水道管の中にオジャマ虫なるものが存在することも同種のゲームと異なるところです。

画像18

それにしても私にはこのオジャマ虫がネコにしか見えないのですが、私の目が節穴なのでしょうか。ネコが住む水道管…🐱

CameraZOOM-20220122195454486拡大

まぁしかしこれはこれで楽しめました。スペースキーだけでプレイできるというのもユーザーには優しいです。

3Dあるけあるけゲーム

3Dあるけあるけゲーム
作者(ペンネーム):Mino 機種:プチコン3号
■はじめに
昔懐かしい「あるけあるけゲーム」(バリケードゲーム)を、立体視の要素を加えてプチコン3号に移植しました。

画像12

すみません、プチコン3号は持っていないので実際に遊んでみることはできなかったのですが、あの「あるけあるけゲーム」を奥行きの概念付きで移植しただけでもたいした偉業だと思います。

若い方(いや私だって精神年齢は若いんですよ?)には「あるけあるけゲーム」なんて言ってもどんなゲームのことか想像も付かないと思いますので、ここはいにしえの書物を引っ張り出すとしますかね。ほれっ!

はるみちゃん

出典:『PC-6001 はるみのプログラミング・レッスン』
出版:ナツメ社 著者:高橋はるみ

ページそのまんま載せちゃってますが、過ぎ去りし歴史の奥底に眠る太古の記憶を呼び覚ますためとご理解ご承諾をいただければ幸いです。高橋はるみ先生は我らマイコン少年にとって永遠のアイドルであり、いつまでも背中を追いかけ続ける憧れの存在なのでございます。

まぁここに解説載ってる通りなんですが、基本は「自分の歩いた跡を踏まないようになるべく長い距離歩く」というのがこのゲームの主旨。はるみさんの作ったバージョンだと、これに加えて障害物が出てくるように作ってるみたいですね。今回Minoさんが作った「3Dあるけあるけゲーム」では障害物の代わりに自分の通った跡をある程度消してくれる「ターゲット」というものを出してくれるらしいです。親切設計!!

というわけでプレイ画面はありませんが、どんなゲームか何となくイメージできたでしょうか。私的には「手前レイヤーと奥レイヤーを行き来できる」という概念が何だか「餓狼伝説」みたいだなぁと感じました(これだっていまの若い人にはワカラナイヨ!!)。

ZXC(ゼクシィ)

ZXC(ゼクシィ)
作者(ペンネーム):ピピン68k 機種:IchigoJam BASIC 1.4.1
■ゲームの内容
敵と同じ文字をキーボードで撃って倒すシューティングゲームです。

画像13

タイトル見て結婚関連の雑誌かと思っちゃったよ!というのは定番のボケということでごカンベンを。昔の「ゼクシィ」は攻めてて好きだったんだけどな…(まだ言うかこの老害め!)。

ゲームはオリジナルみたいですね。自機を上下に動かして、敵の右端にある文字と同じキーを打って消すというのが基本。なるほど使うキーが「Z」と「X」と「C」だから「ZXC」なのかと思わず納得…と思って油断してたら、これ敵の文字が後からどんどん増えるやん!最終的には「ZXCVBNM」という、なんて読むのか分からない謎のクリーチャーに成長するので気を付けてプレイすべし。

画像20

ゲームのポイントとしては「同じ文字を連続して消すとボーナス」というあたりがアツいところ。とはいえゲームが進むとそのあたりが割とどうでもよくなってきたり。見ようによってはシューティングというよりちょっとしたタイピングゲームみたいな気もします。

ということで読者投稿プログラム紹介はここまで。こういうのに触れるのもプログラミング上達の手がかりのひとつですよ。などと言ってる私も、大半なにやってるか分かってなかったりするんですけどねっ(自慢にならん)。

パッドを動かして球を打ち返しブロックを消すブロック崩しゲームがIchigoJamで楽しめる!「Ichigoゲームコントローラー」を作ろう!!

画像13

ほぉぉ…。

ここからはちょっと電子工作的な内容も入ってきます。うーん、予算は860円とお手頃価格なんですが、難易度★★★か…。私以前に難易度★★のラジオが自力で作れず、泣きながら専門家のお世話になったクチだからなぁ。

そしてこれ、ゲームコントローラーといってもこれだからねぇ。

画像14

しかしこれをバカにすることなかれ。何せ昔のTVゲームはこんなんだったのだからね。そりゃっ!!

画像15

なに?なんなのその目は?いま一瞬「お前本当は何歳なの?」って目で私を見たでしょう?失礼な!私の精神年齢は若いんだぞっ!!酒飲んだら警察に捕まるかもしれないんだぞっ!!言っとくけど私の年齢を知って生きていた人間はかつてひとりもいないと言われていますからね!?だから詮索したらダメですよゼッタイ。禁則事項ですっ!!

…ということで(何が「ということ」なのかはさておき)、うーん、これは私、何か使い道を思い付いたらチャレンジしてみるかも(逃げ)。アナログ的な動きをIchigoJamがどのくらい拾うのかってことについてはちょっとだけ興味深くはあるんですけどね。

micro:bitでIchigoQuestが動きPC不要でプログラミング micro:Dakeアダプタキットを作ろう

画像7

このタイトル聞いただけではなにがどうなってるのか、micro:Dakeとやらは美味しいのかなど、いろいろなことが分からない方も多いでしょう。ひとつひとつ説明していきますね。

micro:bitについて

micro:bitというのはイギリスの公共放送局「BBC」(英国放送協会)が開発した教育用のコンピュータの名称です。

2015年に開発され、イギリスの11歳と12歳の小学生に無料配布されたとのこと。ちなみに我が国日本のIchigoJamは2014年に開発、公開されています(日本もIchigoJamに対してそのくらいすれば…ってつい思ってしまう)。

Amazonでも売っているのですねこれ…。

なお、この記事に即した使い方をするには、micro:bitの中にに必要なソフト「IchigonQuest」を入れておく必要があるようです(下記「micro:Dakeアダプタ組み立てキット」サイトより入手)。

画像9

具体的なインストール方法は「電子工作マガジン」誌面をご参照のこと。

■ micro:Dakeアダプタキットについて

これについてはズバリ下記サイトを参照してください。こういうのが売っているのです。

「電子工作マガジン」紙面にはこの「micro:Dakeアダプタキット」の入手方法がなぜか記事の最後に記載されているので、見落とさないよう要注意です(上記リンクと同じですが)。

IchigoIgaiについて

さらに、「IchigoIgai」(イチゴイガイ)というものが必要です。

IchigoIgaiというのはIchigoJamのバリエーションのひとつだとここでは理解しておいてください。通常IchigoIgaiを単体で使うことはなく、IchigoDake(イチゴダケ)とセットで使用するものです。が、今回はその部分をmicro:Dakeが受け持つということなので、IchigoIgaiがあれば大丈夫なようです。

(あとは実際に動くのにビデオ入力端子が付いたモニター、モニター用電源、RCAケーブル、PS22対応キーボード、microUSB端子付きの電源5Vが必要とのこと。まぁこのあたりはIchigoJamと一緒ですね)

そんなこんなで必要なものが揃ったら電子工作!トンテンカントンテンカンギーコギーコガリガリガリズシーンドガシャーン!!!(実際ハンダ付けが大半のはずなので、そんな効果音するわけないですが…)

最終的に出来上がったIchigoDakeアダプタをmicro:bit(IchigonQuest入り)とIchigoIgaiと組み合わせると、PCを介さずにmicro:bitのプログラミング環境が手に入るってわけ。

画像16

まぁ、記事から読み取れるのはこんなところでしょうか。すみません、自分でやってるワケではないのでどうしても曖昧な記述になってしまいます。

しかしこれはどのくらい有効なんだろう?PCレスでプログラミングしたいんならIchigoJamでいいじゃんと思ってしまうのですが…あ、そうかあれは一応「こどもパソコン」って銘打っているからなぁ。あるいはIchigonQuest的なものをmicro:bitでやるってことに意味があるということなのか…?

ちょっとおもしろいかもと思って着目してみたけれど、これ結局はmicro:bit次第な気がするなぁ。

というところで、今回最後の記事紹介に続けていきたいと思います。

micro:bitで最初のプログラミング!予告編「micro:bit」って何?

画像9

こちらはマイコンBASICマガジンコーナー。「電子工作マガジン」では次号よりこのmicro:bitに本格的に向き合っていくつもりらしく、このような予告編が記載されています。

ふむふむなるほど、これを読む限りではいろんなセンサーが初期搭載されているほか、無線やBluetoothの機能が搭載されているなど割と至れり尽くせりみたいですな。言語も「MakeCode」っていうスクラッチっぽいのが使えるのに加え、JavaScriptやPythonにも対応しているとか…。

ま、今回は予告編ということなので次号を楽しみに待つとしましょう。


ということで「電子工作マガジン WINTER2021」の紹介はここまで。今回はほぼプログラミング関係に偏った内容となりましたが、電子工作もプログラミングも掲載されているのが本誌です。モノづくりに興味がある方、よろしければぜひ本誌を手に取ってみてくださいませ。


いいなと思ったら応援しよう!