캡슐 이해 (오목)

개발/코딩 2013. 10. 7. 15:50

package com.newlecturegame;

public class Program {
 public static void main(String[] args){
  MenuView menuView=new MenuView();   //객체 생성
  GameView gameView=new GameView();
  RankView rankView=new RankView();
  
  menuView.print();         //메인메뉴 화면 출력, print 선택하고 F3누르면 해당 프린트로 이동
  int menu=menuView.input();     //메인메뉴에서 메뉴 선택
  
  switch(menu)
  {
  case 1:
   gameView.print();   //게임 선택시 게임화면 출력
   break;
  case 2:
   break;
  }
 }

}

=====================================================================================

package com.newlecturegame;

import java.util.Scanner;

public class MenuView {
 public void print() {
  System.out.println("1. 1인용");
  System.out.println("2. 순위보기");
  System.out.println("3. 종료하기");
  System.out.print(">");
 }

 public int input() {
  Scanner scan=new Scanner(System.in);  //메뉴 입력
  int menu=scan.nextInt();
  
  return menu;
 }
}
=====================================================================================

package com.newlecturegame;

public class GameView {
 private OmokBoard board; // GameView 가 보드,상태바,겜메뉴를 포함하고 있다.
 private StatusBar statusBar;
 private GameMenu menu;

 public GameView() { // 생성자 Ctrl+Space+Enter누르면 자동 생성
  board = new OmokBoard(30,20); // 객체 생성,(오목 보드 크기 생성)
  statusBar = new StatusBar();
  menu = new GameMenu();
 }

 public void print() { // print 할거 모아놈
  board.print(); // .print 빨간줄 클릭하면 함수 생성.
  statusBar.print();
  menu.print(); //게임화면 메뉴 프린트
  
  switch(menu.input()) { //게임화면에서 메뉴 입력
  case 1:
   Omok omok=new Omok();  //오목 생성
   omok.input();
   board.put(omok);  //보드에 오목을 둬야한다.
   break;
  case 2:
   break;
  case 3:
   break;
  default:
   break;
  }
 }
}

===================================================================================

package com.newlecturegame;

import java.util.Scanner;

public class GameMenu {

 public void print() {
  System.out.println("1>오목두기\n2>한수봐줘\n3>도움말");  
 }
 public int input() {
 /* MenuView menu=new MenuView();  메뉴뷰에 있는 input가져올수있다.*/
  System.out.print("선택 :");
  Scanner scan=new Scanner(System.in);  //게임화면에서 메뉴 입력
  int menu=scan.nextInt();
  return menu;
 }
}
=================================================================================

package com.newlecturegame;

import java.util.Scanner;

public class Omok {
 private int x;
 private int y;
 private int type;
 
 public void input(){
  
 System.out.println("(x,y)를 입력해주세요.");
 Scanner scan=new Scanner(System.in);
 x=scan.nextInt();
 y=scan.nextInt();
 }
}

=================================================================================

package com.newlecturegame;

public class OmokBoard {
 
 private char [][] buf; //연산자가 들어갈수없다. 함수안에서만 연산자 가능
 private int width;    //너비
 private int height;   //높이
 
 public OmokBoard(int width,int height){   //GameView에서 입력받는다.
  this.width=width;
  this.height=height;
  int i,j;
  buf=new char[height][width];   //세로,가로
  for(i=0;i<height;i++){
   for(j=0;j<width;j++){
   buf[i][j]='┼';
  }
 }
}
 public void print() {    //바둑판 출력
  int i,j;
  for(i=0;i<height;i++){
   for(j=0;j<width;j++){
 
   System.out.printf("%c",buf[i][j]);
   }
   System.out.println();
  }
 }
 public void put(Omok omok) { //GameView,board.put(omok);에서 빨간줄 클릭해서 생성
 }

}

=================================================================================

package com.newlecturegame;

public class RankView {

}

=================================================================================

package com.newlecturegame;

public class StatusBar {

 public void print() {
  System.out.println("turn : KCH");
  
 }

}

 

 


 

'개발 > 코딩' 카테고리의 다른 글

삽입 정렬  (0) 2013.10.11
그림 파일불러오기  (0) 2013.10.10
get,set이용해서 성적입력 Ver2  (0) 2013.10.02
상속(예제)  (0) 2013.10.01
get,set이용해서 성적입력.  (0) 2013.10.01