CASIO pocket computer
PB-100の宇宙

top > ゲームライブラリ > Mr.T > まとめて読む

連鎖の熱い本格パズル
Mr.T
by PBロッキー

Mr.T | PB-100

高度な連鎖の楽しめるPB用落ちものゲームの決定版!!

タマランチョフ氏によってもたらされた事実

当時国立研究所所員のタマランチョフ氏(以下T氏)により『Mr.T』(以下『T』)はスパイ機関員の訓練用に開発された.

経済情勢の悪化による厳しい予算での開発にもかかわらず、『T』は著しい成果を挙げその事実は当局の好評を博した.その功績によりT氏には国家功労賞が送られた.

ときは下り、マイコンゲームとして輸出された『T』が外貨獲得に絶大な寄与をしどん底の経済を立て直す原動力となると、当局は当時同研究所所長のT氏への監視を強化した.

しかし彼の亡命の本当の理由は夫人の放蕩であった...

さぁ、ロシア~ンな雰囲気(?)に浸ったところで早速入力して遊んでください.BGMはもちろんトロイカです!

ダイジェスト

RUN STOP DEG
M r . T

タイトル表示.続いてハイスコアが表示される.

RUN DEG
[

画面右から左へ向かう矢印ブロックの向きを揃えて消していく.

RUN DEG
[

は特別なブロックだ.前にある矢印と同じ向きのすべてのブロックを消してくれるぞ.

RUN DEG
* * [

連鎖がうまく決まると爽快だ!

RUN DEG
* * * * * * * * * *

画面が埋まってしまうとゲームオーバー.

遊び方

タイトル、ハイスコアを表示した後ゲーム開始です.

画面右からブロックが落ちてきて、左端に積もっていきます.画面がいっぱいにならないように、矢印ブロックを回転させて消してください.

初期化

初めてプレイする時は、次の初期化を行います.

VACEXE
A=1000EXE

画面表示

PB-100|Mr.T|ゲーム画面の説明

左から積もったブロック、落下中のブロック、NEXTブロック.

キー操作

落下ブロックの左右回転46
ブロックを早く落とすQ

ブロックの消し方と特殊ブロック

PB-100|Mr.T|ブロックの消し方と特殊ブロック

その後 は画面に残ります.これも2つ以上並べば消えます.

ランクとスコア

ブロックが消えると画面右に、消えた個数と連鎖の数から計算したランクが表示されます.最高は4です.

スコアは 10↑(ランク)の値が加算されていきます.

落下速度

落下速度は徐々に上がっていき、最後はキー入力が出来なくなります.

Q キーを多用し、高ランク(3・4)で消すことでスピードアップを遅らせることが出来ます.

落下速度が上がると現在の落下速度とスコアが表示されます.

1:ゆっくり→2:→3:→4:メチャ速→5以上:キー入力不可

プログラムリスト

    1 PRINT " ↑← Mr.T →↓",A;:$="*****[ ♦↑→↓←↑→↓"
    2 FOR B=4 TO 15:A$(B)=MID(B,1):I(B)=0:GOTO 14
    3 $=MID(1,B-1)+MID(B+U)
    4 PRINT CSR 0;MID(6,10);:FOR B=6 TO 13:IF M$(S)=MID(B,EXP SGN T) THEN 3
    5 NEXT B:Q=LEN($)-15:U=1:FOR B=5 TO Q+4
    6 IF MID(B,1)=MID(B+U,1);D=D+1:U=U+1:GOTO 6
    7 IF U>1;PRINT CSR B-6;MID(1,U);CSR 8;D;:V=V+10↑D:GOTO 3
    8 NEXT B:W=W+EXP D:IF W≦1;X=X+1:PRINT CSR 0;X;V;:W=π↑π/SQR X:GOTO 4
    9 S=INT Y:Y=RAN#*4:T=Z:Z=INT (RAN#*4:F$=M$(Y)+I$(Y*SGN Z+Z)
   10 FOR B=-1 TO 7-Q:FOR C=X TO 4:IF KEY="4";IF X<5;S=S+3-4*SGN S
   11 IF KEY="6";IF X<5;S=(S+1)*SGN (3-S
   12 R$=M$(S)+I$(S*SGN T+T):PRINT CSR 7-B;R$;F$(EXP SGN B);
   13 IF KEY≠"Q";W=W-1:NEXT C
   14 NEXT B:D=0:$=MID(1,Q+5)+R$+"          ":IF Q<9 THEN 4
   15 FOR B=9 TO 0 STEP -.2:PRINT CSR B;E$;:NEXT B:IF A≦V;A=V:PRINT "Hi!";
   16 PRINT V:GOTO 1

14 行目のスペースは 10 個です.

PB-100 の初期出荷バージョンの一部で正しく動作しないケースがあります.その際はPB-100初期出荷バージョンの異常動作についてを参照してリストを変更してください.

8行目にバグがあり修正しました。PRINT CSR 0;X;K; → PRINT CSR 0;X;V;(2017年4月23日)

技術情報

変数表

Aハイスコア
B,CFOR~NEXT
Dランク
E$"*"
F$NEXT表示
G$"["
H$" "(スペース)
I$~P$ブロックキャラクタ
Q積もったブロックの高さ
R$落下中のブロック表示
S,Tブロック左、右
U消えるブロックの数
Vスコア
Wカウンター
Xレベル(落下速度)
Y,ZNEXTブロック左、右
$"*****"+"(積もったブロック)"

行番号マップ

1タイトル表示他
2変数の初期化、ブロックキャラ設定
3ブロック抜き出し
4~5画面表示、特殊ブロック用
5~8ブロック消滅
8レベルアップ
9ブロックのセット
10~14ブロック落下の表示、キー入力他
14ゲームオーバー判定他
15~16エンディング、スコア表示他

サブルーチンは 1~9 行に

ゲームの流れはブロックの落下→ブロックの消滅となりますが、プログラムでは前半( 3~7 行)にブロックの消滅処理、後半( 9~14 )にブロックの落下処理を置いています.

これは GOTOTHEN も含む)を多用する消滅処理を行番号の小さい( 1 桁の)ところに置くためです. こうしてなるべく GOTO の跳び先に 2 桁の行番号がこないようにしました.

PB-100 では GOTOGOSUB の後にくる行番号はその字数分だけ step を使うので、こうすることで数 step 稼いでいます.

EXP SGN~ で 1 ステップを稼ぐ

IF M$(S)=MID(B,EXP SGN T) THEN 3
EXP 0 = 1
EXP 1 = 2.718281828

4 行目に使われている EXP SGN ~ は、ここでは 1+SGN~を 1step 圧縮したものといえます.

MID 関数のパラメータや配列変数の指定、CSR など小数部があっても無視して実行してくれる命令に有効な場合があります.

MID の罠

最初にプログラミングに取りかかったとき、MID 関数の扱いに苦労したのを憶えています.

$ には積もったブロックが入っていて、ブロックの消滅処理は $ を直接参照したり操作するのですが、エラーが頻発しました.

原因は(はっきり憶えていないので推測ですが)、$ がヌルになっていたり、MID のパラメータが 0 だったりオーバーしたためでした.

『パニッカーST』を解析して空読み(といえばいいのでしょうか?)が必要なことが分かり、解決しました.

幻の『ぽあぽあ 544 STEP 版』

RUN DEG
8 o 8 ° o o 8 o ° °

以上は直ちに同時進行で制作していた『ぽあぽあ 544 STEP 版』に生かされました.

制作の骨子は、オリジナルでは積もったブロックを配列変数( O$(1)O$(12) )に格納し処理していたのを$のみで行うようにするというものでした.

現在 544 step 版は再現性 95%、544 step に収まりかなり余裕もあります.

ただゲームシステムに根本的な欠陥がある(ように思える)ので発表は見合わせております.

というのも私は一度、ゲーム開始から が連続して何もできないままゲームオーバーになってしまったことがあるのです.

ブロックがポコポコと消える辺りなどかなり快感なのですが、残念です.解消するいいアイデアがあるという方、いいからさっさと発表しろという方、一報下されば発表したいと思います.

ワンラインでアクションパズルを実現するゲームバランス

もとねたはパニッカーST

1ターンの間に必ず1組は消すことができるというのが、PB-100の狭い画面で落ちゲーを可能にするミソでしょう!さすがですね!滝本さん!!

ということで、実はこのゲームのもとは滝本飛沫氏の『パニッカーST』なんです.

連鎖を実現せよ

パニッカーを友人といじっている内に現在の原型となるものが出来ました.矢印をブロックにするアイデアと消えるルールはパニッカーのままで、特殊ブロックは友人のアイデアです.

この特殊ブロックの導入により当時『ぷよぷよ』のヒットで落ちゲーの主流となった連鎖を実現したのです!

さらに、最初は矢印とともに消えていたのですが、現在のように残ることでゲーム性がより深くなりました.これに気付いたことでポケット通信へのアップロードを決意したのでした.

芳醇なる5年熟成

ポケット通信への投稿から5年、プログラムに大幅な無駄を発見したことでアップした時から気になっていたスコア計算・スピードアップのルールを見直すことができ、今回完成版の発表にこぎつけることができました.

すでに緒先輩方により何度も言われていることですがPB-100プログラミングは侮れませんね.

ヴァージョンアップ履歴

97/01/??
Mr.T をポケット通信ver.3に発表.
03/04/18
Mr.T Ver.2.0 を発表.
03/07/14
Mr.T Ver.3.1 を発表.レベルアップ時にレベルとスコアを表示するようにした.
03/09/17
Mr.T Ver.3.2 を発表.レベルアップのタイミングを若干変更.
04/04/21
Mr.T Ver.4.0 を発表.ブロック落下開始位置を変更し、レベル4の時のランク4狙いが運任せから改善された.
04/04/21
Mr.T Ver.4.0(PBsim用)を発表.
04/10/09
Mr.T Ver.4.0(PBsim用)のレベル・スコアの表示時間が短すぎるので修正.

参考文献

小山田 正人
“ぽあぽあ”,ポケコンジャーナル 1996年 4月号,工学社
滝本 飛沫
“パニッカー ST”,ポケコンジャーナル 1995年 3月号,工学社
IZE☆CARIどん
“改訂版 PB-100系ポケコンについて”,ポケコンジャーナル 1994年 12月号,工学社
PBロッキー
“Mr.T”,ポケット通信Ver.3 CASIO機フリーソフト

ポケット通信Ver.3 への発表にあたっては、CASIO機フリーソフトに発表されていた唯一の PB-100 用ゲームであった('97年頭当時)、きっしー氏の『BASEBALL'-やきゅうもどき-』を参考にさせていただきました.