私は現在、学校の最終学年で、コンピューター研究の高等国家卒業証書を取得するために勉強しています。基本的に、この最終学期には、基本的にシステム全体を組み込んだソフトウェア プロジェクトを開発する必要があります。
今、私がやろうとしていることはRobocodeに沿ったものですが、Java の代わりに .Net Framework でこれを行うつもりです。
ロボコードとは?
Robocode が何かを知らない方のために説明すると、これは基本的にプログラミング ゲームのようなもので、既存のクラス インターフェイスとダウンロード可能なクラスのメソッドを使用して独自のロボットを開発し、自律的な戦闘でお互いに戦います。アリーナ...そのような:
代替テキスト http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
基本的に、私が言ったように、.Net Framework を使用してこの種のシナリオを再作成したいと思います..そして、経験豊富な開発者がこのプロジェクトの正しい方向に私を導くことができることを期待して、この質問を StackOverflow に投稿しています。 .
私がこれまでに心に留めていたのは、基本的に次のものを作成することです。
- 既存のロボットなどとの新しいバトルを作成するためのバトル アリーナおよびユーザー インターフェイスとして機能するオフライン アプリケーション。
- プレイヤーが新しいロボットを登録したり、過去のトーナメントのスコアを表示したりするために使用できるオンライン インターフェイス...
- そして明らかに、プレーヤーがロボットを作成するために使用する必要があるクラス インターフェースです。
アニメーションとグラフィック(実戦用)
もちろん、戦闘が発生すると何らかのアニメーションや動きが発生しますが、その媒体として何を使用するかはまだ決めていません。
私が現在考えているオプションは次のとおりです。
- 上記の最初の箇条書きで述べたように、戦場として機能するオフライン アプリケーションを開発し、すべてのアニメーションは主に C# コードを使用して行われます。
- または、アニメーションを処理する Silverlight アプリケーションを開発します (したがって、シナリオをオフライン アプリケーションからオンライン アプリケーションに変更します)。
- または、おそらく最も実現可能性が低いのは、キャンバスのようなものを使用して、JavaScript を使用して戦闘アニメーションを作成することです。
この特定のシナリオにより適したものは何だと思いますか?
クラスとインターフェースの開発
プレイヤーがロボットを開発するために、Robocode のように使用できる特定のクラス インターフェイスを提供します。
そのようなイベントとメソッドの例には、次のものがあります。
public void run () {}
public void onScannedRobot(ScannedRobotEvent e) {}
walk(/* ammount in pixels or w/e to walk to */);
turnRight(/* value in degrees for an angular turn */);
//etc...
Robocode (Java) のコードのスニペットを次に示します。
public class MyFirstRobot extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
}
実際に戦闘を行うには、リフレクションを使用して、ユーザーが実際に使用しているメソッドを実際に読み取り、それらを実行して、戦闘の特定の瞬間に呼び出されるように実装することを考えています。
さて、経験豊富な開発者の皆様に、私が親切かつ謙虚にお願いしたいのは、私のこのプロジェクトを少し案内し、何をする必要があるかについてアドバイスを与えることです...まず第一に、このプロジェクトは実現可能ですか? 実際にそうである場合、どこからプロジェクトを実際に開始する必要がありますか?
私が使用する予定のテクノロジーとソフトウェアに関しては、次のとおりです。
- .NET Framework 3.5、C# 3.0
- LINQ (言語統合クエリ)
- SQL Server 2008
- マイクロソフト ビジュアル スタジオ 2008
- jQuery フレームワーク
- おそらくシルバーライト
私の質問をこの時点まで読むことができたことにも感謝します。このプロジェクトを完了するために得ることができるすべての助けが必要であり、非常に感謝しています.
お時間とご尽力いただきありがとうございます。
ところで、今まで、Robocodeを除いて、私が作成しようとしているものに似たこれらのゲームを見つけました。