ひろじいべーしっくch「BASIC入門編」の補講2の動画の解説・補足。(0-032)
ここでは、Switchプチコン4のサンプルプログラムの解説及び一部の改変と「ワークショップ資料 後半」のレビュー等を紹介しています。
プチコン4のサンプルプログラムとは?
2025年6月時点では13本のサンプルプログラムが収録されています。

1 DOTOWN.GRP (前田デザイン室のグラフィックデータ。BASICDEMO4826行目で使用)
2 BASICDEMO (「命令ごとのデモ」プチコン4のデモプログラム)
3 DOTOWN_DEF.PRG (前田デザイン室の定義プログラム。BASICDEMO4827行目で使用)
4 DOTOWN_NAME.PRG (前田デザイン室の各デザインの名称データ)
5 EX1TEXT (EX1:「もじひょうじ」文章のプログラム)
6 EX2CALC (EX2:「けいさんCOMPUTER」電卓のプログラム)
7 EX3KEYDRUM (EX3:簡易鍵盤ドラムのプログラム)
8 EX4NUMGAME (EX4:数当てゲームのプログラム)
9 EX5BIORHYTHM (EX5:バイオリズムのプログラム)
10 GAME_RPG.PRG (「ダンジョンたんけん」RPGプログラム)
11 GAME_SHOOTER.PRG (「SHOOTER」シューティングプログラム)
12 GAME_TALK.PRG (会話ゲームプログラム)
13 KANJITBL (漢字を含む日本語文字のリスト)
「使用するプロジェクトの変更」では選択に登場しませんが、ダイレクトモ^ドでPROJECT命令を使うことにより、使用するプロジェクトを変更できます
PROJECT“#EXAMPLE”
単にサンプルプログラムを遊ぶだけであれば、TOPMENU>作品を見る>サンプル>遊びたいプログラムを選択しAボタンで実行できます。
実行後、エディットモード(ダイレクトモードからXボタン)でプログラムの中身を確認できます。
データのみのプログラム(上記3、4、13のプログラム)は実行しても即終了となりますが、こちらも実行後、エディットモードでプログラムの中身を確認できます。
1のDOTOWN.GRPはGAHAKUから例えばG1のページでLOAD(LOAD画面で、一旦GPAGEの名称を消してDOTOWN.GRPとしてLOAD)すればGAHAKUに読み込めます。

LOAD画面で、一旦GPAGEの名称を消して

DOTOWN.GRPとしてLOAD

GAHAKU のG1ページに前田デザイン室の画像を読み込めます。

プチコン4のサンプルゲームの難易度を下げてみた。
GAME_SHOOTERG(オリジナル)

ざっくりとした図はこんな感じ。

GAME_SHOOTERG 改造1 ほぼ無敵。EAZY
網掛けは変更なし。




改造をハデに無敵っぽくすると終わらなくなるので、+キーを長押し、またはF5で終わる。
GAME_SHOOTERG 改造2 もう少し面白くした。
変更点は以下の通り。
・10機。
・自機はHPを1減らす仕様にした。
・レベルはEAZY
・ボスを倒してもゲームオーバー
・移動範囲を常識的に制限(画面外でも移動可能となっていた)
・連射可能にした。
・自機のミサイルが一旦戻らないようにした。
SHOOTORG3







改造3 2面目を作成(改造2からの変更点)
注意点
SHORTGSCというDATファイルを作成する。中身は配列DA
DA[0]にスコア、DA[1]に自機の残機数を1面から2面に引き継ぐ。
VER4.1(1面用)とVER4.2(2面用)
VER4.1(1面用)
2行目 VER4.1
13行目 DIM DA[10]追加
119 LOCATE 23,18:?“ROUND 1 CLEAR”
120 COLOR #C_WHITE
121 DA[0]=SC
122 DA[1]=HP
123 SAVEV“DAT:SHORTGSC”、DA
124 EXEC“SHORTG4_2”
125 END

VER4.2(2面用。名称は1面用の124行目からの引継ぎである“SHORTG4_2.PRG”である場合)
2行目VER4.2
(旧) 9. M1$=“:1@108L16V60O1[C<E<C<G<C<D<C<A]”を
(新) 9. M1$=“:1@108L16V60O1[E<C<C<G<C<D<C<A]”
(旧) 10. M2$=“:2O2@38V90L8[C<C]” を
(新) 10. M2$=“:2O2@38V90L8[C<B]”
(旧) 13. PP= 0:SPSET PP,3323:SPD=2:SC=0:HP=10:BH=200を
(新) 13. PP= 0:SPSET PP,3323:SPD=2:BH=200:DIM DA[10]:LOADV“DAT:SHORTGSC”、DA:SC=DA[0]:HP~=DA[1]に変更
15行目
(旧) 15. BP=100:SPSET BP,3512:SPOFS BP,SCW/2,-128,0
(新) 15. BP=100:SPSET BP,7779:SPOFS BP,SCW/2,-128,0
16行目に LOCATE 1,4:?”ROUND 2“追加
33行目
(旧) 33. SPCOLOR EX, RGB(64,55,55,55)を
(新) 33. SPCOLOR EX, RGB(64,255,255,55)に変更
119行目以降はSHORTG3_1と同じ
119 LOCATE 23,18:?“GAME OVER”
120 COLOR #C_WHITE
121 END

プチコン4 ワークショップ資料 後半の「クレイジードレドランド」レビュー
公式ホームページから(プログラミング学習→プログラミング学習資料と進んでください。)「プチコン4ワークショップ資料後半」のpdfをダウンロードしてください。また、今回使用する「クレイジードレドランド」を公開キー44JSD32EX3でダウンロードしてください(無料です)

