보드게임카페에서 이런 핵미사일 전함 전략 게임? 이런걸 한적이있는데
배열을 공부하다가 이 게임을 제작하는 실습이 나와서 만들어보았다
public static void main(String[] args) {
final int SIZE = 10;
int x,y =0;
String ground[][]= new String[SIZE][SIZE];
int arr[][]= {
// 1 2 3 4 5 6 7 8 9
{1,0,0,0,0,0,0,1,0},//1
{1,0,0,0,1,1,1,1,0},//2
{1,0,0,0,0,0,0,0,0},//3
{0,0,0,1,0,0,0,0,0},//4
{0,0,0,1,0,0,0,0,0},//5
{0,0,0,1,0,0,0,1,0},//6
{1,0,0,0,0,0,0,1,0},//7
{1,0,0,0,0,0,0,1,0},//8
{1,0,0,0,0,0,0,1,0}//9
};
for(int j = 1;j<SIZE;j++) {
ground[0][j]=ground[j][0]=Integer.toString(j);
}
while(true) {
System.out.println("배 게임을 시작하겠습니다");
System.out.print("배가 있을것같은 좌표를 입력해주세요(예시 15는 x=1,y=2 종료는 00) : ");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
System.out.println(input);
x = input.charAt(0)-'0'; //문자열에서 뽑은 문자를 숫자형으로 변환
y = input.charAt(1)-'0'; //사실 char형인 0(정수로 48)를 빼서 남는값을 int변수에 넣어주는것
if(x==0&y==0)break;
if (input.length()!=2) {
System.out.println("두자리수만 입력하세요");
continue;
}
ground[x][y] = arr[x-1][y-1] == 1?"O":"X";
for(int i= 0;i<SIZE;i++) {
for(int j=0;j<SIZE;j++) {
if(ground[i][j]==null) {ground[i][j]=" ";}
System.out.print(ground[i][j]);
}
System.out.println();}
};
}
그런데 이 게임을 하려면 미리 소스코드에서
배의 위치를 하나하나 1로 설정해줘야한다
1은 배
0은 바다
45를 입력하면
(4,5)좌표로 미사일을 날리는 것이다
배를 폭파(?)시키면 O으로 표시
배가 그자리에 없으면 X로 표시되어 나온다
반응형
'서버&백엔드 > 🔥 JAVA' 카테고리의 다른 글
Java | 타입변환,Scanner,조건문,반복문 (0) | 2022.09.26 |
---|---|
Java | JVM,소스코드,출력,주석,변수,연산자 (1) | 2022.09.23 |
Java | 자바과거,설치,손코딩,intelliJ (0) | 2022.09.22 |
Java 원하는 날짜의 달력출력 (0) | 2022.03.10 |
Java 배열 오름차순 정렬 연습 (0) | 2022.01.17 |