본문 바로가기

개발자노트

클래스) 멤버변수와 클래스변수에 이해(모래성게임)

package class04;

// 공유 자원을 통한 모래성게임

import java.util.Random;

class Person {

	String name; // 멤버변수 , 고유한값

	static int sand = 100; // 클래스변수 , 공유자원!!

	boolean game() { // main 문단에 있는 무한루프를 종료조건을 끊어주는 T/F

		Random random = new Random();

		int num = random.nextInt(20) + 1;

		System.out.println(name + "님이 " + num + " 가져갑니다..");

		sand -= num;

		System.out.println("남은 모래: " + sand);

		System.out.println();

		if (sand <= 0) {

			System.out.println(name + "님, 게임오버!");

			return true;

		}

		return false;

	}

	Person(String name) {

		this.name = name;

	}

}

public class Test08 {

	public static void main(String[] args) {

		Person[] p = new Person[3]; // int[] arr=new int[3];

		// 객체를 담아야 하기 때문에, 객체배열, 안에 요소가 객체인 것!

		p[0] = new Person("홍길동"); // arr[0]=10;

		p[1] = new Person("아리"); // arr[1]=20;

		p[2] = new Person("티모"); // arr[2]=30;

		int i = 0;

		while (true) {

			if (p[i].game()) { // 1회전 하면서 누가 true(게임오버)를 만나는지 구하는 로직

				break; // true를 만나면 break;

			}

			i++;

			if (i == p.length) { // 만약에 1회전을 했는데 true(게임오버)를 만난 사람이 없다면, i=0으로 바꿔서 다시 0번인덱스에 있는 사람부터 다시 구하기로직

				i = 0;

			}

		}

	}

}