動画では順調に指示通り入力をしていきますが、「L04:Yボタンで加速する」での419行の入力

こちらについては
IF BUTTON(0,#B_DASH) THEN
つまり、DUSHではなくDASHが正しいです。
改造1 1面のダンジョン変更。ジャンケンを公平に
(1面のダンジョン変更。)動画の45分53秒
2822行あたり @STAGE0‗0の中のDATA “GAAAHY”を“GAZ”に変更
(ジャンケンを公平にする)動画の47分42秒
1075行あたり IF ZURU==0 THEN JAN$=JTBL$[RND(3)]をJAN$=JTBL$[RND(3)]に変更
改造2 クマが出すジャンケンをグーの固定にする。動画の48分31秒
1075行あたり IF ZURU==0 THEN JAN$=JTBL$[RND(3)]をJAN$=JTBL$[0]に変更
その他改造の参考 いけ めんぞう氏作の「クレイジーまるはげランド」公開キー 4BNE2KHE
「ひろ入1」のサイズを必要最小限の少なめのサイズにしました

「ひろ入1」(公開キー44425K433)についてはサイズが大きすぎる状態がありました。
SPRITE‗TESTが通常のグラフィックページ4ページとほぼ同じサイズだったためです。
参考としてまずLOADG命令とSAVEG命令を確認してください。
+++++++++++++++
LOADG “[ファイル種類:]ファイル名”,グラフィックページ[,OX,OY]
LOADG “[ファイル種類:]ファイル名”,グラフィックページ[,OX,OY] OUT 幅,高さ
画像ファイルを読み込む
・オフセット指定時はみ出した部分は無視される。
・実行結果はRESULT関数で取得できる。
・RESULTの値は、成功時は1、失敗時は0、キャンセル時は-1となる。
引数
ファイル種類
GRP,JPGまたはDATを指定できる
・省略時はGRPを指定した事になる。
・DATを指定した場合、二次元整数配列以外のファイルはエラーとなる。
ファイル名文字列
読み込むファイル名
グラフィックページ
読み込んだ画像データを格納するグラフィックページ:0~5
OX,OY
画像の読み込み先座標
・省略時は0,0を指定した事になる。
返値
幅,高さ
読み込んだ画像データの幅と高さ
例
LOADG “GRPDATA”,1
LOADG “DAT:DATA”,2,0,64
LOADG “GRPDATA”,2 OUT W,H
+++++++++++++++
SAVEG “[ファイル種類:]ファイル名”,グラフィックページ[,始点X,始点Y,幅,高さ]
グラフィックページの内容をファイルに保存する
・上書きセーブ時は上書き前のファイルが @BACKUP.GRP という名前で保存される。
・実行結果はRESULT関数で取得できる。
・RESULTの値は、成功時は1、失敗時は0、キャンセル時は-1となる。
引数
ファイル種類
GRPのみ指定可能
・省略時はGRPを指定した事になる。
ファイル名
セーブファイルに付ける名前
グラフィックページ
セーブするグラフィックページ:0~5
始点X,始点Y
保存したい領域の左上の座標を指定する(X,Y共に0~2047)
・省略時は0,0を指定した事になる。
幅,高さ
保存したい領域のサイズを指定する(幅,高さ共に1~2048)
・始点Xと幅、または始点Yと高さを足した結果が2048を超えるとエラーとなる。
・省略時は2048,2048を指定した事になる。
例
SAVEG “GRP:GAZOU”,0
SAVEG “GAZOU_ICHIBU”,3,100,100,300,300
+++++++++++++++
話を戻します。SPRITE‗TESTが通常のグラフィックページ4ページとほぼ同じサイズだったため、「ひろ入1」のサイズが大きくなっていたのです。

適正なサイズのグラフィックデータ(今回は16×16サイズだった場合)を抽出するため、仮に古いグラフィックデータの名前を“SPRITE‗TEST”
新しいグラフィックデータの名前を“GPAGE3‗TEST2”とするならば、以下の命令を実行することでできます。

書き込むときは0ページですが(3ページで使用する目的でも、3行目の様に3,0,0,16,16で作成した場合はGAHAKU3ページ目で読み込んでも読み込みができません。4行目の様に0ページで作成、すなわち引数を0,0,0・・・にして下さい。)
中身は、これを(4行目の様に0ページで作成した場合は)GAHAKUの3ページ目で読み込むと次の様に利用できることが確認できます。

グラフィックからの表示確認用のプログラム

上記の実行結果

なお、更新により名称はGPAGE3_TEST2からSPRITE_TESTになっています。
2025年6月にはサイズは小さくなっているので更新をお願いします。
また、同じく「ひろ入1」に入っているN12‗ROULETTE_3は以下の様になっています。

N12‗ROULETTE_3の実行結果

モールス信号(1)
NHKマイコン入門(日本放送協会、昭和57年(1982年))でNHK放送、書籍でも掲載された「モールス信号」のプログラムをプチコン4用に移植してみました。

実行後INPUT文で聞いてきますのでアルファベット(英文字)で入力してください。終了は999と入力してください。
DATAの1は短い音2は長音、3は休みです、参考としてモールス信号の一覧表を以下に載せておきます。(出典はウィキペディアなど)

実行結果(動画の57分57秒)

なお、“SOS”を悪戯に使用せず、取り扱いには注意して下さい。
モールス信号(2)
上記モールス信号(1)の自動再生版です。@BUNにあるDATAにあなたの思った英文で入力し、最後に“999”を入力してください(下記の19行目DATA“999”)

実行結果(動画の59分2秒)

あとがき
Switch2の性能は最大120fpsとなる場合があるため、従来のSwitchが60fpsであることからプチコン4への公式からの今後の更新が注目されます。
コメント