2016-11-23 89 views
-1

我目前正在開展一個學校項目的跳棋遊戲。董事會是一個二維數組的字符串來表示棋子上的棋子。目前我正在編寫遊戲規則,但由於某些原因.equals()在while循環中失敗。爲什麼.equals()失敗???跳棋遊戲

private static String redPawn = "redPawn"; 
private static String blackPawn = "blackPawn"; 
private static String redKing = "redKing"; 
private static String blackKing = "blackKing" 
private static String[][] checkerPieces = new String[row][col]; 

while(!redPawn.equals(checkerPieces[r][c]) || !redKing.equals(checkerPieces[r][c])) 
    { 
     System.out.println("You can only move the red pawns"); 
     playerInput.selectPiece(); 
    } 

調試時,只把:

while(!redPawn.equals(checkerPieces[r][c])) 
    { 
     System.out.println("You can only move the red pawns"); 
     playerInput.selectPiece(); 
    } 

它的工作,直到我加入條件語句檢查一個redKing。任何人都可以幫忙

+0

你能添加你得到的錯誤? – JonasAnon

+0

你能告訴我們'c'和'r'是什麼? – juliocb92

回答

3

由於某些原因.equals()在while循環中失敗。

這是因爲你使用或||,使用和&&代替

while(!redPawn.equals(checkerPieces[r][c]) && !redKing.equals(checkerPieces[r][c]))