package com.test;
import java.util.*;
public class sample13 {
public static void main(String[] args) {
final int SIZE = 10;
int x=0 , y=0;
char[][] board = new char [SIZE][SIZE];
byte[][] shipboard = {
{0, 0, 0, 0, 0, 0, 1, 0, 0},
{1, 1, 1, 1, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 1, 0}
};
// 1행에 행번호를, 1열에 열번호를 저장한다.
for (int i=1; i<SIZE; i++)
board[0][i] = board[i][0] = (char) (i+'0');
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.printf("좌표를 입력하세요. (종료는 00)");
String input = scanner.nextLine();
if(input.length() == 2) {
x=input.charAt(0) - '0';
y=input.charAt(1) - '0';
if(x==0 && y==0) // x와 y 모두 0인경우 종료
break;
}
if(input.length() !=2 || x<=0 || x>=SIZE || y<=0 || y>=SIZE) {
System.out.println("잘못된 입력입니다. 다시 입력해주세요.");
continue;
}
board[x][y] = shipboard[x-1][y-1]==1 ? 'o' : 'x' ;
for (int i=0; i<SIZE; i++)
System.out.println(board[i]);
System.out.println();
}
}
}
x=input.charAt(0) - '0';
y=input.charAt(1) - '0';
여기에서 - '0';가 뭔 뜻이야?
- '0'; 이게 무슨뜻이야??
'0'은 0의 아스키코드 그러니까 문자의 숫자번호를 의미함
저거 입력 안하니깐 좌표가 안찍히더라고...
문자열에서 charAt으로 int변수에 넣으면 그 문자의 아스키코드가 들어감 여기서 문자 0의 아스키코드는 48인데 1은 49 2는 50 이런식으로 되니까 문자 0을 빼준거임 - dc App
자바의정석 배열 예제문제인데 저런개념 설명이 없어..ㅜ
구글에 아스키코드 테이블 검색해서 보셈 - dc App