2015-05-21 3 views
1

Я делаю игру с двумя игроками java, но мне нужно убедиться, что координаты остаются на доске.Java Co-ordnates

addPiece(1, 1, "X"); 
addPiece(8, 8, "O"); 
showBoard(); 
Scanner myScan = new Scanner(System. in); 


System.out.println("Would you like to go first? Yes or No"); 
String goFirst = myScan.nextLine(); 

if (goFirst.equals("yes") || goFirst.equals("Yes") || goFirst.equals("YES")) { 
    System.out.println("You are X! Please enter the coordinates of your first move"); 
    String coordinate = myScan.nextLine(); 
    String[] parts = coordinate.split(","); 


    String x = parts[0]; 
    String y = parts[1]; 

    System.out.println("Moving to (" + x + "," + y + ")"); 

} 

мне нужно, чтобы убедиться, что часть в (1,1) не оставляет размеры (в прошлом 0,0 или 8,0), как я могу сделать это в

думать что-то вроде

проверить, если x больше 8, а затем недействительный ход проверить, если y больше 8, а затем недействительный ход else, если действительный ход.

Благодарим за помощь!

ответ

1

Вы можете принять координаты x и y отдельно. Например:

int x = -1; 
while (x < 0 || x > 8) { 
    System.out.print("Enter a valid x-coordinate (0-8):"); 
    x = myScan.nextInt(); 
} 

Похожие на y

Или, если вы хотите сделать это вместе:

int x = -1; 
int y = -1; 
while (x < 0 || x > 8 || y < 0 || y > 8) { 
    System.out.print("Enter co-ordinates (x,y) between (0,0) and (8,8):"); 
    String[] coords = myScan.nextLine().trim().split(","); 
    x = Integer.parseInt(coords[0]); 
    y = Integer.parseInt(coords[1]); 
} 

Это только один из способов. Есть много других способов добиться того же результата, если вы хотите их изучить.

0

просто проверить границы значения

boolean invalid; 
int x, y; 

... 

do { 
    invalid = false; 
    System.out.println("You are X! Please enter the coordinates of your first move"); 
    String coordinate = myScan.nextLine(); 
    String[] parts = coordinate.split(","); 
    x = Integer.parseInt(parts[0]); 
    y = Integer.parseInt(parts[1]); 
    if((x < 0) || (x > 8) || (y < 0) || (y > 8)) { 
    invalid = true; 
    System.out.println("Invalid Coordinates"); 
    } 
} while (invalid); 

редактирования: Пропущенные, что х, у еще строки.

+1

Вы не можете сравнить 'String' с '<' or '>' – kaykay

+1

@kaykay пропустил, что он исправлен. – twain249