【コムサイト PC88 COMSIGHT TecnoSoft A】

このエントリーをはてなブックマークに追加
1NAME OVER
機種 PC88SR X1Turbo
発売元 テクノソフト ttp://www.tecnosoft.com/
画像 ttp://refugee2005.sakura.ne.jp/library/1987/COM01.gif

タンクの動きをプログラミングして戦わせるシミュレーションゲーム
コムサイトをまったり語りましょう(関連ゲームもOK)
熱いバトルも大歓迎です

BPLソース貼りの場所としても活用ください
2NAME OVER:2012/03/02(金) 23:30:52.21 ID:???
88スレで挙がったプログラム対戦タイプゲーム
元祖はアップルの**というゲームらしい(CoreWars?)

R.C. ロボットコンストラクション(X68)
ttp://www.electricsheep.co.jp/rc.shtml
マリオネットハンドラー(DC)
ttp://www.ni.bekkoame.ne.jp/jet_ryo/robo/game/marionettehandler.htm
地球防衛軍(PC98)
ttp://randy3.hp.infoseek.co.jp/retro/doc/farside.shtml
カルネージハート(PS2)
ttp://www.artdink.co.jp/japanese/title/chez/
MULTIPLY29
ttp://hp.vector.co.jp/authors/VA012411/chapter-10.html#MULTIPLY29
GUN-TACTYX
ttp://gameprog.it/hosted/guntactyx/

関連 ヘルツォーク
ttp://yasai.2ch.net/game/kako/979/979398739.html
3NAME OVER:2012/03/02(金) 23:37:48.54 ID:???
コムサイトはタンクの行動プログラムをBPLと呼ばれる言語で組み、
自動で対戦させるゲーム。

フィールドの広さは16x16ブロック(1ブロック=1マス分)
1ブロックは更に細かい座標であるセクターに分けられる。(1ブロック8セクター)
移動などはブロック単位、ミサイル攻撃の座標指定などはセクター単位で行われる。
 
ダメージが100になるか、エネルギーを使い果たすか、プログラムが終了したら負け。
 
初期エネルギーは30000
攻撃方法はBeamとMissileの2種類
4NAME OVER:2012/03/02(金) 23:44:57.02 ID:???
タンクは外見とシールド形状の異なる8種類。
攻撃が命中するとまずシールドがダメージを受け、
シールドが無くなるとダメージが蓄積していく。
シールドは時間経過で自動回復するが、エネルギー消費が激しくなる。

ビームは真正面に攻撃を行う。
ミサイルは指定座標に攻撃できるが、攻撃範囲は前方45度未満の範囲に限られる。
5NAME OVER:2012/03/02(金) 23:59:59.66 ID:???
BATTLE PROGRAMMING LANGUAGE(BPL)

BASIC風の言語で行番号の後に命令文を書く。

使用可能な変数:A〜Z、A0〜W9
(A〜Wまで後ろに0〜9を付け配列変数として扱える)
XYZはインデックスレジスタとして使用可能
(『X=0:A(X)=1』と『A0=1』は同じ動作をする)

命令毎に動作クロックが設定されており、
命令を実行する毎にゲーム内時間が経過していく。

命令の後ろに実行値を指定するタイプの命令は、
数値が0の場合、クロックを消費しない。
またIF文などはクロックを消費するが、
論理演算をするだけではクロックは消費されない。

そのため高速で無駄なく動作するプログラムにするには、
論理演算を組み合わせ、動作させたいときは必要な数値、
動作させたくない場合は0になるように組んでいくことになる。
6NAME OVER:2012/03/03(土) 00:14:21.39 ID:???
SEARCH <数値、変数>
サーチ命令。 命令の後ろに索敵する範囲をセクター単位で指定する。
指定範囲は1〜64 指定範囲を超えると(-1や65など)
イリーガルファンクションコールエラーになる。

※フィールドは15x15なので『SEARCH 64』(8マス)の場合、
必ず敵か壁を見つけることができる。

サーチした情報は以下のレジスタに格納される。(セクター単位)
@X :X座標
@Y :Y座標
@R :自タンクと敵タンクとの距離
@D :敵タンクの向き

敵を見つけた場合は敵、敵が見つからなかった場合は壁の座標が格納される。
敵も壁も見つからなかった場合は0
タンクの方向は0〜63。自タンクと敵タンクが同じ方向(↑)を向いているときは0。
←16、↓32、→48。 旋回中はその間の数値となる。

指定数値毎に16エネルギー消費する。
7NAME OVER:2012/03/03(土) 00:21:51.62 ID:???
敵タンクをサーチできた場合、以下のレジスタの内容も更新される
@EE :敵タンクの残エネルギー 30000〜0
@ES :敵タンクの現在のシールド値 0〜100
@ED :敵タンクの受けているダメージ量 0〜100
 
参照できるのはサーチで確認した直後の数値なので注意が必要。
 
またサーチに関係なく自タンクの情報は常に確認できる。
@ME :自タンクのエネルギー
@MS :自タンクのシールド
@MD :自タンクのダメージ

@Rレジスタは敵を索敵出来たかどうかの判断基準に使うことができる。
(敵を見つけられなかったとき、@R=0)
8NAME OVER:2012/03/03(土) 00:58:43.73 ID:???
再燃キター
1乙
9NAME OVER:2012/03/03(土) 02:15:51.09 ID:???
BEAM <数値、変数> 1クロック※
使用エネルギー量を指定する。
真正面にビームを発射し、敵タンクに命中した場合ダメージを与える。

使用エネルギー量が多くなれば与えるダメージも増す。
バグなのか仕様なのかは不明だが、
特定の値の場合ダメージが大きいことが確認されている。

※BEAMコマンドに限らず値を変数で指定した場合、
 変数の内容が0の場合、何もせず消費クロックも0になる。
10NAME OVER:2012/03/03(土) 02:20:29.72 ID:???
 
11NAME OVER:2012/03/03(土) 02:33:16.30 ID:???
MISSILE <X座標>,<Y座標>,<使用エネルギー> 1クロック
値は数値でも変数でも指定可能。

攻撃範囲は前方45度以内。
範囲外の場合、ミサイルは発射されない。
また、座標として指定可能な数値は0〜64までで、
エネルギーは0〜30000まで指定可能。
指定範囲を超えた場合エラーとなる。

指定座標に対し、ミサイルで攻撃する。
ミサイルは着弾までに時間がかかり、飛翔速度は1クロックに2セクター進む。
(タンクの移動速度の2倍)

敵タンクが自タンクの1マス前(0,8)にいる場合、
その前後3セクターまで命中する。
(X座標-3〜+3、Y座標5〜11)

BEAMは特定数値のみだが、MISSILEは一定値以上のエネルギーを
消費することで、一撃で敵タンクを撃破可能である。
12NAME OVER:2012/03/03(土) 02:37:39.50 ID:???
TURN <数値、変数> 16クロック
正の値のときは右、負の値のときは左に旋回する。
0の時は旋回せず、クロックも消費しない。
 
旋回が完了するまで、次の命令は実行されない。
非常に隙が大きい行動なので、相手攻撃範囲での旋回は避けた方が懸命。
13NAME OVER:2012/03/03(土) 02:42:00.72 ID:???
MOVE<数値、変数> 8クロック
正の値の時は前進、負の値のときは後退する。
指定可能な数値は-15〜15まで。
指定数値分のブロックを移動する。
0の場合、移動は行われず、クロックも消費しない。
 
移動中のタンクは、1クロックに1セクター進む。
一旦移動を開始したら、移動終了するまで次の命令は実行されない。
 
壁や敵タンクに衝突した場合、ダメージを負うので注意が必要。
14NAME OVER:2012/03/03(土) 02:45:45.76 ID:???
 
