問題タブ [robocode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 学校の課題用に、.Net を使用してロボコード タイプのゲームを開発する
私は現在、学校の最終学年で、コンピューター研究の高等国家卒業証書を取得するために勉強しています。基本的に、この最終学期には、基本的にシステム全体を組み込んだソフトウェア プロジェクトを開発する必要があります。
今、私がやろうとしていることはRobocodeに沿ったものですが、Java の代わりに .Net Framework でこれを行うつもりです。
ロボコードとは?
Robocode が何かを知らない方のために説明すると、これは基本的にプログラミング ゲームのようなもので、既存のクラス インターフェイスとダウンロード可能なクラスのメソッドを使用して独自のロボットを開発し、自律的な戦闘でお互いに戦います。アリーナ...そのような:
代替テキスト http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
基本的に、私が言ったように、.Net Framework を使用してこの種のシナリオを再作成したいと思います..そして、経験豊富な開発者がこのプロジェクトの正しい方向に私を導くことができることを期待して、この質問を StackOverflow に投稿しています。 .
私がこれまでに心に留めていたのは、基本的に次のものを作成することです。
- 既存のロボットなどとの新しいバトルを作成するためのバトル アリーナおよびユーザー インターフェイスとして機能するオフライン アプリケーション。
- プレイヤーが新しいロボットを登録したり、過去のトーナメントのスコアを表示したりするために使用できるオンライン インターフェイス...
- そして明らかに、プレーヤーがロボットを作成するために使用する必要があるクラス インターフェースです。
アニメーションとグラフィック(実戦用)
もちろん、戦闘が発生すると何らかのアニメーションや動きが発生しますが、その媒体として何を使用するかはまだ決めていません。
私が現在考えているオプションは次のとおりです。
- 上記の最初の箇条書きで述べたように、戦場として機能するオフライン アプリケーションを開発し、すべてのアニメーションは主に C# コードを使用して行われます。
- または、アニメーションを処理する Silverlight アプリケーションを開発します (したがって、シナリオをオフライン アプリケーションからオンライン アプリケーションに変更します)。
- または、おそらく最も実現可能性が低いのは、キャンバスのようなものを使用して、JavaScript を使用して戦闘アニメーションを作成することです。
この特定のシナリオにより適したものは何だと思いますか?
クラスとインターフェースの開発
プレイヤーがロボットを開発するために、Robocode のように使用できる特定のクラス インターフェイスを提供します。
そのようなイベントとメソッドの例には、次のものがあります。
Robocode (Java) のコードのスニペットを次に示します。
実際に戦闘を行うには、リフレクションを使用して、ユーザーが実際に使用しているメソッドを実際に読み取り、それらを実行して、戦闘の特定の瞬間に呼び出されるように実装することを考えています。
さて、経験豊富な開発者の皆様に、私が親切かつ謙虚にお願いしたいのは、私のこのプロジェクトを少し案内し、何をする必要があるかについてアドバイスを与えることです...まず第一に、このプロジェクトは実現可能ですか? 実際にそうである場合、どこからプロジェクトを実際に開始する必要がありますか?
私が使用する予定のテクノロジーとソフトウェアに関しては、次のとおりです。
- .NET Framework 3.5、C# 3.0
- LINQ (言語統合クエリ)
- SQL Server 2008
- マイクロソフト ビジュアル スタジオ 2008
- jQuery フレームワーク
- おそらくシルバーライト
私の質問をこの時点まで読むことができたことにも感謝します。このプロジェクトを完了するために得ることができるすべての助けが必要であり、非常に感謝しています.
お時間とご尽力いただきありがとうございます。
ところで、今まで、Robocodeを除いて、私が作成しようとしているものに似たこれらのゲームを見つけました。
java - Robocode の優れたチュートリアルはどこにありますか?
初めてのロボットでRobocodeをプレイするのは本当に楽しかったです。今は、もう少しエキサイティングなものを作りたいと思っています。高度なロボットの作成に最適なチュートリアルは?
java - クラブプロジェクトを管理するためのバージョン管理?
私の学校では、新入生がRobocodeを使用した迅速なターンアラウンド タイム、期日、コード比較、および API ドキュメントの実践を学ぶのを支援するために、CS クラブのコーディング コンテストを開始しています。各メンバーが独自のパッケージ/ロボットで作業し、比較と競争のためにそれらを中央の場所に引っ張ることができる方法があるかどうか疑問に思っていましたか? すべてのプロジェクトを自分のラップトップに取り込めるようにしたいのですが、クラブのメンバーはパッケージを分けて保管し、その一部だけを作業できるようにしたいと考えています。クロスプラットフォーム ソリューションが理想的です。
java - robocodeエンジン:ランタイムエンジンを設計(作成)する方法-ロボットの世界
IBMには、RoboCodeと呼ばれる無料の学習Javaプログラムがあります。このプログラムでは、2D空間で戦闘を行うカスタムロボットを作成できます。そのようなロボットをサポートする環境を書きたいのですが、どのパターンやデザインを使うべきかわかりません。各ロボットはスレッドです。各スレッドには、JREによって一定の(不確定な)実行時間が与えられます。ロボットワールドエンジンは、プレーヤー/ロボットのリストを作成することから始め、次に各プレーヤーが好きなことを順番に実行できるようにするループに入ります。前進、左折、北西の角に向かって発射します。各ロボットには、関心のあるイベントも通知されます。敵または複数の敵が範囲内にいる、弾丸が当たったなどです。
イベントリスナーでもある(プロデューサーでもある)スレッドの処理の組み合わせは、私を混乱させます。ゲームエンジンにはまだまだあるようです。いくつかの一般的なアイデアでさえ役立つでしょう。
security - Scalaランタイムのセキュリティ
私はRobocodeエンジンの開発者です。Robocodeを多言語にしたいと思っていますが、Scalaはぴったりのようです。ここにScalaプラグインのプロトタイプがあります。
問題: ユーザーは創造的なプログラマーであるため、さまざまな方法で戦いに勝つことを試みる可能性があります。また、ロボットはオンラインデータベースからダウンロードされ、誰でもアップロードできます。したがって、セキュリティのギャップは、ユーザーのコンピュータにセキュリティホールをもたらす可能性があります。Javaで書かれたロボットは、制限されたサンドボックスで実行されています。ほとんどすべてが禁止されています[ネットワーク、GUI、ディスク(制限付き)、スレッド(制限付き)、クラスローダー、リフレクション]。サンドボックスはブラウザアプレットに似ています。SecurityManager、ロボットごとのカスタムClassLoaderなどを使用します...
RobocodeでScalaランタイムをホストする方法は2つあります。
1)サンドボックス内にロボットと一緒にロードします。私たちにとってかなり安全な、好ましい解決策。ただし、ランタイムはリフレクションを使用するため、Scalaランタイムの機能が損なわれます。多分実行時にクラスを生成しますか?スレッドを使用して内部クリーンアップを実行しますか?JVM /内部へのアクセス?(言語能力を制限したくない)
2)Scalaランタイムを信頼できるコードとして使用し、ボックスの外で、JDKと同じレベルのセキュリティを使用します。(悪意のある)ロボットへの可視性。ScalaランタイムAPIは安全ですか?彼らが警備員を持っている方法はありますか?セーフモードはありますか?Scalaランタイムに、ロボット間の通信に悪用される可能性のあるシングルトンはありますか?スレッドをシミュレートできる同時性/スレッドプール/メッセージングはありますか?(Scalaランタイムのセキュリティ監査はありますか?)
3)中間の何か、ランタイムインとアウトのいくつかのクラス。どのクラス/パッケージがロボットに表示される必要がありますか/これは単なるプライベート実装ですか?(これは将来の解決策のようです)
質問: 信頼できるスコープで実行する必要のあるランタイムの部分を他の部分から列挙して分離することは可能ですか?特定のパッケージとクラス?またはより良いアイデア?
安全な解決策につながる具体的な答えを探しています。ランダムな考えは歓迎されますが、授与されません。スカラメールグループで進行中の議論があります。具体的な答えはまだありません。
java - Java 引数のリフレッシュ
ロボコードというプログラミングゲームのプログラムを書いています。問題はここにあります:
robocode.Robot を拡張するため、ほとんどのコードを理解できないかもしれませんが、私の問題は変数にありますWhile
。メソッドが引数を1回取得するとループが終了せず、それが真であるため、メソッドは永久ループになりますが、これを呼び出すたびにwhileループを作成したくないため、メソッド引数を更新する方法はありますか?方法?
java - クラスの自己参照
次のコードがあります。angle 関数には、呼び出し元のクラスからの情報が必要です。これを行う最善の方法は何ですか?
maven-2 - Maven埋め込みエラー:そのようなアーカイバはありません
私はMavenにまったく慣れていません。
robocodeでテストのカバレッジ分析を行おうとしています。そのために、emmaはマルチモジュールプロジェクトをうまく処理できないようであるため、クローバー(トライアルライセンス)を使用しています。
残念ながら、robocode.test.robotsモジュールに到達すると、次のエラーが発生します。
問題をグーグルで検索しようとしましたが、私が持っているpomファイルにあるものと同じタグを使用した例は見つかりませんでした。
これがpomファイルです(クローバープラグインの部分のみを追加しました):
私が理解している限り、問題は解凍依存関係の部分にあります。