すっかり手軽になった基板発注、無料の基板CADソフトを使った両面基板づくりは小中学生でもチャレンジできます! そんな両面基板のエッセンスを使ったステキなゲームを発見!


配線が多くなると、表と裏の二層を使い分けて目的の箇所をつないでいく感じは確かにゲームに通じるものがありますね。

おもしろそうだったので、さくっと形にしてみましょう! IchigoJam編!

RUN on IchigoJam web

ざっくり解説する作り方。ひとまずおなじみ普通のヘビゲームを作ります。

1 'SINGLE-SIDED-HEBI 10 CLS:X=15:Y=5:A=-1:B=0:S=0:H=ASC("♥"):M=ASC("⚪"):GSB200 20 K=INKEY() 30 IF K>27 && K<32 A=(K=29)-(K=28):B=(K=31)-(K=30) 40 X=X+A:Y=Y+B 41 P=SCR(X,Y):IF P=H S=S+1:GSB200:P=0 42 IF P || X<0 || Y<0 || X>31 || Y>22 GOTO400 45 LC X,Y:?CHR$(M); 46 WAIT 5 50 GOTO 20 200 C=RND(32):D=RND(23):IF SCR(C,D) CONT ELSE LC C,D:?CHR$(H); 205 LC 0,23:?"SCORE:";S;:RTN 400 LC 10,10:?" GAME OVER ":WAIT60:CLK:FORI=0TO1:I=INKEY():NEXT:RUN

10 準備
20-50 メインループ(42 何か当たるか画面外で終了)
200-205 エサ表示サブルーチン
400 ゲームオーバー、リトライ処理

INKEY()でキー入力を受け付けて、向いている方向(A,B)にずっと動き続けるのがヘビゲーのおもしろさですね。

(RUN on IchigoJam web)

続いて、二層構造にしてみましょう。

1 'DOUBLE-SIDED-HEBI 10 CLS:X=15:Y=5:A=-1:B=0:S=0:F=0:H=ASC("♥"):M=ASC("⚪"):GSB200:GSB300 20 K=INKEY() 25 IF K=32 F=!F 30 IF K>27 && K<32 A=(K=29)-(K=28):B=(K=31)-(K=30) 40 X=X+A:Y=Y+B 41 P=SCR(X,Y):IF P=H || P=H+1 IF F=S&1 S=S+1:GSB200:P=0 ELSE GOTO400 42 IF P=F+M || P=M-1 || X<0 || Y<0 || X>31 || Y>22 GOTO400 45 LC X,Y:IF P=0 ?CHR$(M+F); ELSE ?CHR$(M-1); 46 WAIT 5 50 GOTO 20 200 C=RND(32):D=RND(23):IF SCR(C,D) CONT ELSE LC C,D:?CHR$(H+S&1); 205 LC 0,23:?"SCORE:";S;:RTN 300 C=M:GSB310:COPYC*8-8,C*8,8:C=H:GSB310:RTN 310 FORI=0TO7:POKEC*8+8+I,PEEK(C*8+I)&PEEK(24+I):NEXT:RTN 400 LC 10,10:?" GAME OVER ":WAIT60:CLK:FORI=0TO1:I=INKEY():NEXT:RUN

300-310 裏面用の網掛けした絵文字を作成するサブルーチン(追加)
25 スペースキーで裏表切り替え
41 エサは正しい面で取らないとゲームオーバーとしました
200 エサが出現する面は表と裏、交互にします

IchigoJam絵文字の白丸をキャラクターコード3の網掛け模様とビット論理積をとって合成する技! 45行で裏面表面、両方通っているところは一見わかりませんが、通れないようにしているところがポイントです。

両面基板の表裏を切り替える感を加えます。

500 C=H:GSB510:C=M:GSB510:RTN 510 T=224:COPYT*8,C*8,8:COPYC*8,C*8+8,8:COPYC*8+8,T*8,8:RTN 25 IF K=32 F=!F:GSB500

