티스토리 뷰

문제 설명

 

 

 

실패안 1

package NewProject;

 

import java.util.Random;

import java.util.Scanner;

 

class Monkey{

	String color;

	int bomul;

	public String getColor() {

		return color;

	}

	public void setColor(String color) {

		this.color = color;

	}

	public int getBomul() {

		return bomul;

	}

	public void setBomul(int bomul) {

		this.bomul = bomul;

	}

	//원숭이가 말하기

	public void print() {

		if(bomul==1) {

			System.out.println(getColor() + " 원숭이가 물건을 가지고 있습니다.");

		}else {

			System.out.println(getColor() + " 원숭이가 물건을 가지고 있지 않습니다.");

		}

	}

}

 

class GameStart{

	Random r = new Random();

	int start = 0; //시작 인덱스 (빨간원숭이)

 

	Monkey[] mk = new Monkey[5];

	String[] color = {"빨강","노랑","파랑","초록","검정"};

	int[] num = {1,0,0,0,0}; //1이란 숫자를 상자로 간주함

	GameStart() {

		//5마리의 원숭이 객체를 만들어주고 각각 색과 상자를 넣어줌 

		for(int i=0;i<mk.length;i++) {

			mk[i] = new Monkey();

			mk[i].setColor(color[i]);

			mk[i].setBomul(num[i]);

		}

	}

 

	public void give() {

 

		int index = 0;

		int a = r.nextInt(2); // 1(우), 0(좌)

		int b = r.nextInt(5)+1; //1 ~ 5 이동거리

 

		System.out.println(a);

		System.out.println(b);

 

		if(a == 1) { //오른쪽으로 이동

			System.out.println("오른쪽으로 이동");

			if(start+b > 4) { //오른쪽으로 이동때 인덱스 4를 초과했을경우

				index = (start + b - 4) -1; //초과한 값만큼을 추출하여 거기서 -1

 

				int first = mk[start].getBomul();

				int second = mk[index].getBomul();

 

				mk[start].setBomul(second);

				mk[index].setBomul(first);

 

			}else {

				index = start + b;

 

				int first = mk[start].getBomul();

				int second = mk[index].getBomul();

 

				mk[start].setBomul(second);

				mk[index].setBomul(first);

 

 

			}

		}else if(a == 0){//왼쪽으로 이동

			System.out.println("왼쪽으로 이동");

			if(start-b < 0) { //오른쪽으로 이동때 인덱스 0를 미만했을 경우

				index = (4-start-b) +1; //미만한 값만큼을 추출하여 거기서 +1

 

				int first = mk[start].getBomul();

				int second = mk[index].getBomul();

 

				mk[start].setBomul(second);

				mk[index].setBomul(first);

 

			}else {

				index = start + b;

 

				int first = mk[start].getBomul();

				int second = mk[index].getBomul();

 

				mk[start].setBomul(second);

				mk[index].setBomul(first);

 

			}

 

		}

		index = 0;

 

 

 

	}

}

 

 

 

 

public class Start {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

 

 

		GameStart gs = new GameStart();

		System.out.println("-----원래 위치-----");

		for(int i=0;i<gs.mk.length;i++) {

			gs.mk[i].print();

		}

		while(true) {

			System.out.println("물건 돌리기 시작(1) 종료(2)");

			int start = sc.nextInt();

			if(start == 1) {

				gs.give();

				for(int i=0;i<gs.mk.length;i++) {

					gs.mk[i].print();

				}

			}else if(start == 2){

				System.out.println("프로그램 종료");

				break;

			}else {

				System.out.println("다시 입력");

			}

 

		}

 

 

 

 

	}

}

실패안 2

package NewProject;

import java.util.Random;
import java.util.Scanner;

class Monkey{
	String color;
	int bomul;
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public int getBomul() {
		return bomul;
	}
	public void setBomul(int bomul) {
		this.bomul = bomul;
	}
	//원숭이가 말하기
	public void print() {
		if(bomul==1) {
			System.out.println(getColor() + " 원숭이가 물건을 가지고 있습니다.");
		}else {
			System.out.println(getColor() + " 원숭이가 물건을 가지고 있지 않습니다.");
		}
	}
}

class GameStart{
	Random r = new Random();
	

	Monkey[] mk = new Monkey[5]; 
	String[] color = {"빨강","노랑","파랑","초록","검정"};
	int[] num = {1,0,0,0,0}; //1이란 숫자를 상자로 간주함
	GameStart() {
		//5마리의 원숭이 객체를 만들어주고 각각 색과 상자를 넣어줌 
		for(int i=0;i<mk.length;i++) {
			//원숭이 객체 5개 만들기
			mk[i] = new Monkey(); 
			//원숭이 객체에 순서대로 색깔과 상자여부를 넣어줌
			mk[i].setColor(color[i]); 
			mk[i].setBomul(num[i]);
		}
	}

	public void give() {
		Scanner sc = new Scanner(System.in);
		int start = 0; //시작 인덱스 (빨간원숭이)

		while(true) {
			System.out.println("물건 돌리기 시작(1) 종료(2)");
			int start2 = sc.nextInt();
			int index = 0;
			
			if(start2 == 1) {
				
				int a = r.nextInt(2); // 1(우), 0(좌)
				int b = r.nextInt(5)+1; //1 ~ 5 이동거리

				System.out.println(a);
				System.out.println(b);

				if(a == 1) { //오른쪽으로 이동
					System.out.println("오른쪽으로 이동");
					if(start+b > 4) { //오른쪽으로 이동때 인덱스 4를 초과했을경우
						index = (start + b - 4) -1; //초과한 값만큼을 추출하여 거기서 -1

						int first = mk[start].bomul;
						int second = mk[index].bomul;

						mk[start].setBomul(second);
						mk[index].setBomul(first);

					}else {
						index = start + b;

						int first = mk[start].bomul;
						int second = mk[index].bomul;

						mk[start].setBomul(second);
						mk[index].setBomul(first);


					}
				}else if(a == 0){//왼쪽으로 이동
					System.out.println("왼쪽으로 이동");
					if(start-b < 0) { //오른쪽으로 이동때 인덱스 0를 미만했을 경우
						index = (4-start-b) +1; //미만한 값만큼을 추출하여 거기서 +1

						int first = mk[start].bomul;
						int second = mk[index].bomul;

						mk[start].setBomul(second);
						mk[index].setBomul(first);

					}else {
						index = start + b;

						int first = mk[start].bomul;
						int second = mk[index].bomul;

						mk[start].setBomul(second);
						mk[index].setBomul(first);

					}

				}
				int j = 0;
				for(int i=0;i<mk.length;i++) {
					mk[i].print();
					if(mk[i].bomul == 1) {
						j = i;
					}
				}
				
				start = j; //상자가 있는 위치에 인덱스 값을 start 지점으로 놓아줌.
			}else if(start2 == 2) {
				System.out.println("프로그램 종료");
				break;
			}else {
				System.out.println("다시 입력");
			}
		}
	}
}




public class Start {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);


		GameStart gs = new GameStart();
		System.out.println("-----원래 위치-----");

		for(int i=0;i<gs.mk.length;i++) {
			gs.mk[i].print();
		}

		gs.give();




	}
}

 

 

아예 내가 못할 것 같으면 다음에 하자 ~ 강사님께 여쭤보자 ~ 등 할텐데 뭔가 될 것 같은데 계속 안되니까 약오른다;;

2~3번 플레이하면 정상적으로 되다가도 갑자기 엉뚱하게 되고 그런다 이유를 모르겠다...일단 마찬가지로 강사님께 질문은 보내놓은 상태

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함