15NAME OVER:2012/03/03(土) 02:50:54.67 ID:???
移動に関しては専用命令も存在する。
FORWARD 前進
BACK 後退
RIGHT 右90度旋回
LEFT 左90度旋回
数値の指定などはなく、命令単体で機能する。
必ず指定行動を行い、クロックも消費される。
 
ただし、これらの命令に関しては強いタンクを作ろうとする場合、
全く使用されないと思われる。

同様にIF THEN ELSE、GOSUB RETURNなどの制御命令も使用可能ではあるが、
意図的に使用を避けられることになる。(それだけで無駄にクロックを消費するため)
IF文などを使わずに処理を分岐させる方法についても後ほど解説したいと思う。
 

GOTO <行番号> 1クロック
指定した行番号へ飛ぶ。

プログラムループを作るため、プログラム末尾に
GOTOが1回使用されるだけの形を目指すことになるのではないかと思われる。
16NAME OVER:2012/03/03(土) 02:54:06.63 ID:???
 
17NAME OVER:2012/03/03(土) 03:01:04.97 ID:???
PRINT <"文字列"、変数> 1クロック
文字を表示する。 デバッグ時に便利。

バトル中には全く役に立たない命令なので、確認後は
消してしまうか、コメントアウトする。

使用例:
10 PRINT "X="X,"Y="Y  など
自タンクが思ったように動作しない場合、変数の値を表示させることで
問題のある部分を探すのに役立つ。


TROFF
トレースオフ。
プログラム実行中、リスト表示が流れないようにする。
PRINTで表示した内容が読み取り安くなる。
基本的にデバッグ時以外には不要なコマンド。
(PRINTと共に使い、戦闘中にAAやメッセージを表示させたり……してどうする)
18NAME OVER:2012/03/03(土) 03:08:36.76 ID:???
プログラムの中に含まれない命令

LIST
プログラムリストを表示する。
  LIST <行番号>-<行番号> :指定行を表示
  LIST -<行番号>  :行番号までを表示
  LIST <行番号>-  :行番号から表示

RUN
仮想モードでプログラムを実行する。
仮想モード実行中はスペースキーで1クロック毎の動作をコマ送りで確認できる。
実行中もESCでポーズをかけ、F1のメニュー操作から
敵タンクのダミーの位置を変更したりできる。

RENUM
行番号を整理する。
行番号を振りなおしたいときに。


ちなみにプログラムは4096バイト(半角文字4096文字分)以内で組む必要がある。
しかしながら、行番号はその制限に含まれない。
行番号を1刻みで小さくしても容量を稼ぐことはできない。
19NAME OVER:2012/03/03(土) 03:15:17.61 ID:???
算術演算子 +-/* はもちろん使用可能。

ABS(<数値、変数、式>) :絶対値(正負関係なく、正の値にする)
SGN(<数値、変数、式>) :符号(正ならば1、負ならば-1、0なら0を返す)

例:
X=ABS(5-8)
Xの値は-3ではなく、3になる。

X=SGN(@R)
@Rの値が0ならば0、それ以外は1になる。
(@Rは負の値をとらない為)
20NAME OVER:2012/03/03(土) 03:24:30.24 ID:???
 
21NAME OVER:2012/03/03(土) 03:35:03.29 ID:???
論理式
『()』カッコでくくった中の比較演算子が正しい場合-1、正しくない場合0になります。

使用例:
10 X=(@Y>=3)
@Yが3以上のとき、Xは-1。
@Yが3未満のとき、Xは0になります。

比較演算子やAND、OR、NOTといった論理演算子については、検索すれば
色々な解説が見つかると思うのでひとまずは簡単に説明を終えます。

使用例:
10 X=3
20 X=((X+2)AND 3)
Xの値は1になる。(2進数で5は1001、3は0011、論理積は0001になる)
22NAME OVER:2012/03/03(土) 03:38:31.62 ID:???
変数で扱える数値の限界は、最小値は -32768、最大値は 32767です。(short型)
23NAME OVER:2012/03/03(土) 03:38:51.14 ID:???
49 :NAME OVER:2007/02/13(火) 20:59:38 ID:???
図解 @X@Yの値(自は上を向いている)
 圏内の時 相対的な敵座標

  囗囗囗囗囗壁
  囗敵囗囗囗壁
  囗囗囗囗囗壁
  囗囗囗囗囗壁
  囗囗囗自囗壁
  壁壁壁壁壁壁

  @X=-16 @Y=24

 圏外の時 近い側の壁までの距離(つまり絶対座標がわかる)

  壁壁壁壁壁壁      囗囗囗囗囗壁
  壁囗囗囗囗囗      囗囗囗囗囗壁
  壁囗囗囗囗囗      囗囗囗囗囗壁
  壁囗囗囗囗囗      囗囗自囗囗壁
  壁囗囗自囗囗      囗囗囗囗囗壁
  壁囗囗囗囗囗      壁壁壁壁壁壁

  @X=-24 @Y=32     @X=24 @Y=-16

 敵の向きと@Dの関係
  囗囗囗囗囗囗囗囗囗
  囗_0囗16囗32囗48囗
  囗↑囗←囗↓囗→囗
  囗囗囗囗囗囗囗囗囗
  囗囗囗囗自囗囗囗囗
24NAME OVER:2012/03/03(土) 03:45:06.11 ID:???
 
25NAME OVER:2012/03/03(土) 03:53:12.45 ID:???
サンプルプログラム
10 SEARCH 64
20 Q=-(@R=0):R=-(Q=0)
30 S1=ABS(@X):S2=ABS(@Y)
40 S3=SGN(@X):S4=SGN(@Y)
50 B=(S1=0)*(S4>0)*R
60 BEAM B
70 X=-(S2>S1)*@X-(S2<=S1)*(S2-1)*S3
80 Y=S2
90 M=100*((S2-S1)>-8)*(S4>0)*R
100 MISSILE X,Y,M
110 T=-S3*(S1>@Y)*R+S3*(S4>0)*Q
120 TURN T
130 V=-(@Y>16)*R-(T=0)*Q
140 MOVE V
150 GOTO 10
26NAME OVER:2012/03/03(土) 09:45:41.83 ID:???
サンプルプログラム解説 その1

10 SEARCH 64
最大範囲でサーチします。 敵か壁のどちらかは発見できます。

20 Q=-(@R=0):R=-(Q=0)
敵が見つかった場合と、見つからなかった場合で行動を変化させる為に使います。
@R=0のときはサーチ範囲に敵はいなかったので、探してうろつくことにします。

30 S1=ABS(@X):S2=ABS(@Y)
40 S3=SGN(@X):S4=SGN(@Y)
サーチ結果で得たX座標とY座標の絶対値と符号を用意します。

50 B=(S1=0)*(S4>0)*R
60 BEAM B
ビーム攻撃をします。 
(S1=0) ←サーチ対象がが真正面か真後ろの時には-1
(S4>0) ←サーチ対象が前方だった場合には-1
R ←サーチ範囲に敵がいた場合1、いないときは0になります。

全てを満たした場合、前方にビーム攻撃を行います。
つまり、サーチの結果、真正面に敵タンクを発見したらビームを発射します。
どれか一つでも満たさない場合は0になり何もしません。
(この場合、使用エネルギーはたったの1なので、威力の期待はできません)
27NAME OVER:2012/03/03(土) 09:51:15.63 ID:???
サンプルプログラム解説 その2

70 X=-(S2>S1)*@X-(S2<=S1)*(S2-1)*S3
80 Y=S2
90 M=100*((S2-S1)>-8)*(S4>0)*R
100 MISSILE X,Y,M
ミサイル攻撃します。
-(S2>S1)*@X Y座標の方が大きい場合、45度に納まるのでX座標はそのままです
-(S2<=S1)*(S2-1)*S3 前方45度に収まらないとき、X座標の指定をY座標-1にします。
Y座標は正の値で指定しておきます。
サーチした対象が前方にあり、前方45度よりもやや広い程度の
範囲内で敵タンクを確認していれば攻撃します。

110 T=-S3*(S1>@Y)*R+S3*(S4>0)*Q
120 TURN T
確認したY座標よりもX座標の絶対値が大きいとき敵方向に旋回します。
敵を見つけていなくて前方に壁があるとき、側面の壁のない方を向きます。

130 V=-(@Y>16)*R-(T=0)*Q
140 MOVE V
敵がいて確認したY座標が16よりも大きい場合、前進します。
敵がいなかった場合、旋回しなかった時に前進します。

150 GOTO 10
10行目まで戻って繰り返し処理を行います。

このように論理式の組み合わせで、自分が行動させたい時には必要な数値、
行動させたくない条件で0になるように掛け算や足し算で組み合わせていきます。
28NAME OVER:2012/03/04(日) 00:43:50.14 ID:???
自分のタンクを作る方針をどう決めればいいのか?
勝つためにどうするか、勝利条件について考えてみる。

エネルギーが切れたら負け
  @無駄なエネルギーは使わない
    シールド強度を下げ、燃費を良くする。
    無駄撃ちで消耗しない。
    敵との距離に合わせサーチ範囲を限定し、消費を抑える。
  A相手にエネルギーを使わせる
   ミサイルを命中させ、エネルギー消費を増大させる。

ダメージが100になったら負け
  @敵の攻撃を喰らわない工夫
    一箇所に長く留まらない
    攻撃範囲から逃げる
  A先に倒す
    命中させる工夫
    必中の条件なら一気にトドメをさす。
  B壁にぶつからない
    移動制御の工夫

プログラムが終了したり、エラーになったら負け
   ⇒エラー原因になる部分は修正する

これが全てではないかもしれませんが、自分はこんな風に考えてます。
29NAME OVER:2012/03/04(日) 00:48:49.71 ID:???
敵タンクの旋回終了までのクロックと旋回後の方向確認
※Tecno-Softが用意してくれたサブルーチンの2番煎じ。
※SEARCHコマンド直後に使ってください。
※A,B,C,D0-D2 レジスタを使用します。
※d2に旋回終了までのクロック、Cに旋回終了後の向きが入ります
※動作保障はしません。使う時は自己責任でお願いします(^^;

100 D0=@D ;敵の向き
110 A=(@D/16*16) ;0〜15=0、16〜31=16、32〜47=32、48〜63=48
120 A=-(A<>D0)*64 ;敵が旋回中(旋回中のハンパな角度)だったら索敵範囲指定
130 SEARCH A ;再サーチ(旋回してないなら再サーチしない)
140 D1=@D ;再サーチ後の敵の向き
150 A=(@D/16*16)
160 A=(A<>D1) ;旋回終了しているかどうか
160 B=(D0-D1)*A ;旋回方向計算
170 A=D1-(15*(B>0)) ;旋回方向に合わせて補正。
;半時計回りなら+15。
;余りを切捨てるので時計回りはそのままでOK。
180 C=-(A/16*16)*(A<64) ;旋回終了後の方向。補正後64を超えたら0に。
190 D2=(C*B)-(D1*B) ;旋回終了までのクロック数計算(回転終了なら0)
30NAME OVER:2012/03/04(日) 03:30:43.95 ID:???
とりあえず説明については以上です。
長々と失礼いたしました。

解らないことなどあれば、気軽に質問してください。
わかる範囲でお答えします。

コムサイト関連の雑談も歓迎です。
31NAME OVER:2012/03/04(日) 08:51:10.33 ID:???
12 :NAME OVER:2006/12/09(土) 22:54:22 ID:???
88スレから情報引継ぎ

当時テクノソフトがBBSを開いていて専用通信ソフトがあった
対戦コンテストが開かれた
1 MOVE 15:TURN 1:GOTO 1 の逃げるだけマシンは結構勝つ
1定の値の奇数ビームは破壊力大の裏技があった
32NAME OVER:2012/03/04(日) 09:04:57.03 ID:???
>>31の1行タンクは15マス進み、右に旋回するだけですが、
案外厄介な相手です。
 
サーチすら行わないため、敵を探して攻撃するタイプのタンクは
エネルギー消費の差で負けてしまう可能性があるのです。
 
最初から用意されているタンクに対する勝率もなかなか良く、
敵からの攻撃があるまで動かないGargoileに対して相性が悪いくらいです。
(正面を塞がれてそのまま撃破されるパターンも相手がMinkyのときに確認)
 
余談ですが、自分のタンクは最速で逃げ回るタンクの対抗策として
偏差射撃を行って命中数を稼いでいるので勝てます。
実はその分だけ普通のタンクに対しては無駄な攻撃行動を取っているので、
敵のタイプを判断して無駄撃ちを減らせないか模索中だったりします。
33NAME OVER:2012/03/04(日) 09:19:46.95 ID:???
このエネルギー負けという条件が、コムサイトを面白くしていると思います。
(個人的にはエラー発生で自爆というところも大好きです)


今まで解説してきた論理式を組み合わせるプログラムは、
極限の1クロックが致命的になる状況を避け、相手よりも
手数を出すことで有利なることを目的としたテクニックです。
ですが、必須ではありません。
遠距離ではその分だけ余計にエネルギーを
消費してしまいがちという欠点もあります。

ただでさえ敷居の高いゲームですので、IF文で1クロック消費しても
それが致命的な遅れに繋がらなければ良いと思います。

具体的には敵との距離が近く攻撃を受ける可能性がある状況を
優先して処理し、次の行動になるよう不要な処理を飛ばしたり、
旋回で長く留まった後はすぐにその場を離れるよう移動もセットで
組み込むなどすると良いかもしれません。
(IF文などで判断するタイミングを旋回後に入れないようにする)
34NAME OVER:2012/03/04(日) 10:29:48.42 ID:???
>>2
お疲れ様ですw
Apple2の元祖ゲームはMuse SoftwareのRobot Warだと思います

因みにMuse Software社は恐らく現在全盛ののfps系ゲームの元祖である
キャッスルウルフェンシュタインを開発した会社でもあります
35NAME OVER:2012/03/04(日) 10:35:59.81 ID:???
>>34
なるほど、そうでしたか。
ありがとうございます(^^
36NAME OVER:2012/03/04(日) 11:36:25.14 ID:???
Robot Warのwikiありました。(英語)
ttp://en.wikipedia.org/wiki/RobotWar
37NAME OVER:2012/03/04(日) 14:22:30.71 ID:???
CoreWarsもテクニカルで面白いですよね
まるでウイルスを作っているようで
38NAME OVER:2012/03/04(日) 15:27:41.97 ID:???
横から失礼
>>25のサンプルプログラムを算術演算から論理演算に置き換えてみた

10 SEARCH 64
20 Q=@R=0:R=NOT Q
30 S1=ABS(@X):S2=ABS(@Y)
40 S3=SGN(@X):S4=SGN(@Y)
50 B=1 AND R AND S1=0 AND S4>0
60 BEAM B
70 X=@X AND S2>S1 OR S3*(S2-1)AND S2<=S1
80 Y=S2
90 M=100 AND R AND S2+8>S1 AND S4>0
100 MISSILE X,Y,M
110 T=S3 AND S1>@Y AND R OR -S3 AND S4>0 AND Q
120 TURN T
130 V=1 AND(@Y>16 AND R OR T=0 AND Q)
140 MOVE V
150 GOTO 10

人によってはこのほうが理解しやすいかもしれない
ちなみに元のソースより9バイト余分に消費します

ポイントは、
数式 AND 論理式 AND 論理式 AND …
という形で、論理式が真なら数式の値、偽なら0になります

メモリ残量が気になるほどになってくれば、
元のソースのように算術式を利用することになるでしょう
39NAME OVER:2012/03/04(日) 16:39:36.50 ID:???
>>38
これは盲点でした。
確かにその方が理解しやすそうですね。

自分も最初はANDやORを使って記述していたものが、
いつしか算術演算子で記述する方が楽で
それがすっかり定着してしまっていたようです。
40NAME OVER:2012/03/05(月) 12:18:55.48 ID:???
あの当時の小さいメモリでデバッグモードもあったんだよね。
しかも戦闘時はマルチスレッド(2ソース)の実行で3D表示。なかなか凄い。
41NAME OVER:2012/03/05(月) 18:34:51.42 ID:???
前スレから引き出し。
レーザーは1クロックで全部、ミサイルはタンク速x2、一升移動は8、回転は16クロックだったと思う。

相手当たり判定は中心から+3まで
ビームは1クロック消費で即相手に当たる 距離は関係ない
1クロックエネルギー消費量=DL(デェフェンスレベル)+2
シールドは1クロック1回復
1クロックシールド回復エネルギー消費量=DL*3+37
壁や敵にぶつかったときのシールドダメージ=(16-DL)*2+34

CIRC 円状均等
MASH 前後楕円状
SIEVA 前方扇状
AGLEX 前後左右突出
VOA 斜め四方突出
HOGS 前後突出
ZAR 左右突出
WEITZ 後方扇状

20年の謎は解き放たれた
ファイル
PandoraBox
Secrecy
SubRoutine
PASSWORD:""

1 PandoraBox "" なし
Good ____
2 Secrecy "luck"
Next hint パンドラ ノ ハコ ニ サイゴ ニ ノコサレタ モノ
3 SubRoutine "hope"
42NAME OVER:2012/03/05(月) 18:49:01.35 ID:???
ttp://ja.wikipedia.org/wiki/COMSIGHT
X68000と書いてあるのは間違いかと。

ttp://www.suruga-ya.jp/pics/boxart_m/126000766m.jpg
駿河屋でのパケ。
43NAME OVER:2012/03/05(月) 19:43:28.02 ID:???
サンプルプログラム(IF文使用型)

10 SEARCH 64
20 IF @R=0 THEN GOSUB 90
30 IF @Y>=ABS(@X) THEN GOTO 50
40 TURN @X:GOTO 10
50 IF @Y>0 THEN MISSILE @X,@Y,100 ELSE TURN @X:GOTO 100
60 IF @X=0 THEN BEAM 573:GOTO 100
70 IF @Y>=16 THEN FORWARD
80 GOTO 10
90 '
100 IF @Y>0 TURN -@X ELSE MOVE 1
110 SEARCH 64
120 IF @R=0 THEN goto 100
130 RETURN
44NAME OVER:2012/03/05(月) 19:54:11.88 ID:???
サンプルプログラム(IF文使用型)解説

10行目 サーチ
20行目 敵タンクがいなければ、90行からの索敵ルーチンを実行
30行目 X座標よりもY座標の方が大きければ50行目へ
40行目 攻撃できないので敵方向へ旋回して10行目へ戻る
50行目 ミサイル攻撃
60行目 ビーム攻撃
70行目 敵が遠ければ接近
80行目 ループ先頭に戻る
90行目
100行目 前方に壁確認⇒壁のない側へ旋回、壁が無ければ前進
110行目 サーチ
120行目 敵がいなければ100行目から繰り返す
130行目 敵がいたので処理を終えて戻る

ちなみにすっきりしている割に無駄な部分は残っていますし、
COMのタンクに勝つためには工夫が必要です。
あくまで最低限の動作をさせるための参考として。
45NAME OVER:2012/03/06(火) 19:11:29.24 ID:???
★状況判断の基準を考えやすくするコツ
方眼紙に自タンクの△を書いて、前後左右1ブロック分の幅で線を引く。
自タンクを中心に斜め45度のラインを引く。
前方2〜4ブロックの辺り、この辺りまでバリバリ攻撃したいと思うところで横に線を引く。
 
線で区切った場所に敵がどういう向きでいたら
どんな風に自分のタンクが動いて欲しいかを考える。
 
そうすると、どういった条件の時にどんな風に動く命令を書けばいいか
どんな命令が欠けているのかが解りやすい。
46NAME OVER:2012/03/06(火) 19:39:06.39 ID:???
1クロックエネルギー消費量=(DL*2)+4 っぽい
DL 01で消費6、DLが1上がるごとに2上昇していき、DL 16で消費36。
47NAME OVER:2012/03/06(火) 19:50:16.04 ID:???
失礼。 PRINTのクロック計算に入れてなかった。
DL+2で正しかったわ。
48NAME OVER:2012/03/07(水) 19:01:37.99 ID:???
昔遊んでいた頃、対戦相手が欲しくなって、
「自分のタンクに勝ったら5千円!」と賞金を出したことがあった。
 
それでも対戦者は現れなかった。
そんなゲーム。
49NAME OVER:2012/03/07(水) 19:04:00.21 ID:???
『COMSIGHT大会の上位10名のタンクデータ』ってヤツを
昔のゲーム誌(LogInだったかな)で広告を見た覚えがあるんだけど、
あれって本当に販売されたの?
 
知ってる人いたら教えて欲しいです。
50NAME OVER:2012/03/07(水) 19:18:35.52 ID:???
販売されたかどうかは知らないけどモノは存在するよ
少なくとも上位10位に入った人には送られたはず
51NAME OVER:2012/03/07(水) 21:02:38.53 ID:???
>>50
うーん、大会参加できなかったのが悔やまれるなぁ。
どんなタンクだったのか気になる。
というか、対戦させてみたかったな。
52NAME OVER:2012/03/09(金) 17:57:51.31 ID:???
敵の行動パターンを分析、それに対応して戦い方を変えるタンクとか作ってみたい。
面倒なので投げたけど。
53NAME OVER:2012/03/09(金) 19:10:53.36 ID:???
どれかに特化するよりも汎用的なのがいいようなきがす
54NAME OVER:2012/03/09(金) 19:57:06.50 ID:???
シールドが変な形しているタンクを生かす方法とか考えてみたい。

昔考えたのは、後ろを敵に向けてBackで突撃するタンクとか。
敵の脇をすり抜けるのが狙いだけど、真後ろに入られると致命的なので、
その対策が思いつかなくて結局ボツになっちゃった。
55NAME OVER:2012/03/11(日) 22:23:31.59 ID:???
改めて対戦させてみると、TecnoSoftが用意した
8種のタンクは個性的で良いな。
56NAME OVER:2012/03/17(土) 10:11:38.33 ID:???
数ヵ月後だか数年後だか解らないけど、
もっと多くの同好の士がこのスレを見つけてくれるといいなぁ
57NAME OVER:2012/03/17(土) 10:15:23.27 ID:???
??
58NAME OVER:2012/03/17(土) 10:46:26.32 ID:???
昔コムサイトを遊んでいて好きだった人はまだいると思うけど、
そういう人が20年以上経った今でもアンテナ張ってはいないと思うんだよね。
とあるブログの記事に対して、3年後にレス付いたりしているし。
59NAME OVER:2012/03/23(金) 20:31:08.53 ID:???
週末は割と暇なので、質問などあればご遠慮なく〜。
「○○みたいなときは処理させたいんだけど良い方法ない?」とか。
対戦申し込みも歓迎。
60NAME OVER:2012/03/29(木) 20:10:27.60 ID:???
PC-8801ゲーあれこれスレでアップしたタンクを改良したよ。

Skydart-2
・危険地帯に踏み込まない
・無駄なサーチをカット
・回避を大きく
他色々修正

http://www1.axfc.net/uploader/Sc/so/332626
DLキーワード: comsight

以前アップされたTYPE-0, Skydartと一緒にいれておいた。
61NAME OVER:2012/03/29(木) 23:45:55.17 ID:???
平日ちょっと時間を取れないので、週末対戦させてみます(^^
楽しみです。
62NAME OVER:2012/03/30(金) 21:52:31.60 ID:???
>>60
前と比べてかなり完成度上がってるねー。
対応するのに苦労しそうだわ。
63NAME OVER:2012/04/01(日) 11:02:13.80 ID:???
大会ベスト10のディスクを発掘してきたけどどうしようか
これ自体はプログラムじゃないしプロテクトもかかっていないから
アップしてもいい気がするけど売り物だったのならまずい気もする
64NAME OVER:2012/04/01(日) 14:48:49.54 ID:???
正直言って喉から手が出るほど欲しいけれど、
そのあたりの判断はお任せします。
 
良かったら>>60のタンクと戦わせてみてどういう結果なのか、
試して結果報告してもらえたら嬉しいです。
65NAME OVER:2012/04/01(日) 17:53:08.63 ID:???
とりあえず戦績出してみてから考えるか

まずはTYPE-0 vs 大会タンク
戦績はTYPE-0から見てのもの

大会同様10戦で、表記は「勝ち数」ハイフン「負け数」
下記の01〜10は大会順位、その右はタンクの名前
Y1,Y2は運営側が用意した予選用タンク

01 RYU-4.1    5-5
02 GUYVER-3  6-4
03  HALBERD  10-0
04 TZJSD3G 2  9-1
05 RYU-4.2    8-2
06  D.A.R.K    7-3
07 T.BUSTER   9-1
08 GREAT BOW 7-3
09 Gabu HA    9-1
10 Gabu RO   10-0
Y1 Dragon2    8-2
Y2 Excel-2197  9-1

ちなみにM88の全力駆動で動かしたので試合内容は見てない
ただ時々TYPE-0が自爆することがあった気がする
66NAME OVER:2012/04/01(日) 19:07:44.30 ID:???
>>65
おぉ、ありがたい。
結構良い感じで戦えていることが解っただけでも満足。(^^
 
ご指摘の通り、うpした時点でTYPE-0はバグが残っていました。
プログラムを整理して、別タンクを一から組み直しているところです。
67NAME OVER:2012/04/01(日) 20:39:15.88 ID:???
続いてSkydart vs 大会タンク

01 RYU-4.1    10-0
02 GUYVER-3   9-1
03  HALBERD   9-1
04 TZJSD3G 2   9-1
05 RYU-4.2     8-2
06  D.A.R.K    10-0
07 T.BUSTER   8-2
08 GREAT BOW  9-1
09 Gabu HA    10-0
10 Gabu RO    10-0
Y1 Dragon2    10-0
Y2 Excel-2197  10-0
68NAME OVER:2012/04/01(日) 22:46:01.50 ID:???
最後Skydart-2 vs 大会タンク

01 RYU-4.1    10-0
02 GUYVER-3  10-0
03  HALBERD   9-1
04 TZJSD3G 2   7-3
05 RYU-4.2    10-0
06  D.A.R.K     9-1
07 T.BUSTER    7-3
08 GREAT BOW 10-0
09 Gabu HA    10-0
10 Gabu RO    10-0
Y1 Dragon2    10-0
Y2 Excel-2197   8-2

修正前より負けが増えたみたい
69NAME OVER:2012/04/01(日) 22:47:49.87 ID:???
それソースは観覧できるの?
70NAME OVER:2012/04/01(日) 23:14:52.67 ID:???
結果見てさすがに賞味期限きれてるだろって思ったのでうp
ただし1ヶ月間限定

http://www1.axfc.net/uploader/Sc/so/333737
DLキーワード: comsight
zipパス: ゲーム名(英大文字)+大会開催年西暦4桁

ソース見られるタンクもあるよ
71NAME OVER:2012/04/01(日) 23:57:11.56 ID:???
そうか、発売の翌年4月だったっけ?、コンテスト。
高いFD送るのもったいないとか、そも強いタンク作れなくて、そのまま。
あと、通信用のBBSもあったらしいが、モデムなんて持って無かったよ。
72NAME OVER:2012/04/02(月) 00:26:14.70 ID:???
あの頃はフロッピー1枚も高かったもんな
73NAME OVER:2012/04/05(木) 22:17:07.73 ID:???
ビームについての検証

まず注意として、エネルギーの値が偶数の場合、威力が著しく減少する。多分バグだろう。
32の倍数のときが最も弱くなり、次いで16の倍数、8の倍数、4の倍数、2の倍数の順で
少しずつ威力が上がるが、奇数の場合とは比較にならないほど弱い。
よって、以降はエネルギーの値が奇数であることを前提とする。
74NAME OVER:2012/04/05(木) 22:17:41.76 ID:???
1. シールドを削る場合

まずはじめに、ビームのエネルギーに関係なく、ビームがあたっただけで、
無条件で一定量のシールドが失われる。計算式は、

(16-ディフェンスレベル)*2+α

となっている。αはタンクタイプと被弾方向によって変わる。
SIEVAの正面は5、側面は26、背面は50だった。

さらに、ビームのエネルギーが32増えるごとにシールドを削る量が1増える。
これはディフェンスレベルには影響されない。
例えば、ディフェンスレベル16のSIEVAを正面から攻撃する時、
シールド100を吹き飛ばすのに必要なエネルギーは、

95*32+1=3041 (+1は奇数にするための補正)

となる。5は無条件で削れるので残り95を削るだけのエネルギーで良い。
75NAME OVER:2012/04/05(木) 22:18:16.01 ID:???
2. シールドを破ってダメージを与える場合

ビームのエネルギーが160増えるごとにダメージが1増える。
これもディフェンスレベルには影響されない。
シールド0の状態からダメージ100を与えるのに必要なエネルギーは

(100-@ED)*160+1 (+1は奇数にするための補正)

となる。よって、全く被弾していないディフェンスレベル16のSIEVAを
正面から一撃で撃破するのに必要なエネルギーは、

95*32+100*160+1=19041 (+1は奇数にするための補正)

となり、以前指摘された値と一致する。
76NAME OVER:2012/04/05(木) 22:40:27.69 ID:???
以上、暇だったので検証してみた。
昔、ダメージの入り方は調べたんだけどシールドの削れ方がよくわからなかった。
改めて調べてみてすっきりした。
77NAME OVER:2012/04/06(金) 07:14:04.44 ID:???
なるほど、そんな風になっていたんですね。
自分はMISSILE偏重で、BEAMは詳しく検証していませんでした。
 
新しいタンクを組む為に色々試行錯誤しているんですが、
工夫する余地はあっても容量が厳しくなってきて、プログラムを整理中だったり。
78NAME OVER:2012/04/06(金) 07:15:31.78 ID:???
こちらは距離の値がどんな感じなのか検証していました。

●距離表(@R)
64 64 66 68 72 75 80 85 91
56 57 58 61 64 69 74 79
48 49 51 54 58 62 68
40 41 43 47 51 57
32 33 36 40 45
24 25 29 34
16 18 23
08 11
79NAME OVER:2012/04/06(金) 07:31:58.55 ID:???
距離はピタゴラスの定理でおk
@R ≒ SQR(@X*@X+@Y*@Y)
小数点以下の端数は切り捨てか四捨五入かは未確認
80NAME OVER:2012/04/06(金) 07:49:52.40 ID:???
後でミサイルと壁衝突も再検証してみようかなと思ってる。
シールドの削れ方の法則がわかったので、
相手のタンクタイプとディフェンスレベルを推定できないかなーとか妄想してる。
できてもメリット少なそうだけどね。
81NAME OVER:2012/04/06(金) 17:55:09.51 ID:???
ミサイルはシールドを削りきるまで800、
耐久力1削る為に80必要で、100ダメージの為に8000エネルギー必要。
合計8800エネルギーでシールド16のSIEVAを倒せたと思う。
82NAME OVER:2012/04/06(金) 18:02:59.19 ID:???
>>79
SQR使えたのか……orz
今は手元にマニュアルがないから色々見落としてるなぁ。
実家にある筈なんだけど、どこにやったか解らんのよね。
83NAME OVER:2012/04/06(金) 18:04:46.57 ID:???
でもまぁ、戦術練る上では距離表も無駄にならんと思うのよね。
84NAME OVER:2012/04/06(金) 18:07:33.83 ID:???
取り急ぎ改良してみたタンクは上位陣に勝てるんだけど、
T.BUSTERと自分の古いタンクには負けるようになった。(TT
85NAME OVER:2012/04/06(金) 20:57:18.07 ID:???
自分用に作ったもののおすそ分け
他人が作ったタンクのソースを眺めるのにどうぞ
(自分は開発にも使うけど)

Peggy/PeggyPad用 COMSIGHT BPL キーワード色分け定義ファイル
http://www1.axfc.net/uploader/Sc/so/334973.zip

Peggyを知らない人のために説明すると、
Windows用のプログラミング用途のエディタで、
Peggyは有料だがPeggyPadは無料

ダウンロードは↓から
http://www.anchorsystems.jp/anchor/ashp/peggy/pegindex.html
86NAME OVER:2012/04/06(金) 21:03:50.77 ID:???
使い方

(1) ac_comsight.kwd を C:\Program Files\Anchor\share フォルダに放り込む
  (インストール場所を変えた場合は適宜読み替えて)
(2) BPLソースのテキストファイルを用意して、拡張子を comsight にする
(3) Peggy/PeggyPad で (2) のファイルを開く
87NAME OVER:2012/04/06(金) 21:11:47.56 ID:???
このままだとまだ区別がつきにくいと思うので、色の設定を変更する

メニューの「ツール」→「オプション」から「表示色」タブを選択して
次のように設定しよう

数値定数…青色
識別子/変数/関数/ラベル…茶色
CPUインストラクション…赤色、太字にする(色の中のチェックボックスをオンにする)
CPUレジスタ…色はそのままで太字にする
組み込み関数…色はそのままで太字にする

気に入らなかったら自分の好みで変更してくれ
88NAME OVER:2012/04/06(金) 21:15:09.78 ID:???
>>84
あるある
天敵ができないようにするのが結構大変なんだよね
89NAME OVER:2012/04/06(金) 21:32:40.87 ID:???
88エミュからBPLソースを取り出す方法
(かなりローテクだが、たぶんこれしかない)

(1) X88000 で COMSIGHT を起動する
(2) X88000メニューの「システム」→「パラレルポート」で「PC-PR201」を選択する
(3) X88000メニューの「システム」→「パラレルポート」→「デバイスの設定」で、用紙サイズを「15インチ連続紙」にする
(4) CREATE でタンク作成モードに入る
(5) LLIST を実行する
(6) X88000メニューの「システム」→「パラレルポート」→「デバイスの設定」でページ番号を選択した後、「コピー」ボタンを押す
(7) 「テキスト抽出」を選択して「OK」を押す
(8) メモ帳なりエディタなりを開いて、貼り付けする
(9) ページ数分 (6)〜(8) を繰り返す
(10) 用紙幅を超える行は改行されてしまうので、目視で修正する
90NAME OVER:2012/04/06(金) 22:17:37.50 ID:???
注意点を書き忘れた。

2回目以降のLLISTを実行する前には、「システム」→「パラレルポート」→「デバイスの設定」で
「用紙削除」ボタンを押して、全ページを削除しておくこと。
さもないと、以前のページの後に追加されてしまう。

あと、残念ながらX88000ではタンクの開発はできない。
プログラムの入力だけならできるが、実行するとエラーになって自爆してしまう。
91NAME OVER:2012/04/06(金) 22:27:27.44 ID:???
>>81
一撃で倒そうとするとその通りなんだけど、
エネルギー1のミサイルを連続で当ててもダメージが入る仕組みが
よくわからなくてね
92NAME OVER:2012/04/06(金) 22:33:38.71 ID:???
>>91
うん、確かに。
93NAME OVER:2012/04/07(土) 00:40:34.21 ID:???
デバッグ画面で検証してとりあえずわかったこと

・ミサイルのダメージはDLにのみ影響される。タンクのタイプと被弾方向は全く関係ない
・壁に衝突した時のシールド減少量は、VOA, ZAR, WEITZが最も少なく、SIEVA, AGLEX, HOGSが最も多い
・壁に衝突した時のシールド減少量は、全タイプで前面と背面で差がない
・敵に衝突した時のシールド減少量は、SIEVA, WEITZ以外は壁の時と同じ。SIEVAとWEITZのみ背面のときが違う
・壁や敵に衝突した時のシールド減少量は、DLが1増えるごとに2減る

横からぶつけられるケースもあるけどデバッグ画面ではできないので検証してない

この結果は想像していたのと違ってかなりショックだった
実際の戦闘でも本当にこの通りなのか、また今度試してみる
94NAME OVER:2012/04/07(土) 13:14:01.62 ID:???
>>89
へー取り出せるのか。
あとクリップボードペースト機能があれば入力もできるな。
>>91
1発目でシールド剥がれてる時に2発目あたるからでは?

>横からぶつけられるケースもあるけどデバッグ画面ではできないので検証してない
敵に横からぶつけて敵のダメージ見ればいいんでは?
95NAME OVER:2012/04/07(土) 13:15:19.16 ID:???
大会ベスト10タンク思ったほど強くないみたいだな。
96NAME OVER:2012/04/07(土) 15:19:38.49 ID:???
>>94
>敵に横からぶつけて敵のダメージ見ればいいんでは?
その手があったか。やってみたんで前後とあわせて結果を貼っとく。

敵に衝突した時のシールド減少(DL=16の場合)

タイプ  前  後  横
----------------
CIRC___ 18 18 18
MASH_ 22 22 14
SIEVA_ 34 04 18
AGLEX 34 34 34
VOA___ 04 04 04
HOGS_ 34 34 04
ZAR____ 04 04 34
WEITZ_ 04 34 18
97NAME OVER:2012/04/07(土) 15:22:08.93 ID:???
壁に衝突した時のシールド減少(DL=16の場合)

タイプ  前  後
-------------
CIRC___ 18 18
MASH_ 22 22
SIEVA_ 34 34
AGLEX 34 34
VOA___ 04 04
HOGS_ 34 34
ZAR____ 04 04
WEITZ_ 04 04
98NAME OVER:2012/04/07(土) 23:26:36.17 ID:???
ミサイルの検証が終わったので報告

(1) シールド減少量の計算方法

基本シールド減少量=80-(ディフェンスレベル-1)×2
シールド減少ボーナス=ミサイルのエネルギー÷16(端数切捨て)
最終シールド減少量=基本シールド減少量+シールド減少ボーナス

例1)ディフェンスレベル6のタンクにエネルギー160のミサイルが命中した場合

基本シールド減少量=80-(6-1)*2=70
シールド減少ボーナス=160/16=10
最終シールド減少量=70+10=80

例2)ディフェンスレベル1のタンクにエネルギー1のミサイルが命中した場合
(よくあるパターン)

基本シールド減少量=80-(1-1)*2=80
シールド減少ボーナス=1/16=0.0625 切り捨てて0
最終シールド減少量=80+0=80
99NAME OVER:2012/04/07(土) 23:27:58.54 ID:???
(2) ダメージの計算方法

シールド補正値=シールド残量+(ディフェンスレベル-1)×2
ダメージ吸収量=シールド補正値÷5(端数切り上げ)
基本ダメージ=16-ダメージ吸収量(下限は0)
シールド突破エネルギー=(シールド残量-基本シールド減少量)×16(下限は0)
ダメージボーナス=(ミサイルのエネルギー-シールド突破エネルギー)÷80(端数切捨て、下限は0)
最終ダメージ=基本ダメージ+ダメージボーナス

例1)ディフェンスレベル16、シールド残量60のタンクにエネルギー1000のミサイルが命中した場合

シールド補正値=60+(16-1)*2=90
ダメージ吸収量=90/5=18
基本ダメージ=16-18=-2 下限が0なので0
基本シールド減少量=80-(16-1)*2=50
シールド突破エネルギー=(60-50)*16=160
ダメージボーナス=(1000-160)/80=10.5 切り捨てて10
最終ダメージ=0+10=10

例2)ディフェンスレベル1、シールド残量23のタンクにエネルギー1のミサイルが命中した場合
(よくあるパターン)

シールド補正値=23+(1-1)*2=23
ダメージ吸収量=23/5=4.6 切り上げて5
基本ダメージ=16-5=11
基本シールド減少量=80-(1-1)*2=80
シールド突破エネルギー=(23-80)*16 下限が0なので0
ダメージボーナス=(1-0)/80=0.0125 切り捨てて0
最終ダメージ=11+0=11
100NAME OVER:2012/04/08(日) 11:21:49.35 ID:???
ttp://homepage3.nifty.com/takeda-toshiya/pc9801/index.html
こっちのMAエミュはテキストペーストが使える模様。
コムスンが動くかどうかは試してないけど。
101NAME OVER:2012/04/08(日) 13:13:59.51 ID:???
>>100のエミュでCOMSIGHTが動くことを確認
情報thx
ペーストは完動を確認したが、残念ながらかなり遅い
毎秒2文字くらいなので3000バイトだったら1500秒=25分かかる計算
102NAME OVER:2012/04/08(日) 13:25:21.41 ID:???
それだけ遅いと流石に厳しいね
103NAME OVER:2012/04/09(月) 07:49:28.16 ID:???
アルゴリズムを変えて気付く、他の参加者の強さ。
今まで喰らってなかっただけでヤバイ決め技持ってたりするな。
104NAME OVER:2012/04/10(火) 00:56:26.11 ID:???
DL16のタンクにエネルギー1のビームが命中したときシールド減少量

タイプ  前 斜前 横 斜後 後
------------------------
CIRC___ 26 26 26 26 26 円状均等
MASH_ 32 26 20 26 32 前後楕円状
SIEVA_ 05 11 26 38 50 前方扇状
AGLEX 50 05 50 05 50 斜め四方突出※
VOA___ 05 50 05 50 05 前後左右突出※
HOGS_ 50 26 05 26 50 左右突出※
ZAR____ 05 26 50 26 05 前後突出※
WEITZ_ 50 38 26 11 05 後方扇状

AGLEXとVOA、HOGSとZARは画面で表示される情報と実際の性能が逆
ビーム打たれるのは真正面か側面の場合しかないだろうから、
壁や敵との衝突時の性能とあわせて考えるとVOAが最強か
105NAME OVER:2012/04/10(火) 07:30:41.35 ID:???
うーん、シールド性能は実感し辛いだけに
性能が入れ替わってるなんて思いもしなかった。
106NAME OVER:2012/04/17(火) 21:16:45.77 ID:???
攻撃関連のルーチンを見直して、今度こそ完成だ! 
……と思ったら、全然そんなことは無かったでゴザル。

残り容量も厳しくなってきたから、またスパゲティみたいな
ぐちゃぐちゃソースになっているところを整理しないとダメだ。
壁情報の保持&情報更新は案外長くなってしまうわ。
107NAME OVER:2012/04/20(金) 00:09:26.92 ID:???
こっちも壁情報を保持するようにしてみたけどそれをどう活かすかが難しい
色々詰め込んだせいでソースのスペース全部削っても残り100バイトとか厳しすぎる
108NAME OVER:2012/04/20(金) 08:19:44.46 ID:???
自分も壁判定付けてたなあ
109NAME OVER:2012/04/20(金) 18:10:50.38 ID:???
色々試行錯誤して強くなった、と思いきや勝てない相手が増えてしまった(-_-;
おかしいなぁ
110NAME OVER:2012/04/25(水) 22:03:09.24 ID:???
久々にタンクデータうp
http://ll.la/Xh60

TYPE-Xが新作。
攻撃の手数を増やして、致命的なバグもいくつか解消。
必殺技も追加。
まだ意図したのとは違う動きをすることも。

TYPE-0、Skydart、Skydart-2も一緒に入れてます。
ついでにCOMのタンクも入れておきました。
COM vs COMの対戦を眺めてみるのも一興。
111NAME OVER:2012/04/26(木) 00:53:32.80 ID:???
うp乙です
対戦はまた今度時間のあるときにやってみる
COMタンクのデータって独立したのがあったんだ、知らなかった

そしていまさらM88でプリンタ出力をファイルに吐くモジュールを発見
LLIST一発で簡単
ttp://www5f.biglobe.ne.jp/~apaslothy/tool.html
これでデバッグが捗るかも
112NAME OVER:2012/04/26(木) 03:51:06.60 ID:???
MISSILEにはバグがあって、壁の外に向かって撃ちこむと
画面上に出るミサイルの数が減っていき、最終的に撃てなくなる。
 
MISSILEは敵味方合わせて同時に8発だったかしか存在できなくて、
壁の外に撃ちこまれたMISSILEは着弾せずにそのまま
飛行中のミサイル数としてカウントされてしまっているっぽい。
 
意図的にMISSILEを封じて、エネルギー勝ちを狙うタンクとか
作られちゃうと、正直対処に困るので今まで黙ってた(^^;
113NAME OVER:2012/04/26(木) 03:55:30.46 ID:???
COMのタンクデータは、ディスク1の方に入ってます。

ユーザーディスクのタンクデータの移し変え方法と同様に、
ドライブ2にディスク1を入れて、FILEメニューのCOPYから
PAGE:1のところに合わせることで確認できます。
 
タンクデータを作成した方を含め、製作スタッフ名も確認できます。
114NAME OVER:2012/04/26(木) 12:29:22.31 ID:???
おお、スタッフが見れるのか。メインは知らないメンツだけど。
タンク作った内のFさんはサンダーフォースMDの方の人だな。
STG&あることで話題になったあの人やアルシスのあの人は関与してないみたい。
115NAME OVER:2012/04/26(木) 17:42:32.03 ID:???
メインプログラマーのn.araiさんはコンポーザーでもあり、
後のテクノソフト作品ではサウンドドライバーを担当したりしてる。
サンダーフォースシリーズにも関わっているね。
あと、ヘルツォークの名付け親だそうです。
116NAME OVER:2012/04/28(土) 15:04:47.74 ID:???
対戦してみたよ
TYPE-X強いねぇ
ミサイル喰らいまくる、こっちのミサイルは当たらない
さてどうしたものか
117NAME OVER:2012/04/28(土) 19:11:05.12 ID:???
>>116
ありがとう。
楽しんでくれると嬉しい。
118NAME OVER:2012/04/29(日) 19:28:53.00 ID:???
88以外でも98やX1turboなど出てた機種はあるようだけど全然やってたという声は出てこないね。
X68に出てればもうちょっと知られてたかもしれないけど。
119NAME OVER:2012/04/29(日) 22:20:41.28 ID:???
移植予定だったけど結局出なかったんじゃなかったかな
中古も存在しないようだし
120NAME OVER:2012/04/30(月) 13:14:53.41 ID:???
今の時期ならネット対戦も手軽にできるのにねー。
121NAME OVER:2012/05/03(木) 00:05:52.60 ID:???
そういや誰にも聞かれないけど、一応書いておくと
>>110のDL用PWは、>>60同様に『comsight』です。
122NAME OVER:2012/05/07(月) 22:56:38.70 ID:???
新作 Skydart-5
http://www1.axfc.net/uploader/Sc/so/343847

>>110のディスクに追加ですよ
TYPE-0とTYPE-Xの両方に対応するのは難しかったけど
なんとか戦えるようになったと思う

移動アルゴリズム変更
攻撃地点の見直し
攻撃タイミングの見直し
必殺攻撃の機会追加

3と4はできない子だったので欠番
DLキーワードは前と同じ
123NAME OVER:2012/05/07(月) 23:27:53.26 ID:???
>>122
ついに来てしまったかー(><
TYPE-Xは自分なりに色々詰め込んだタンクだっただけに、
攻略されてしまうと次の手に困ってしまう。
 
まだ見てないので、とにかく対戦させてみる。
当面、負けの原因を確認することからだろうなぁ。
124NAME OVER:2012/05/17(木) 00:25:02.24 ID:???
場当たり的な対策は案外簡単だったけど、
根本的な対策が難しい……。

それはそれとして、『そろそろ新たな挑戦者が現れないかなぁ』などと、
かなり起こりそうにもないことを期待してみたり。
125NAME OVER:2012/05/17(木) 00:46:16.62 ID:???
同意
でも望み薄そうだなあ
126NAME OVER:2012/05/27(日) 00:42:50.61 ID:???
仕事が今月末で一区切りつくので、来月になったら再開できそうだ。

とはいえ、合い間に改良も進めているんだが芳しくない。
ちょこっと弄っただけで7割勝てたのに、今は2割五分しか勝てなくなってる。
改悪バージョンしか残ってなくて凹む。
127NAME OVER:2012/05/27(日) 22:53:13.18 ID:???
7割勝ててたってことはやっぱり弱点を突かれたのかな
お馬鹿なところが残ってるからなぁ
なんとかしたい
128NAME OVER:2012/06/17(日) 14:26:56.85 ID:???
今月に入って体調崩してました。
またタンクの改良を再開したけど、弄ると余計勝てなくなるの繰り返し。
そちらの戦術に嵌ってしまってるわ。
129NAME OVER:2012/06/17(日) 18:21:48.40 ID:???
身体は大事
こっちは5年くらい前からずっと頭痛、首肩の凝りに悩まされてた
原因がわかって今は楽になったけどね

ところで今更な情報だけど、>>25>>38では無駄を切り詰めた時に使用容量が逆転するんだ
スペースとコロンを全部取っ払うと>>38のほうが26バイト少なくて済む
可読性が激減するけど、そこは>>85を使えば読めないことはないよ
130NAME OVER:2012/07/16(月) 02:00:56.67 ID:???
久々にやったら、どう修正するつもりだったか忘れた。
思ったとおりに動かないパターンがいくつかある。
どうにも修正できない。
根本的に考え違いをしているのかも……。

一旦今の移動部分のアルゴリズムを捨てて、
そこだけ一から構築し直してみる。
131NAME OVER:2012/08/06(月) 16:58:06.22 ID:???
懐かしいー

当時からマイナーっぽくて周りにやってる人はいませんでしたw。

大会用に作ったタンクを自信満々で送ったらなんとか9,10位に入ったものの
他の人のタンクの完成度の高さにショックを受けた覚えがあります。

大会ベスト10ディスクは厚紙で補強されて送られてきたのでパッケージ化は
されてなかったはずです。希望者に切手何百円分かで通販してたような記憶があります。

132NAME OVER:2012/08/06(月) 17:04:53.06 ID:???
大会ディスクで好敵手をやっと得て色々改良して勝率の高いものを完成させたけど
その後大会はありませんでした・・w

ミサイル壁打ちのバグも当時気づいてそれを利用したタンクも作りました。
133NAME OVER:2012/08/06(月) 17:07:27.12 ID:???
名称は覚えてないけどマシン語とBASICみたいなものの2種類でプログラミングできて
もちろんマシン語様の方が効率よく行動するけど相性というか兼ね合いでBASIC様の
方が勝利するという事がよくありました。

現在コムサイトやるにはどうすればいいんですか?
ソフトパッケージをまず入手しなければならないのかな?
134NAME OVER:2012/08/06(月) 17:11:56.23 ID:???
>>132
いらっしゃいませ
似たような道を歩んでますな
早速そのタンクをうpして対戦を(ry
135NAME OVER:2012/08/06(月) 17:26:10.83 ID:???
>>133
自分がやった方法は、

・5インチFDDを入手してPCに接続
・ゲームディスクのプロテクト解除バックアップのFDをイメージ化
・データディスクのFDをイメージ化
・M88等のPC-88エミュレータ上で実行

って感じでかなり手間がかかります
やったのはWindows 98の時なんで、今のOSでできるかどうかはわからんです
136NAME OVER:2012/08/06(月) 21:58:21.33 ID:???
早速のレスどもです。

>>134
ソフトやデータは残念ながら行方不明です。

ただ行動パターンはサーチして敵がいなかったら最寄の壁に進み
全部で8つ存在できるミサイルを壁外に発射してあとは敵の進行ラインから
1つずれたラインをいったりきたりでエナジー切れを狙うというものでした。
137NAME OVER:2012/08/06(月) 22:01:37.54 ID:???
ただミサイル全部捨てきれなかったりで残った1,2このミサイルが当たって
負けたりした覚えがあります。

>>135
かなりハードル高いっすね
久しぶりに新タンク作ってみたかったけど残念ながら無理っぽいです。
138NAME OVER:2012/08/07(火) 02:03:24.38 ID:???
昔、中古屋で見かけたとき、余分に確保しておけば良かったなぁ。
139NAME OVER:2013/01/04(金) 04:36:11.97 ID:???
興味を持ってもらえても、新規参入は期待できないのが辛いところ。
140NAME OVER:2013/02/02(土) 14:34:53.49 ID:???
保守
141NAME OVER:2013/11/05(火) 22:23:34.87 ID:+5s+sQ3k
こんなスレがあったのか
今からじゃもう無理だろうな
142NAME OVER:2013/11/09(土) 09:02:26.60 ID:???
書き込みないか、たまにチェックはしてますん。
143NAME OVER:2013/11/10(日) 09:42:25.07 ID:???
こことかで話題にあがったマリオネットハンドラーというのを中古屋で買ってきたけど
マニュアルがなかったんでやり方はわからなかった
144NAME OVER:2013/11/10(日) 23:40:30.73 ID:???
ロボットのパーツを購入したり
移動、索敵、加速、分岐、攻撃、ラベルのチップでプログラム
そして大会に挑戦
145NAME OVER:2013/11/22(金) 21:46:59.90 ID:???
http://www.atmarkit.co.jp/fdotnet/terrarium2/index/index.html
今はこういったのはないのかなあ
146NAME OVER
そういうの遊んでみたいねぇ。