500-510 表パターンと裏パターンを交換するサブルーチン
25 スペースで切り替える時に呼び出すように追記

なかなか楽しいゲームになりました!
ワクをつけたり、ヘビの長さを制限したり、好みに合わせていろいろ改造するのが上達の近道!


ハイスコア、18点!

links
- こどもパソコン IchigoJam
- IchigoJam BASIC on the web by WebAssembly

速度面と入手性と価格に難ありだった320x240の液晶版「IchigoJam mobile β」。同サイズのILI9341版液晶が割と良さそうとのことで、対応チャレンジ!(by 中村さん on IchigoJam-FAN)


動きました!

ただ、48MHzで動作するIchigoJamには、320x240の液晶駆動はちょっと重い。 ILI9341のデータシートを確認、reduce color mode の文字に期待したが、残念ながら結局1画素最小16bit、モノクロモードとか、8bitモードとかあるといいのに。

1/60秒で全画面描画が間に合わないので、ちょっとずつ分割しての表示に対応し、音出力にも対応。速度は通常のIchigoJamに近い感じに合わせる形に調整。約10fpsの表示としました。ぎりぎり使える?

ILI9341対応βファムウェーア:IchigoJam 1.4β19 for ILI9341
接続方法は、ST7567とほぼ一緒。

液晶モジュール - IchigoJam
SDO(MISO) - NC (接続なし)
LED - VCC(抵抗を介して接続で明るさ調整可)
SCK - IN1 (SPI用のクロック)
SDI(MOSI) - VIDEO2 (SPI信号)
DC - IN2 (Data or Command)
RESET - IN4
CS - GND (Chip Select - 常に選択)
GND - GND
VCC - VCC (3.3V)

ST7567版と違って、SWITCHによるビデオ信号との切り替えはありません。反転はできますが、拡大表示には非対応。

links
- ILI9341 on Amazon

教材づくりや、オンラインイベントで活躍、ブラウザ上で動くIchigoJam web、EEPROMを使った128コの拡張領域を含むファイル保存に対応しました。CPUに保存する0-3の4ファイルに加え、1Mbit EEPROMを搭載した時に使える100-227までの128ファイルが、ブラウザ上に保存されます。 データは localStorage で、保存されるのでブラウザを閉じても再開できます。

IchigoJam web
長いプログラムのLISTコマンドでの停止が効かない問題にも対処完了、大作づくりにどうぞ!

