2016-02-22 33 views
0

我一直在尋找一段時間,但人們似乎在我前面的象棋前waaaaay。我想要做的是在課堂上有一種方法來解決瓦片的顏色,但我的顏色不斷變成「空白」。使用一種方法來解決國際象棋瓷磚顏色

import java.util.Scanner; 

公共類ChessTileTest {

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 

    String tileColour; 
    chessTile test = new chessTile(); 
    System.out.print(" Enter chess move : "); 
    String move = in.next(); 
    tileColour = test.setColour(move); 
    System.out.println(tileColour); 


} 

}

公共類chessTile { 私人串色; 私人字符串地址;

public chessTile(){ 

} 
public String setColour(String move){ 
char letter; 
int number; 
letter = move.charAt(0); 
number = move.charAt(1); 
if((letter=='a'||letter=='c'||letter=='e'||letter=='g')&&(number/2==1)){ 
    colour = "Black"; 
} 
else if((letter=='a'||letter=='c'||letter=='e'||letter=='g')&&(number/2==0)){ 
    colour = "white"; 
} 
else if((letter=='b'||letter=='d'||letter=='f'||letter=='h')&&(number/2==1)){ 
    colour = "white"; 
} 
else if((letter=='b'||letter=='d'||letter=='f'||letter=='h')&&(number/2==0)){ 
    colour = "Black"; 
} 
return colour; 
} 

} 
+0

你能分享chessTile類? (順便說一句,如果java的類名應該是大寫) – FriedSaucePots

+0

哦,是的,謝謝:) –

回答

0

setColour(...)第一線

char letter = move.charAt(0); // gets ASCII character at index 0 
int number = move.charAt(1); // gets **int value of** ASCII character at index 1 

所以,對於〔實施例,如果你的字符串爲 「A1」,然後letter = anumber = 49因爲字符的整數ASCII值 「1」 49.請參閱此ASCII圖表瞭解更多信息。 。 。 http://www.asciitable.com/index/asciifull.gif

您需要將字符轉換爲合適的int。你可以用下面的方法做到這一點。 。 。

int number = Character.getNumericValue(move.charAt(1));

因爲你很可能得到一個壞的價值,沒有一個if語句滿意,並返回空值

+0

好的,這是非常感謝。仍然收到空回報,是我的if語句好嗎? –

+0

什麼是一些示例輸入?你可以編輯你的問題,包括? – FriedSaucePots

+0

示例,a-h&1-8。 「a4」,「b7」..... –