問題タブ [karel]
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.
java - Java アルゴリズム支援
したがって、私の現在のタスクは、行 1 スペースのブザーの山を右にシフトするアルゴリズムを作成することです。私は良いスタートを切ったと思います.ブザーの山を拾い上げ、1つを右に移動し、それらのブザーをドロップするコードを書きました:
ブザーの列にはブザー間に隙間がある場合があり、その場合、このコードはうまく機能しますが、ブザーの山が隣接している場合、ロボットは最初のパイルを 2 番目のパイルに捨ててしまい、拾う方法がわかりません。これは、2 番目のパイルのブザーが 1 番目と 2 番目のパイルのブザーで構成されており、2 番目のパイルのブザーだけを拾う方法がわからないためです。
Rohit jain は、列の最後から始めて後ろに進むというアイデアを私に与えてくれました。これが問題の解決方法だとは思いませんが、それでも解決策です。ブザーの間に隙間があるため、列の最後にたどり着くのは実際には想像以上に困難です。これが私がやったことです。
java - 包括的な if ステートメントを作成する方法は? 「これがプログラムの任意の時点で発生した場合...」のように
私の課題は、カレル ロボットが迷路を出てブザーに到達したら停止するために使用するアルゴリズムを作成することです。ブザーに到達したときにカレルを停止させることを除いて、このアルゴリズムの作成に成功しました。これはコードの一部にすぎませんが、基本的にすべてのステップでビープ チェックポイントを挿入していることがわかります。もっと簡単な方法があるように感じずにはいられません。さらに、新しく挿入したビープ音チェックを実行しようとすると、次のエラーが表示されました: Exception in thread "main" java.lang.StackOverflowError
そのため、可能であれば、プログラム全体で間隔ごとにチェックされる if ステートメントを使用したいと思います。ありがとう。
java - 抽象クラスからメイン ドライバのインスタンスを呼び出すにはどうすればよいですか?
そのため、メイン ドライバーで作成されたクラスのインスタンスを読み取ることができるようにするには、委任クラス (ref) が必要です。ref でクラス参照を作成しようとしましたが、それは世界でより多くのオブジェクトを作成しただけで、元のオブジェクトを動かしませんでした。
メインドライバーコード:
TrackReferee コード:
編集:申し訳ありませんが、明確にする必要がありましたが、メインドライバーのコードを変更することは許可されていません。これは、既に提供されているためです。
java - Java でスタック内のブザーをカウントする
最後に作成されたロボットを壁に到達するまで前進させる clearStacks() というメソッドを作成する必要があります。メソッドは値を返さず、パラメーターをとらないようにする必要があります。また、副作用もあります。メソッドは、ロボットが各スタックで拾ったビープ音の数を出力します。行に 3 つのスタックがあると仮定すると、出力は次のようになります。
ブザー: 4 ブザー: 1 ブザー: 7
ロボットが各スタックで何個のブザーを拾ったかを書くことができないという私の問題。総額のみです。私はJavaが初めてです..私のコード:
java - 「メイン」メソッドなしでKarelはどのように実行されますか?
main() メソッドを使用していないため、カレル・ザ・ロボットが実行するプログラムで疑問に思っていました。代わりに run() メソッドを使用しました。
それはどのように機能しますか?
java - 関数のネスト
私はiTunes Uのオンラインコース「プログラミング方法論」を受講しています。このコースには、Javaベースの「ロボットのカレル」が導入されていて、疑問が生じました。たとえば、次のコードを使用します。
このコードのアイデアは、画面の端に加えて「ビープ音」を配置し、ビープ音の端を取ることによって画面の中央を見つけることです。私が行ったことは、各「エッジを見つける」関数を作成して、他の関数を呼び出して他のエッジを見つけることです。それは最終的に中央に到達し、左右のビーパーをチェックし、何もないことを確認し、中央に 1 つ配置します。
ここで質問したいと思います: 私は関数 (またはメソッド? どのように呼び出すか) を頻繁にネストする傾向があります。それはプログラマーとしての悪い習慣であり、より大規模で複雑なプロジェクトでは、私に逆戻りするのでしょうか? コードの可読性が低下しますか? もしそうなら、誰でもこれらの関数を呼び出す方法を解決できますか?