My footsteps

일요일 혼공 / (오목 게임 함수화,생활코딩 static) 본문

Develop/곤부📙

일요일 혼공 / (오목 게임 함수화,생활코딩 static)

밀김 2023. 3. 19. 12:53
728x90

 

 

 

 

package sunday;

import java.util.Scanner;

import saturday.Omok;

public class OmokSimulator {
	public static void main(String[] args) {
		

		OmokList list = new OmokList();
		//초기화
		list.initOmokList();

		//게임 스타트
		list.startOmokList();
	    
		
	    while(true) {

	    	//좌표 입력 및 중복 검사
	    	list.inputOmokList();
 	
	    	//최종 출력
	    	list.printOmokList();
	    	
	    }//while

	    
	    
	}

}

 

 

 

package sunday;

import java.util.Scanner;

public class OmokList {
	String[][] omoks;
	
	//초기화
	public void initOmokList() {
		omoks = new String[10][10];
	}
	
	
	//게임 스타트
	public void startOmokList() {
		
		Omok omok = new Omok();
		
	    for(int i=0;i<10;i++) { //행
	    	for(int j=0;j<10;j++) { //열
	    		omoks[i][j] = omok.getShape();
	    		System.out.print(omoks[i][j]);//바둑판 출력
	    	}
	    	System.out.println();
	    }
	    System.out.println("★오목 게임 시작!★");
	}
	
	
	//좌표 입력 및 중복 검사
	public void inputOmokList() {
		
		Omok omok = new Omok();
		
    	Scanner scan = new Scanner(System.in);
    	
    	
    	while(true) {
    		if(omok.index%2==1) {             
    			System.out.printf("[턴 %d %s돌 입력]\n",omok.index,omok.name1);
    		}else
    			System.out.printf("[턴 %d %s돌 입력]\n",omok.index,omok.name2);
    		omok.num = scan.nextInt();
    		omok.num2 = scan.nextInt();
    		
    		if(omoks[omok.num][omok.num2]==omok.shape) {                          
    			if(omok.index%2==1) {
    				omoks[omok.num][omok.num2]= "●";
    			}else {
    				omoks[omok.num][omok.num2]= "○";   
    			}
    			omok.index++;
    		}else
    			System.out.println("이미 놓여진 자리입니다.");
    		printOmokList();
    	}
		    
	}

	
	//최종 출력
	public void printOmokList() {
	    for(int i=0;i<10;i++) { //행
		       for(int j=0;j<10;j++) { //열
		    	   System.out.print(omoks[i][j]);
		       }
		       System.out.println();
		 } 
	}
	
	
	
}

 

 

package saturday;

public class Omok {
    int index=1;
    String name1 = "흑";
    String name2 = "백";
    String shape = "┼";
    
    
	public int getIndex() {
		return index;
	}
	public void setIndex(int index) {
		this.index = index;
	}
	
	
	public String getName1() {
		return name1;
	}
	public void setName1(String name1) {
		this.name1 = name1;
	}
	
	
	public String getName2() {
		return name2;
	}
	public void setName2(String name2) {
		this.name2 = name2;
	}
	
	
	public String getShape() {
		return shape;
	}
	public void setShape(String shape) {
		this.shape = shape;
	}
	
    
}

 

 

 


 

 

https://youtu.be/tcxf9epFD_U

 

 

 

- static : 클래스 메소드 / no-static: 인스턴스 메소드

 

- 메소드가 인스턴스(클래스를 통해서 구현해야할 대상이 실제로 구현된 구체적인 실체) 소속일때는 static을 빼줘야 한다

 

- 반대로 메소드가 class소속일때는 static을 붙여줘야 한다

 

 

 

 

 

728x90

'Develop > 곤부📙' 카테고리의 다른 글

일요일 혼공 / (자바스크립트 onclick)  (0) 2023.03.26
토요스터디 / 5주차  (0) 2023.03.25
토요스터디 / 4주차  (0) 2023.03.18
쪽지시험 / 2  (0) 2023.03.18
토요스터디 / 3주차 (자리바꾸기 꿀팁 코드)  (0) 2023.03.12