SONAR ARRAY

ソナーマン A「前方海域に音源を確認!」 

艦長「直ちに音紋を分析せよ。」 

ソナーマン A「…敵艦オメガ級に間違いありません。損傷しているようですが微速航行中。」

 ソナーマン B「艦長!ポストプロセスの ASP-1U が不調です。海底地形可視化機能は使えません!」

 艦長「よし、やつが撃てないうちにとどめを刺すぞ。ソナーマン諸君自慢の耳で直接聴き分けろ! 


あなたはソナーマンとしてソナー反射波を聴き分け、敵艦の位置を特定し、魚雷を打ち込みます。 

Programmed by NUAO   2023/6/1

対応機種 

PB-100 シリーズ(拡張メモリ不要) ※少し遅いです

PB-SIM(fast)、Pokecom GO(fast /normal)

操作手順

プログラムを入力します。プログラム・サイズは 540 ステップです。

Shift+[0]で開始します。中断後の再開は、[P0]において RUN 3[EXE]です 。

海域の状況

自艦は Y=0 の位置です。ソナー・アレイは座標 X=0~6 の位置に配置され、中央は X=3 です。 

敵艦は前方の海域 X=-3~9, Y=1~8 のどこかに現れ、微速でどちらかの方角へ移動しています。 

海域はこの周囲(但し Y≧1)にも広がっていますが、遠いとソナー探知が難しくなります。 

アクティブ・ソナー(ピンガー)

敵艦の位置を知るため、[+]を押してピンガー(探信音)を発信します。 ピンガー波は水中を音速で伝搬し、敵艦で反射して、ソナー・アレイに受信されます。受信波形の形・動きから、敵艦の位置を推定します。ピンガーを使用すると自艦の位置を知られる欠点がありますが、今回は敵艦が損傷し攻撃不能と分かってい るため、艦長より使用許可が出ています。

PB-100 実機では、計算速度の制約から受信波形表示まで少し時間が掛かります 。

アクティブ・ソナー受信波形について

受信波形は、①受信するまでの時間、②パルスの幅、③パルスの移動速度 の情報を持ち、 これらを読み取ることで、ターゲットの位置を推定することができます。何度かピンガーを打ってみて、受信波形と敵艦位置の関係を掴んでください。

受信波形が不明瞭でよく分からない場合は、少し時間をおいて再度ピンガーを打ってみましょう。(遠ざか ることもありますが)

注意)受信するまでの時間は、ピンガー波形表示[(((+)))]が消え、受信波形表示[.......]が始まった瞬間がスタートです。 

魚雷発射

敵艦の位置を推定できたら、艦首魚雷を発射して敵艦を攻撃しましょう。魚雷発射管は6門あります。[5]を押すと魚雷発射管に注水すると共に、魚雷誘導装置に設定する敵艦座標の入力画面になります。入力を完了し、再度[5]を押すと、即座に魚雷を発射します。 

魚雷発射後、命中(距離誤差 1 以下)すれば「Done!」と表示され、ミッションクリアです 。

距離誤差が 1 より大であれば「Miss」及び距離誤差値 e が表示され、続行となります 。

距離誤差 e は 5.1 だった。。 

但し、魚雷残数がゼロになると、ミッション失敗です 。

SONAR_ARRAY説明書.pdf

PDFを印刷してイメージカードを作ろう!

PB--100実機形式

PB-SIM形式

[P0]

1 VAC:O=2:B=6:$="''\DT,"

2 E=RAN#*12-3:F=1+RAN#*8:G=(RAN#-RAN#)/99:H=(RAN#-RAN#)/99

3 PRINT CSR0;"[.......]";B;:A$=KEY:IF A$="+";GOSUB #2

4 IF A$="5";GOSUB #3

5 E=E+G:F=F+H*SGN(F-1

6 GOTO 3


[P1]

1 FOR L=L TO 0 STEP -1:NEXT L:RETURN


[P2]

1 PRINT CSR4;"+";:FOR I=0 TO 9:P$(I)=""

2 IF I<3;PRINT CSR3-I;"(";CSR5+I;")"; 

3 FOR J=0 TO 6:K=ABS(I*I*O*O/4-(E-J)^2-F*F

4 M$=".":IF K<4;M$=MID(K+1,1)

5 P$(I)=P$(I)+M$:NEXT J:NEXT I

6 FOR I=0 TO 9:PRINT CSR1;P$(I);:L=20:GOSUB #1:NEXT I:RETURN


[P3]

1 IF KEY<>"" THEN 1

2 PRINT:PRINT "TPD";C;D;:IF KEY="4";C=C-1

3 IF KEY="6";C=C+1

4 IF KEY="8";D=D+1

5 IF KEY="2";D=D+SGN(1-D

6 IF KEY<>"5" THEN 2

7 PRINT:PRINT "Fire! ";:L=99*D:GOSUB #1

8 K=(C-E)^2+(D-F)^2:IF K<=1;PRINT "Done!":END

9 PRINT "Miss.","e=";RND(SQR K,-2)

10 B=B-1:IF B=0;PRINT "Lose":END

11 RETURN