大作を作るコツ
- シーン毎にプログラムを分けて、LRUNでつなぐ(ファイル番号と行番号を指定可能)
- いくつかのシーンから共通で使う場合、変数Rなどで戻るファイル番号や行番号を渡す
- 似たプログラムは別ファイルとして保存を使ってコピーすればOK!
- メッセージなど、文字列は配列へデータをセットするプログラムに分けると便利
- 変数や配列、メモリをどう使うか別にまとめておく
- 局所的にしか使わない場合、配列や別のメモリに退避させるとすっきり(Stackも便利
- どのファイルが何の機能かわからなくならないよう、1行目にコメントで名前をつけておく
- ファイル番号をつけずにSAVEで、前回使ったファイルに保存できる(?FILE())

詳細は「IchigoJam BASIC 1.4 コマンド一覧」を見ながら、どうぞ!


AmabieDakeペンダント | Programming Club Network
疫病退散でご利益があるといわれる妖怪「アマビエ」を象ったIchigoDakeDakeCap、ネックストラップのセット。アマビエさまの目がLED、電池をいれるとピカピカ光るプログラム書き込み済み!

もちろん、自分でプログラミングで自在にコントロール可能もOK!

links
- 全国から参加してくれました!こどもの日IchigoJamオンライン"プチ"ハッカソン | きらきら星のつぶやき☆
- 創造的休暇を過ごそう!IchigoJamプチハッカソン開催 -with PCN仙台【オンラインIchigoJam大喜利】: Hana道場

支え合い、時に競争しながら、みんなで創る未来。世の中にどのように貢献したいか?人によって夢はさまざま。貢献するために足りないスキルを習得すること、それが勉強、または、学習。

義務教育課程の教科は、学習する力を身につけるためのいわばチュートリアル。 個別最適化された学び「GIGAスクール構想」が実現すれば、こどもたちがより実践的な課題に目を向け、それぞれの個性と共により深いスキル習得につながるはず。

2006年、カーンアカデミーによって提唱された動画教材による反転授業とスキルツリー。わからないところは何度も見直せる動画教材がすべて揃えば理想的ですが、福井県による「ふくいわくわく授業」でも100ちょっと。小中全学年全教科に対してはまだまだ不足。

そこで活かしたい民間力。福井県教育総合研究所で紹介されていた「とある男が授業をしてみた」を見てみると小中高校生向けの動画が、なんと計2,000以上!


時間割ガチャ - とある男が授業をしてみたバージョン
チャンネル登録数は90万!教員免許も持っている教えるプロフェッショナル。(【とある男が授業をしてみた】葉一(はいち)って誰?本名/学歴/いじめ/どんなYouTuberなの? | LogTube|国内最大級のyoutuber(ユーチューバー)ニュースメディア


オンラインで学ぼう
教材リストオープンデータとして、2115件、登録したので、このように検索も可能!

2115件のコンテンツをどう登録したか?もちろん、プログラミングです!
こちら YouTube Data API を使って、プレイリストから全動画のURL、タイトル、再生時間を取得し、科目、学年で分類するJavaScriptのプログラムの一部。

let data = await fetchYouTubePlaylists(listid) const lists = [] for (;;) { for (const d of data.items) { const list = await fetchVideoDataFromPlaylist(d.id) list.forEach(i => { i.ptitle = d.snippet.title i.playlistId = d.id }) lists.push(list) } saveCSV(path, lists.flat()) if (!data.nextPageToken) { break } data = await fetchYouTubePlaylists(listid, data.nextPageToken) }

基本は簡単、やりたいことを、順に書くだけ! (全文、src on GitHub)

まだ足りない動画教材。誰もが無料でスマホひとつで始められます。動画タイトルに、例えば【】などを使って、対象の学年と科目が分かるように設定してもらえれば、簡単に自動的に整理されたオープンデータとして活用可能です!(登録はこちら
例)「【小学3年 算数】分数のたしざん」「【小学6年 理科】電気の性質とその利用」
松田さんの「マイクラでまなぶシリーズ」も登録!


IchigoJam 6周年イベントに続く第二弾、Hana道場 x PCN仙台 で開催された、オンラインイベント、プログラミング大喜利で、新中学1年生がお題「めがね(めがねのまちさばえ)」に対してプログラミングした「ニュートンのゆりかご」めがねバージョン。発想と実装力がステキ!

テーマに対して、自分の持てる力を活かして、どのようにアウトプットするか!?
実践力が楽しく問われる、それが、プログラミング大喜利!

プログラミングは、ものづくりの一種。でも、あらゆるものがネットにつながるIoT時代、ソフトウェアづくり(=プログラミング)に対する比重は大きくなるばかり。 いろんな科目での学び、その他の学び、いろんなものを使って、自分だけのアウトプットを創って、発表していきましょう!

IchigoJamのプログラムを他のPCとやりとりする際、半角カタカナはなんとかなるとして、絵文字が文字化けが悩ましいところでした。 プログラム内の絵文字を禁止としてもよかったのですが、作りやすさと、読みやすさに圧倒的な理があります。

そうだ、現代Unicodeにも絵文字があるじゃない!IchigoJamとUnicode絵文字の対応表を作って、解決しました!(日本ゲーム大賞U18部門への応募も安心)


IchigoJam web」New! IchigoJam絵文字のexport/import対応!
対応表はこちら!(自由に使えるオープンデータ、#80は全角空白に対応)

←→↑↓♠♥♣♦⚫⚪🔟🍙🐱👾♪🌀 🚀🛸⌇🚁💥💰🧰📶🚪🕴🕺💃🏌🏃🚶🍓   ▘▝▀▖▌▞▛▗▚▐▜▄▙▟█ ・━┃╋┫┣┻┳┏┓┗┛◤◥◣◢

扱いやすくなったIchigoJamのプログラム、おとなもこどなも、はじめてのプログラミングに Let's try!(時間割ガチャ IchigoJam教材フィルター


【高橋名人インタビュー:後編】「ゲームは1日1時間」の提唱者にあらためて聞く「テレビゲームは誰のもの?」 | eSports World(eスポーツワールド)」より
PCNこどもプロコンで特別審査員として来ていただいた、高橋名人、IchigoJamでのプログラミング姿を披露!(高橋名人のIchigoJam入門


PCNこどもプログラミングコンテスト2019-2020最終審査 - YouTube」も公開!

全角半角問題とサロゲートペアとJavaScriptの話

コンピューターが誕生間もなく、メモリが今の10億倍くらい高価だったころ、文字は7bitで表現していました。 今でも削除(delete)の文字コードが2進数で1111111という名残を遺しています。(削除文字 - Wikipedia

やがて、切りよく8bit(256種)になり、増えた128byteを各国それぞれが自由に使い、日本では半角カタカナが誕生。 ただ、漢字を入れようとすると当然、8bitでは足りず、JISが生まれ、8bitとの共存のためShift-JISが誕生、16bit化しました。 ここで大問題。漢字を使わない文化圏において、文字は8bitで十分、16bitの文字コード(いわゆる、全角文字)を想定していないプログラムがうまく動きません。

これを何とかしよう奮闘としたのが第一次全角半角問題。グローバル化に伴い、文字化け問題の解消のため誕生したUnicodeにより、一安心。 と、思いきや、JavaScriptでは内部の文字コードを16bitで扱っているので、16bitでは収まらない漢字(𩸽、ほっけ)や、絵文字(🐱、🍓など)がサロペートペアとして再び2文字化。 これを勝手に第二次全角半角問題と呼びます。

JavaScriptで絵文字を扱う時の注意、lengthで返すのは16bitコードの長さなので文字列の長さと異なります。また、charAtで返ってくるのは16bitで、サロゲートペアの片方だけの可能性があります。 そのくらい、charAtやlengthの内部でやってよと思いますが、現在の実装は残念ながら多分歴史的な経緯もあってこうなっているので、一文字毎に分離しましょう。

const decU = function(s) { if (s == null) return null return s.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S]/g) || [] } const encU = function(uni) { return uni.join("") } // test const s = 'IchigoJam🍓!' const s2 = encU(decU(s)) console.log(s, decU(s), s2, s == s2)

21bitのUnicodeはサロゲートペアをデコードするか、codePointAtを使うことで取得できます。 JavaScriptで文字列を扱うときにハマるポイントなので、頭の片隅に置いておくといいでしょう。

新型コロナウイルス対策ダッシュボードの更新について

COVID-19 Japan 新型コロナウイルス対策ダッシュボード」の最新状況
毎日更新してきたダッシュボードですが、残念ながら、昨日の厚生労働省の定例更新では、都道府県別のデータが公表されず、速報都県以外のデータを更新できていません。


新型コロナウイルス感染症について
政府・行政の透明性確保に、安定的な情報提供やオープンデータが有効です。情報提供、お待ちしています!

ウェブで動く IchigoJam web に、タッチで操作できるソフトキーボードを追加しました。

IchigoJam web
スマホや、タブレットでもポチポチと入力して、プログラミング体験が可能です。Bluetoothキーボードをつないで快適、フルスクリーンモードにも対応。


PCでも新設の[ key ] ボタンを押すと、お試しできます!

2020/4/30 20時が応募締切の「日本ゲーム大賞U18部門」、IchigoJamで作った作品も、IchigoJam web で動くなら応募可能になりました!

日本ゲーム大賞U18部門
18才以下、チームは5名まで、小学生でも中学生でもOK!
2020年応募要項 – 日本ゲーム大賞 U18部門」に、IchigoJam web でもOKと記載!

・Windows、Macもしくは、Webブラウザ上で動くもの
 例)*.exe, *.app, HTML5 (*.html, *.js), Flash, .jar, IchigoJam Webなど
ゲームは、アイデア!
プログラミングして過ごそう! PCN仙台オンラインIchigoJam講座とミニテクニック

時間割ガチャに「英語で学ぶ IchigoJam BASIC by PCN宮崎」を追加!
自分で学ぼう!

福井県による動画教材「ふくいわくわく授業」をきっかけに作った「時間割ガチャ」、集まったコンテンツを元にバージョンアップ!
時間割ガチャ」(大人フィルタ)
筑波大や、東京大学のオープンコースウェアのコンテンツを追加し、対象フィルタを追加したので、大人もしっかり学べるようになりました!


動画教材等の提供について|京都教育大学 動画教材等の提供について
なんと1,959動画!日英中韓、ポルトガル語、ベトナム語、シンハラ語でも学べる、京都教育大学の学生製作した小中学生用の動画コンテンツが公開!


時間割ガチャ」(ベトナム語フィルタ)
言語を変えて、気分転換!


筑波大学オープンコースウェア
国内外の大学が動画教材を公開しています。これを機会にいろいろ学んでみましょう!


見たいコンテンツのみにフィルタリングも可能です。引き続き募集中です!


いえでまなぼう!」 by @ApplePedlar
教材リストオープンデータを使ったアプリ、登場!いろいろとご活用ください!

福井県の教育委員会が始めた福井県独自の学習動画づくり&配信の取り組みがステキです!


Twitter/Facebookでも県内外から大きな反響!そこで、作ってみました、動画で学ぶ時間割!全国の高専の先生もいかがでしょう?エンジニアに憧れる、小中学生にワクワクを届けるチャンスです!


時間割ガチャ - 教材オープンデータから自動生成する時間割
PCNチャンネルと合わせて、オープンデータとしてまとめ、作ったランダムに教科をピックアップして自分だけの時間割を作ってくれるアプリです。

自分の好きなことを自分で学ぶ時間「自由研究」と、自分で学べば学ぶほど楽しい「プログラミング」を混ぜています。 「ゲームは1日1時間! IchigoJamは1日4時間!!」 by 高橋名人(出典、連射ゲーム - SHIROのIchigoJam日記

Schooさんで、収録した新動画「おとなプログラミング入門」も追加!

プログラミング教材「IchigoJam」の使い方とデモンストレーション 32min」
BASICからはじめよう、SchooにてIchigoJam動画教材収録! ガチャピン・ムック、engadget、高橋名人も参戦!?


「対象、科目、タイトル、URL、公開日」を項目名としたGoogleスプレッドシートや、CSVデータとしてオープンデータとしていただければ、どんどんつないでいきます!
教材オープンデータ 登録フォーム

集約したCSVJSONデータは、オープンデータ by Code for Fukui。こちらも自由にお使いください。ただし、動画自体はそれぞれ提供者の著作物なのでご注意ください。


このプログラムも、GitHubでオープンソースとして公開しているので、学生でも誰でも自由に作り変えて使ったり、公開したりできます! デザインをかわいくしたり、学年選択や、得意科目を多めにいれる、逆に苦手科目を克服するなど、自由に改造して自慢しましょう!

JavaScriptで作ったプログラムのメイン部分(index.html)を紹介。CSVデータを読み込み、タイムテーブル作成し、ウェブサイト内に組み込む。ボタンが押されたら、もう一度!

const main = async function() { const url = 'data/funs.csv' const data = await fetchCSVtoJSON(url) const show = function() { timetable.innerHTML = '' const tt = makeTimeTable(data) timetable.appendChild(tt) } show() btn.onclick = show } window.onload = main

学び方を学ぶ、良い機会!

PCNは止まらない。プログラミングや電子工作のワークショップは休止中のPCN仙台ですが、オンラインイベントを開催!様子を見せてもらいました。

PCN仙台 online」
zoomで集合、ブレイクアウト機能で初心者と中級者に分かれてそれぞれレッスン。中級者コースではRPGゲームづくりにチャレンジしてました。触発されて作ってみたものが右下の。元ネタはこどもの頃やっていたMSXでの投稿作品、モノクロームビーナス by TEIJIRO。 (レビュー発見!、ファンダムReborn-7 - モノクロームビーナス - | 石とMSX


RPGづくりのはじめのいっぽ、まずは主人公を登場させて、歩かせ、敵に遭遇したら、どうにかする。ひとつひとつはシンプルなロジック、好きなように積み重ねて、作ってみよう!


IchigoJam用RPG「Beat the Z」のオープンニング画面です。
IchigoJamの遠隔講座や、プログラミング大喜利で便利な、IchigoJam web の小技。フルスクリーンにできるIchigoJam web ですが、停止させるためにESCを押すとウィンドウ表示に戻ってしまいますが、Ctrlを押しながらCを押すとプログラムは止まってもウィンドウ表示はそのままです。

オープンニング画面のプログラムはこちら!

1 CLS:LC10,5:?"Z ヲ タオシテ。。。":WAIT120

シンプルですね!一言加えるだけで、ぐっと遊びやすくなります。


「Beat the Z for IchigoJam」RUN IchigoJam on IchigoJam
おにぎりを食べるとHP全回復。打倒Z目指して、がんばってみてください!意外と悪くないゲームバランスになってます。(たぶん、たまにZがいなくて積むバグありw)

プログラム全文

GSBを使って、機能毎にプログラムを分けてつくるのがコツ!戦闘シーンでアクションゲームにしたり、コマンド選択式にしたりしたい場合、プログラムを分けて、LRUN呼び出しがいいでしょう。

メッセージ表示で使っている技。?CHR$(24) は、IchigoJam用特殊キーコード、カーソルがある行を消せます。ファンクションキーF12と同じ機能。


第10回PCNこどもプロコンの反省会その1もオンライン開催。地球は一つ感ありますね!

PCN鯖江、Hana道場企画「#Hana道場師範チャレンジ
こどもも大人も、IchigoJamでつくったオリジナルゲーム、大募集!(副賞あり)
#プログラミングして過ごそう

links
- IchigoJam (1,500円〜買える、こどもパソコンIchigoJam)
- PCN チャンネル - YouTube (動画で学ぼう、プログラミング)
- 高橋名人のIchigoJam入門

鯖江駅近にステキな新拠点、コミュニティ シェアオフィス「Hana工房 / Hana Innovation Lab.」オープン!

鯖江駅から徒歩5分、Hana道場の真向かい!

梵で鏡開き!

吹き抜けが気持ち良いシェアオフィス、Hana工房内、密を避けたショートオープニングイベント「プログラミング大喜利」IchigoJamを使って初開催!
お題を出すので、すばやくプログラミングして手を上げて、発表する。Hana道場に通う、新中学生達は皆、何も見ずに即つくりだす! お題「小学1年生の算数」で練習、2つ目は「春」。

はい、早かった。早速SIN/COSを使った桜!

オンライン参加の大学生も負けじと発表、桜!かぶったら、早いほうが高得点。

中村師範による、今年度になる年齢をいれると、とーとつに入学お祝いしてくれるプログラム!短い、うまい!

次のお題は「Hana工房のお祝い」合わせて、動画でどうぞ!

どんどんつくろう!
大人でもオンラインでも楽しい、プログラミング大喜利、ぜひチャレンジしてみてください!

ちょっとプログラミングレクチャー、新中学1年生になったベテラン勢向け「SIN/COS、三角関数入門」。斜め移動や、まるっぽい表現、なめらかで周期的な増減に便利ですよ!
プログラミングで広げる表現力! 小学生でも使える三角関数と高専の役割

links
- Hana工房
- Hana道場

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS