Crobots

『Crobots』（シーロボッツ）は、1985年12月にTom Poindexterより初版がリリースされたプログラミングゲーム。ロボットをC言語風のプログラムでコントロールし、同時に実行されている他のロボットを探し出して破壊し、自身は生き残るのがゲームの目的である。ロボットに対しては、戦場を動き回る、索敵する、大砲を放つという指示ができる。http://corewar.co.uk/crobots/

 概要 
競技場を舞台にロボット同士が戦う。競技場の広さは1000メートル×1000メートル。同時に登場できるロボットは4台まで。ロボットは移動、索敵、砲撃を行うことができ、砲撃を受けたロボットはダメージを受ける。ダメージが100を超えると破壊されたとみなされ競技場から退場する。最後まで競技場に残ったロボットが勝者となる。

ロボットの動作は、C言語風のプログラムで記述する。言語機能としてはC言語と比べると浮動小数点数、構造体、共用体、ポインタ、一部の制御構文などがない。ロボット制御用ライブラリとしてscan(索敵)、cannon(砲撃)、drive(移動)、damane(ダメージ取得)、speed(スピード制御)、loc_x/loc_y(現在位置取得)の各関数が提供される。その他にrand、sqrt、sin、cos、tan、atanの各関数が使用できる。

プログラムは独自の32bitスタックアーキテクチャCPUのコードにコンパイルされて実行される。1台のロボットに割り当てられるコード領域は1000命令、スタック領域は500ワードまでとなっている。

Crobotsはシェアウェアであるがソースコードは公開されており、その解説が月刊アスキー1988年2月号から3回にわたって掲載された。

 クローン 
多くのCrobotsクローンが作成された。しかしながら、コンパイラとバーチャルマシンが揃ったものは、JavaクローンとJava VMやマイクロソフトコンパイラを使用したC++クローンなどごく一部である。

正式なクローンは、Tom Poindexterのオリジナル版と同じ機能を持つが、標準Cライブラリの三角関数に合わせるため、しばしば角度の向きが変えられる。直近のクローンはCrobots64とNetrobotsである。Marco ZoraによるcrobotsはC++サブセットコンパイラとバーチャルマシンに加え、優れたグラフィックインターフェイスを持つhttp://corewar.co.uk/crobots/zora/。このクローンの重要な点は、同種のCrobotsとの新しい協調性があり、Crobotsの数が無制限であり、浮動小数点による演算と仮想CPUの速度です。一方、Netrobotsはネットワーク越しに実行することができ、それぞれのロボットは別々のプロセスで動作し、異なる言語で記述することができるhttps://github.com/bonzini/netrobots#readme。

CrobotsはApple IIで動作する:en:RobotWarからコンセプトを得ている。RobotWarはプロプライエタリソフトウェアであり、言語も独自の言語であった。また、リアルタイムビューを含んでいた。

 日本での普及 
オリジナルのCrobotsはIBM PC上のMS-DOSで動作するが、これをアスキー編集部ICWS（International Core Wars Society、Core Warsについてはコア戦争を参照）日本支部がPC-9801やFM-16βなどの国産MS-DOSパソコンに移植し、月刊アスキーディスクサービスやASCII-NET(PCS)で公開された。また、有志によりPC-88VAのMSE上で動作するパッチも公開された。

ICWS日本支部では日本CROBOTSトーナメントを開催した。第1回は1987年10月3日に南青山で18台のロボットが参加して行われた。

 脚注 

 関連項目 
 :en:RobotWar
 Robocode

Category:1985年のコンピュータゲーム
Category:アメリカ合衆国で開発されたコンピュータゲーム
Category:シミュレーションゲーム
Category:プログラミングゲーム