=====guessgame.java 클래스
package guessgame;
import java.util.*;
public class GuessGame {
int[][] gamePanel = new int[10][10];
Bar[] barObject = new Bar[3];
int totalHitCount = 0;
public void play() {
barObject[0].setBarName("송아지");
barObject[0].setHitCount(0);
barObject[1].setBarName("강아지");
barObject[1].setHitCount(0);
barObject[2].setBarName("병아리");
barObject[2].setHitCount(0);
int Ran1,Ran2,Ran3,Ran4,Ran5,Ran6; // 바위치 변수
int x, y;
Scanner input = new Scanner(System.in);
while(true) { //송아지
Ran1 = (int)(Math.random()*10);
Ran2 = (int)(Math.random()*10);
if( Ran2 > 7)
continue;
if(gamePanel[Ran1][Ran2] == -1 && gamePanel[Ran1][Ran2+1] == -1 && gamePanel[Ran1][Ran2+2] == -1) {
gamePanel[Ran1][Ran2] = 0;
gamePanel[Ran1][Ran2+1] = 0;
gamePanel[Ran1][Ran2+2] = 0;
break;
}
}
while(true) { //강아지
Ran3 = (int)(Math.random()*10);
Ran4 = (int)(Math.random()*10);
if( Ran3 > 7)
continue;
if(gamePanel[Ran3][Ran4] == -1 && gamePanel[Ran3+1][Ran4] == -1 && gamePanel[Ran3+2][Ran4] == -1) {
gamePanel[Ran3][Ran4] = 1;
gamePanel[Ran3+1][Ran4] = 1;
gamePanel[Ran3+2][Ran4] = 1;
break;
}
}
while(true) { //병아리
Ran5 = (int)(Math.random()*10);
Ran6 = (int)(Math.random()*10);
if( Ran6 > 7)
continue;
if(gamePanel[Ran5][Ran6] == -1 && gamePanel[Ran5][Ran6+1] == -1 && gamePanel[Ran5][Ran6+2] == -1) {
gamePanel[Ran5][Ran6] = 2;
gamePanel[Ran5][Ran6+1] = 2;
gamePanel[Ran5][Ran6+2] = 2;
break;
}
}
while(true) {
System.out.println("바의 좌표를 입력하세요!");
System.out.print(" X = ");
x = input.nextInt();
System.out.print(" Y = ");
y = input.nextInt();
totalHitCount++;
switch(gamePanel[x][y]) {
case 4: //이미 입력받은 경우
System.out.println("입력된 좌표 입니다.");
case 0: //송아지를 선택한경우
if( gamePanel[x][y] == 0 && y == Ran2) {
System.out.println(" >>> "+ barObject[0].getBarName()+ "'송'이 있습니다 ");
gamePanel[x][y] = 4;
barObject[0].setHitCount(barObject[0].getHitCount()+1);
}
if( gamePanel[x][y] == 0 && y == Ran2+1) {
System.out.println(" >>> "+ barObject[0].getBarName()+ "'아'이 있습니다");
gamePanel[x][y] = 4;
barObject[0].setHitCount(barObject[0].getHitCount()+1);
}
if( gamePanel[x][y] == 0 && y == Ran2+2) {
System.out.println(" >>> "+ barObject[0].getBarName()+ "'지'이 있습니다");
gamePanel[x][y] = 4;
barObject[0].setHitCount(barObject[0].getHitCount()+1);
}
if( barObject[0].getHitCount() == 3)
System.out.println("성공! '송아지' 바를 제거했습니다");
break;
case 1: //강아지를 선택한경우
if( x == Ran3 && gamePanel[x][y] == 1) {
System.out.println(" >>> "+ barObject[1].getBarName()+ "'강'이 있습니다");
gamePanel[x][y] = 4;
barObject[1].setHitCount(barObject[1].getHitCount()+1);
}
if( x == Ran3+1 && gamePanel[x][y] == 1) {
System.out.println(" >>> "+ barObject[1].getBarName()+ "'아'이 있습니다");
gamePanel[x][y] = 4;
barObject[1].setHitCount(barObject[1].getHitCount()+1);
}
if( x == Ran3+2 && gamePanel[x][y] == 1) {
System.out.println(" >>> "+ barObject[2].getBarName()+ "'지'이 있습니다");
gamePanel[x][y] = 4;
barObject[1].setHitCount(barObject[1].getHitCount()+1);
}
if( barObject[1].getHitCount() == 3)
System.out.println("성공! '강아지' 바를 제거했습니다");
break;
case 2: //병아리를 선택한경우
if( gamePanel[x][y] == 2 && y == Ran6) {
System.out.println(" >>> "+ barObject[2].getBarName()+ "'병'이 있습니다");
gamePanel[x][y] = 4;
barObject[2].setHitCount(barObject[2].getHitCount()+1);
}
if( gamePanel[x][y] == 2 && y == Ran6+1) {
System.out.println(" >>> "+ barObject[2].getBarName()+ "'아'이 있습니다");
gamePanel[x][y] = 4;
barObject[2].setHitCount(barObject[2].getHitCount()+1);
}
if( gamePanel[x][y] == 2 && y == Ran6+2) {
System.out.println(" >>> "+ barObject[2].getBarName()+ "'리'이 있습니다");
gamePanel[x][y] = 4;
barObject[2].setHitCount(barObject[0].getHitCount()+1);
}
if( barObject[2].getHitCount() == 3)
System.out.println("성공! '병아리' 바를 제거했습니다");
break;
default:
System.out.println(" >>> 바가 없습니다");
}
if( barObject[0].getHitCount() == 3 && barObject[1].getHitCount() == 3 && barObject[2].getHitCount() == 3) {
System.out.println("게임종료! 모든 바를 "+totalHitCount+"회 반복으로 제거하였습니다.");
break;
}
}
}
public static void main(String[] args) {
GuessGame game = new GuessGame();
game.play();
}
}
===== bar.java 클래스
package guessgame;
public class Bar {
String barName;
int hitCount;
public String getBarName() {
return barName;
}
public int getHitCount() {
return hitCount;
}
public void setBarName(String barName) {
this.barName = barName;
}
public void setHitCount(int hitCount) {
this.hitCount = hitCount;
}
}
넷빈즈로 돌린건데 자꾸 오류가뜨네.... NullPointer Exception 이라고.....Exception in thread "main" java.lang.NullPointerException at guessgame.GuessGame.play(GuessGame.java:13) at guessgame.GuessGame.main(GuessGame.java:148) Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds)