問題タブ [gridworld]
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.
javascript - ドットやチェッカーなどのプログラミング座標ベースのゲーム
デカルト幾何学または座標ベースのゲームプログラミングの基礎を学びたいと思っています。プラットフォームは関係ありませんが、私は JavaScript、C、Objective-C に最も精通しています。最終的にドットやチェッカーなどを作成できるのが理想です。アイデアは、スプライトがどのように機能し、パスがプログラムでどのように機能するかを学ぶことです。皆さんへの私の質問は、基礎を学ぶのに最適な場所はどこですか? 率直に言うと、この時点で私にとって微積分よりも高度なものは灰色の線であり、記憶をリフレッシュする必要があるため、数学はそれほど重くありません。
特定の書籍、サイト、またはオープン ソース プロジェクトがあれば、それがおそらく最も役に立ちます。
アイデアをありがとう。
java - パスファインディングエリアの周囲に境界を設定することは許容されますか?
私は現在、A *パスファインディングアルゴリズムを使用して、無限グリッド上のパスを計算しています(GridworldのUnboundedGridを使用して、AP CSのケーススタディを使用しています)。エンドノードが完全に壁に囲まれているために有効なパスが存在しない場合を除いて、すべてがうまく機能します。予想どおり、アルゴリズムは無限に検索を続け、エンドノードを見つけることはありません。
これに対する可能な解決策は、パスファインディング領域全体の周りに非表示の(ユーザーには表示されないがアルゴリズムには表示される)壁を配置し、開始ノード、終了ノード、およびすべての壁ノードがこれらの範囲内にあることを確認することです。壁、2〜3スペースのパディングなど。何かのようなもの:
...最終的にすべてのノードがクローズドリストに追加され、オープンリストが空になり、その時点で有効なパスが存在しないことがわかります。
これは問題の合理的な解決策のように見えますか?これがうまくいかない可能性がある方法はありますか?別の解決策は、同時にエンドから逆方向にパスファインドすることであることを理解していますが、これは、特にエンドノードがそれほど緊密に囲まれていない場合、潜在的にコストがかかる可能性があるようです。
java - シンボル symbol が見つかりません: メソッド process(WorkerAnt)
私はJavaクラスのためにこのAntFarmプロジェクトを行っています。このプロジェクトは、さまざまなクラス (Food、WorkerAnt、Queen) で構成され、インターフェイス (プロセスと呼ばれるメソッド) を使用して相互にやり取りします。
http://ljhs.sandi.net/faculty/volger/apajava/GridWorld/Assignments/AntFarm/ - プロジェクト
私は現在、 のprocessActors()
メソッドで立ち往生していWorkerAnt
ます。(ページのほぼ一番下にあります。)
現在のコードは次のとおりです。
私が得るエラーは次のとおりです。
シンボル symbol が見つかりません: メソッド process(WorkerAnt)
java - GridWorld で作成したゲームにネットワークを追加するにはどうすればよいですか?
(Collegeboard の AP 試験のケーススタディのような GridWorld)
それで、私はここ数年、空き時間にこのゲームに取り組んできましたが、かなり順調に進んでいます。グリッド内を走り回り、アイテムを拾い、モンスターなどと戦う素敵な小さな棒のキャラクターがいます。今、私はそれを次のレベルに進める準備ができていると思います (ネットワーク クラスのプロジェクトを作成する必要があるため、とにかく多くの選択肢があります...)、そして私は'進行方法に少し困惑しています。
私は過去に ServerSocket を使用していくつかのプログラムを作成しました。そこでは 1 つのサーバーが実行されており、複数のクライアントがそれに接続してメッセージを受信できますが、それらはすべて単純なテキスト プログラムであり、少数の文字列しか交換しません。これにソケットを使おうと思っていたのですが、設定方法がわかりません...
GridWorld が実行されると、グリッドとその中のすべてのアクターを含む JFrame のようなものが自動的にポップアップします。「エンジン」のすべてのコードを含むメイン ソース ファイルには、基本的に 2 つの巨大なメソッドがあります。単位時間ごとに何が起こるかを制御する step() と、keyPressed() です。ユーザーがキーを押したときの動作を制御します。ここで、step() は確実にサーバー側にある必要があり、keyPressed() はウィンドウと一緒にクライアント側にある必要があると考えていました。すべての NPC のアクションとゲームの計算を管理するメイン ゲームを、サーバー上で 1 回だけ実行するという考えです。
しかし、どのように正確に分割しますか?サーバーとクライアントの間でデータをやり取りする方法さえわかりません。 PrintWriter と BufferedReader を使用しました。PrintWriter には任意のオブジェクトを受け入れる print() メソッドがあることがわかりましたが、BufferedReader はどのようにそれを受け取るのでしょうか? オブジェクトを読み取るメソッドはありません。
つまり、基本的には、サーバーが何をすべきか、クライアントが何をすべきか、どのライブラリを使用すべきか、特定の機能をどこに置くべきかなど、すべての詳細を知りたいのです。
java - (GridWorld) ワールドの setGrid() が正しく再描画されませんか?
ゲームの作成に GridWorld (AP コンピューター サイエンス カリキュラムから) を使用しようとしていますが、複数のグリッドの使用に問題があります。World の setGrid メソッドが機能していないようです。私は、複数のグリッド オブジェクトを共存させることができ、World が指している現在のオブジェクトが GUI に描画されるという印象を受けました。しかし、それは起こりません... World の setGrid を呼び出してグリッドを渡すと、グリッドは論理的にのみ設定されているように見え、それを System.out.printing すると、アクターとその現在の位置の正しい結果が得られますが、 GUI が更新されず、グリッドが実際に表示されません。
これを説明するために、簡単な ActorWorld を書きました。
すべてのステップで別のグリッドに変更して表示する必要があるため、基本的に、グリッド内の 1 つのアクタの位置を (1,1) から (9,9) に変更する必要があります。しかし実際には、空のグリッドが表示されるだけです (これは、デフォルトのコンストラクターで作成した元のグリッドを使用しているためです。これは、提供しなかったためです)。どうしたの?現在のグリッドを描画するにはどうすればよいですか?
java - GridWorld ラボの問題
アクターが開いている場合、アクターをランダムな場所に移動するコードを作成しようとしています。ただし、この行に起因するエラーで問題が発生しています。
基本的に、この行はその場所が開いているかどうかを確認すると思っていました。しかし、私はこのエラーが発生しています誰でも助けることができますか?
java - NullPointerException を回避する方法は?
eclipse と gridworld を使用して、オセロ ゲームで移動が合法かどうかを確認しようとしています。場所に対して最初に行うことは、それが有効かどうかを確認することですが、有効な場所を確認するには、null ではない必要があります。問題は、それが合法的な移動である要件の 1 つは、それが null/空/空いていることです。どうすればこれを回避できますか? エラーがどこにあると思われるかを指摘しました。(これが誰かを混乱させた場合は申し訳ありません。)
java - IllegalArgumentException をスローしてキャッチするにはどうすればよいですか?
つまり、基本的には、AP Comp Sci クラスで現在行っている GridWorld プロジェクトがあります。パックマンやってます。act メソッドのコードは次のとおりです (GridWorld に慣れていない方のために説明すると、act メソッドは、アクターが新しい動きをするたびに呼び出されます)。
最後の 2 つの if ステートメントの奇妙な言い回しの理由は bc です。パックマンが実際のゲームでテレポートできるようにしたいのです。ゲームを実行すると、約 90% の時間で動作しますが、残りの 10% では IllegalArgumentException bc が発生し、ボード上にない場所に移動しようとしていることが示されます (例: (9,-1 ) および (9,21))。どうすれば捕まえたり投げたりできるか、またはこれを防ぐために必要なことは何でも知りたい. 私はキャッチやスローを使ったことがないので、あなたの理由を説明してみてください。
java - Gridworld-サウンドを追加できますか?
タイトルと同じように。バックグラウンドで曲を再生できるかどうか疑問に思っています。可能であれば、コードはどのように機能しますか?私は無駄に延々とググった。どんな助けでもいただければ幸いです。
java - GridworldのgetDirectionToward(Location target)メソッドは何をしますか?
APCSカリキュラムの一部として発表されたケーススタディであるGridworldを使用して課題を作成しようとしています。Gridworldに精通している人は、getDirectionToward(Location target)メソッドが正確に何をするのか教えてもらえますか?あるオブジェクトが別のオブジェクトに面しているかどうかを判断できる必要がある割り当てに使用する必要があると思いますが、「ターゲットに最も近いコンパスの方向を返す」と記載されているドキュメントは役に立ちません。それが何を意味するのか正確にはわかりません。ありがとう