자바(java) 빙고 소스 프로그램

category IT정보나눔 2013. 5. 12. 11:51

소스코드는 짧을 수록 좋긴 한데 너무 짧으면 문제가 생깁니다. 다른 사람들이 이해를 못하거나 나중에 주석을 달아놓으면 모를까 코딩한 자신인 본인도 헷갈리기도 합니다. 하지만 쓸데 없이 긴 소스코드 보다는 짧은 것 낫겠죠.

 

같은 소스인데 길이가 좀 다르네요. 그래도 본인이 혼자 했다는 사실 자체가 중요하겠죠. 스스로 할 수 있는 능력을 키워보세요. 알고리즘은 같다고 볼 수 있습니다.

 

//빙고게임입니다.

class Show {
 char[][] bingo = {{'1','2','3'}, {'4','5','6'}, {'7','8','9'}}; // 빙고판
 void bingo_show(){
  for(int i=0;i<bingo.length;i++) // bingo.length(배열 크기를 나타내는 참조변수) 행 나타내는 반복문
  {
   for(int j=0;j<bingo.length;j++) // bingo.length(배열 크기를 나타내는 참조변수) 행 나타내는 반복문
  System.out.print(bingo[i][j]+" "); 
   System.out.println();
  }
 }
 
 void Game_Main_X()throws java.io.IOException
 {
  int number; // 빙고 선택한 숫자 입력값 저장 변수
  bingo_show();
  System.out.println("빙고 숫자 선택해라");
 
  number = System.in.read();
  System.in.read(); // 숫자 선택하고 밑에 다음선수 빙고 숫자 선택할 수 있게 입력받은걸 비워줍니다.
  System.in.read();
  
  for(int i=0;i<bingo.length;i++)
     {
       for(int j=0;j<bingo.length;j++)
       {
        if(bingo[i][j]==number)
    {
       bingo[i][j]='X';
       bingo_show();
            if(bingo[0][0]=='X'&&bingo[0][1]=='X'&&bingo[0][2]=='X'||bingo[1][0]=='X'&&bingo[1][1]=='X'&&bingo[1][2]=='X'||bingo[2][0]=='X'&&bingo[2][1]=='X'&&bingo[2][2]=='X')
      {
           System.out.println("X선수가 이겼습니다.");
           System.exit(0);
      }
            else if(bingo[0][0]=='X'&&bingo[1][0]=='X'&&bingo[2][0]=='X'||bingo[0][1]=='X'&&bingo[1][1]=='X'&&bingo[2][1]=='X'||bingo[0][2]=='X'&&bingo[1][2]=='X'&&bingo[2][2]=='X')
           {
          System.out.println("X선수가 이겼습니다.");
          System.exit(0);
           }
            else if(bingo[0][0]=='X'&&bingo[1][1]=='X'&&bingo[2][2]=='X'||bingo[0][2]=='X'&&bingo[1][1]=='X'&&bingo[2][0]=='X')
           {
          System.out.println("X선수가 이겼습니다.");
          System.exit(0);
           }
       System.out.println();
       Game_Main_O(); // 똑같은 자리에 값이 있을때 재입력
       }
     }
     }
  System.out.println("다시해");
     Game_Main_X();
 }
 
 void Game_Main_O()throws java.io.IOException
 {
  int number; // 빙고 선택한 숫자 입력값 저장 변수
  bingo_show();
  System.out.println("빙고 숫자 선택해라");

  number = System.in.read();
  System.in.read(); // 숫자 선택하고 밑에 다음선수 빙고 숫자 선택할 수 있게 입력받은걸 비워줍니다.
  System.in.read();
  
  for(int i=0;i<bingo.length;i++)
     {
       for(int j=0;j<bingo.length;j++)
       {
        if(bingo[i][j]==number)
    {
       bingo[i][j]='O';
       bingo_show();
       if(bingo[0][0]=='O'&&bingo[0][1]=='O'&&bingo[0][2]=='O'||bingo[1][0]=='O'&&bingo[1][1]=='O'&&bingo[1][2]=='O'||bingo[2][0]=='O'&&bingo[2][1]=='O'&&bingo[2][2]=='O')
     {
          System.out.println("O선수가 이겼습니다.");
          System.exit(0);
     }
           else if(bingo[0][0]=='O'&&bingo[1][0]=='O'&&bingo[2][0]=='O'||bingo[0][1]=='O'&&bingo[1][1]=='O'&&bingo[2][1]=='O'||bingo[0][2]=='O'&&bingo[1][2]=='O'&&bingo[2][2]=='O')
          {
         System.out.println("O선수가 이겼습니다.");
         System.exit(0);
          }
           else if(bingo[0][0]=='O'&&bingo[1][1]=='O'&&bingo[2][2]=='O'||bingo[0][2]=='O'&&bingo[1][1]=='O'&&bingo[2][0]=='O')
          {
         System.out.println("O선수가 이겼습니다.");
         System.exit(0);
          }
       System.out.println();
       Game_Main_X();  // 똑같은 자리에 값이 있을때 재입력
       }
       
       
       }
     }
  
      System.out.println("다시해");
       Game_Main_O();
    
 }
}

 
public class Bingo_Java {
 public static void main(String[] args)throws java.io.IOException
 {
  int player;
  Show s = new Show();      // 빙고판 클래스 참조
  s.bingo_show();           // 빙고판 클래스 불러줍니다.
  
  System.out.println("X,O 선수 중 하고 싶은걸 선택해라");
  player = System.in.read(); 
  System.in.read(); // 선수선택하고 밑에 빙고 숫자 선택할 수 있게 입력받은걸 비워줍니다.
  System.in.read();
  switch(player)
  {
  case 'X' :
  case 'x' :
  {
   System.out.println("X 선수를 선택하셨습니다.");
   s.Game_Main_X();
   break;
  }
  case 'O' :
  case 'o' :
   System.out.println("O 선수를 선택하셨습니다.");
   s.Game_Main_O();
   break;
  }
  
  
}
}

//간단하지만 자바 공부하는데 기초를 다지기에 좋은 예제라고 볼 수 있네요.