0

Javaアプリケーション画面のボックスの周囲にアイコンを移動する次のコードがあります。画面を19回上に移動し、元の開始位置の前のステップに戻るまで右に回します-

public class MyClass {
public static void moveNTimes(MyObject main, int numberOfMoves) { 
for(int i = 0; i < numberOfMoves; i++) { 
    main.move(); 

    } 
}
public static void main(String[] args) {

    MyObject main = new MyObject();


   for (int i = 19; i >=0; i--){
       moveNTimes(main, i);
   main.turnRight(); 

   i = i + 1;


       }
   }
}

私の問題は、ボックスの周囲の終わりに達したときです。次の行に移動する必要があります。次の行には、次の周囲を移動するための 18 の場所があり、アイコンが中央で終了するまで 17 などになります。スクリーン。

コードにカウントを適用して、元の数値セットの 1 つをいつ抽出するかを知る方法はありますか? 手動で整数を毎回1ずつ少なく設定してコードを繰り返すだけで、これを行うことができました。現在、アイコンは最初の境界を終了すると停止します。

4

2 に答える 2

1

以下はどうでしょう。

for(int run=0 ; run<19 ; run++) {
    for(int lc1=0 ; lc1<19-run ; lc1++)
        main.move();
    main.turnRight();
}
于 2012-07-10T15:17:22.467 に答える
1

移動回数を引数とするメソッドを作成できます。

public void moveNTimes(YourObject main, int numberOfMoves) {
    for(int i = 0; i < numberOfMoves; i++) {
        main.move();
    }
}

コードを複製せずに、必要な回数だけそのメソッドを呼び出します。

for (int i = 19; i >=0; i--) {
    moveNTimes(main, i);
}

また

moveNTimes(int numberOfMoves)メインオブジェクトにメソッドを追加できます。

ノート:

  • forループ内で変数を宣言できます
  • i = i + 1書くことができますi++

編集

あなたの説明はあまり明確ではありませんが、これはあなたが求めているものかもしれません:

for (int i = 19; i >= 2; i--){
    for (int j = 0; j < 3; j++) {
        moveNTimes(main, i);
        main.turnRight(); 
    }
}

これは上に 19 回移動し、次に右に 19 回、下に 19 回、左に 18 回、上に 18 回、右に 18 回、下に 17 回などと移動し、ボックスの中央で終了する必要があります (最後に追加の移動が必要になる場合がありますが、よくわかりません)。 )。

于 2012-07-10T15:18:05.447 に答える