0

こんにちは、タワーズ オブ ハノイ パズル プログラムです。現在、「ディスクの数を入力してください」というプロンプトが表示されたときに空白の場合 (つまり、整数値を入力せずに Enter キーを押した場合)、プログラムで 3 つのディスクを解決するのに問題があります。

* 私のハノイ メソッド内の if/else ステートメントは、問題があると思われる場所です。問題があると思われる場所をコメントアウトしました。「ディスクの数を入力してください」というプロンプトが表示されたときに何も入力されていない場合、プログラムが 3 つのディスクだけを解決するようにするにはどうすればよいですか? *

コード:

import java.util.Scanner;

public class TowerOfHanoi4 {
    static int moves = 0;
    static boolean displayMoves = false;
   static int blank = 3;

    public static void main(String[] args) {

        System.out.println("Enter the Number of Discs : ");
        Scanner scanner = new Scanner(System.in);
        int iHeight = scanner.nextInt();
        char source = 'S', auxiliary = 'D', destination = 'A'; // name poles or
                                                                // 'Needles'

        System.out.println("Press 'v' or 'V' for a list of moves");
        Scanner show = new Scanner(System.in);
        String c = show.next();
        displayMoves = c.equalsIgnoreCase("v");


        hanoi(iHeight, source, destination, auxiliary);
        System.out.println(" Total Moves : " + moves);
    }

    static void hanoi(int height, char source, char destination, char auxiliary) {
        if (height >= 1) {
            hanoi(height - 1, source, auxiliary, destination);
            if (displayMoves) {
                System.out.println(" Move disc from needle " + source + " to "
                        + destination);
            }
            moves++;
            hanoi(height - 1, auxiliary, destination, source);
        }
//       else (height == blank) {                                  //I think the problem
//          hanoi(height - 1, source, auxiliary, destination);//Lies with this
//          moves++;                                          //else
//          hanoi(height - 1, auxiliary, destination, source);//statement         
//       }   
    }
}
4

1 に答える 1