2017-02-16 6 views
-1

ドミノの配置が与えられていれば、それが合法であるかどうかを判断し、それに応じて真または偽を返します。たとえば、これは違法な配置です[2 3] [4 2] [2 2] [3 5]これはドミノの合法的な配置です。 [2 3] [3 5] [5 4] [4 5]。ドミノのJavaコーディング修正

これは私が今使っているコードですが、合法で違法で合法的なものであれば違法に出力します。コーディングとアレンジアウトの両方を手配する方法はありますか?これは違法なものであり、法的なものですか?

public class Domino { 
    private int leftValue; 
    private int rightValue; 

    public Domino(int leftValue, int rightValue) { 
     this.leftValue = leftValue; 
     this.rightValue = rightValue; 
    } 

    public int getLeftValue() { 
     return leftValue; 
    } 

    public int getRightValue() { 
     return rightValue; 
    } 

    public static void main(String[] args) { 
     // This creates the Array 
     Domino[] dominos = new Domino[] { 
      new Domino(2, 3), 
      new Domino(3, 2), 
      new Domino(2, 5), 
      new Domino(2, 5) 
     }; 
     // This part Loops and matchs left and right values 
     Domino previous = null; 

     for (Domino current : dominos) { 
      if (previous != null) { 
       if (current.getLeftValue() != previous.getRightValue()) { 
        try { 
         throw new Exception("Illegal"); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
      previous = current; 
     } 
    } 
} 
+1

どのようにあなたのコードの仕事をしないのですか? –

+0

あなたは、同じ順序を持たないハッシュマップなどに変更すると、前と次のドミノをクラスに保存する必要があります。 –

+0

あなたはメインクラスで両方の手配を作成することができます。 E. 'Domino [] dominosGood =新しいDomino [] {'と 'Domino [] dominosBad =新しいDomino [] {'。次に、両方の手配をチェックします: '(ドミノカレント:ドミノスグッド){'と '(ドミノカレント:ドミノスバッド){' – IQV

答えて

0

あなたは、このいずれかであなたのforループを交換してみてください:

for (Domino current : dominos) { 
     if (previous != null) { 
      if (current.getLeftValue() != previous.getRightValue()) { 
       System.out.println("[" + previous.getLeftValue() + " " + previous.getRightValue() 
         + "][" + current.getLeftValue() + " " + current.getRightValue() + "] is illegal"); 
      } else { 
       System.out.println("[" + previous.getLeftValue() + " " + previous.getRightValue() 
         + "][" + current.getLeftValue() + " " + current.getRightValue() + "] is legal"); 
      } 
     } 
     previous = current; 
    } 
関連する問題