오징어 게임 징검다리 건너기

김민혁·2021년 11월 23일
0

Java 코드뭉치

목록 보기
3/5

콘솔창에서 구현한 오징어게임 다리건너기입니다.
게임을 시작하고 왼쪽,오른쪽중에 한 곳을 골라서
입력하면 생존하거나 사망합니다. 유리는 18개 참가자는
16명입니다. 제작일시는 21.11.09 소요시간은 2시간입니다.

소스코드

package squidGame;

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

public class Main {
	
	public static void progress(String[][] arr_glass,int turn) {
		for (int i = 0; i < arr_glass.length; i++) {
			System.out.print("│");
			for (int j = 0; j < arr_glass[i].length; j++) {
				System.out.print("   "+arr_glass[i][j]+"   ");
			}
			System.out.print("│");
			if(i==turn+1) System.out.println("<-------현위치");
			else System.out.println();
		}
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		
		while(true) {
			int index = 17;
			int turn = 17;
			int life = 16;
			boolean[][] arr_bool = new boolean[18][2];
			String[][] arr_glass = new String[18][2];
			for (int i = 0; i < arr_bool.length; i++) {
				arr_bool[i][0] = new Random().nextBoolean();
				arr_bool[i][1] = !arr_bool[i][0];
				for (int j = 0; j < arr_bool[i].length; j++) {
					arr_glass[i][j] = "□";
					//System.out.print(arr_bool[i][j]);
				}
				//System.out.println();
			}
		System.out.println("★☆★☆★☆★☆★☆오징어 게임 다리 건너기★☆★☆★☆★☆★☆");
		System.out.println("1.게임 시작 2.게임 방법");
		int ch = sc.nextInt();
		if(ch == 1) {
			while(true) {
			Main.progress(arr_glass,turn);
			System.out.println(17-life+"번 참가자 도전!");
			System.out.println("당신의 선택은?\n1.왼쪽 2.오른쪽");
			int ch2 = sc.nextInt();
			if(ch2==1||ch2==2) {
//				try {
//					System.out.println("점프중.....");
//					Thread.sleep(2000);
//				} catch (InterruptedException e) {
//					e.printStackTrace();
//				}
				if(arr_bool[index][ch2-1]==true) {
				System.out.println("성공!");
				index--;
				turn--;
				}
				else {
					System.out.println("사망!"); 
					arr_glass[index][ch2-1] = " ";
					index = 17;
					turn = 17;
					life--;
				}
				
			}	
			else System.out.println("올바른 숫자를 입력해주세요");
			if(life==0) {
				System.out.println("게임 오버");
				break;
				}
			if(turn ==-1) {
				System.out.println("우승!!!!!!!!!!!");
				break;
			 }
			}
		}
		else if (ch ==2) System.out.println("오징어게임 보고 오세요");	
		else System.out.println("올바른 숫자를 입력해주세요");
		}
		
		
		
	}

}

설명

변수

arr_bool
-> 18행 2열의 boolean 배열입니다.
arr_bool[x][0] 번째에 랜덤한 boolean값을 할당하고 arr_boll[x][1]에는 그와 반대되는 값을 할당합니다.
이렇게 할당된 값으로 true일때 성공 false일때 실패를 처리해 줍니다.

arr_glass
-> 18행 2열의 String 배열입니다.
모든 요소를 'ㅁ'로 초기화하고 실패했을때 ' ' 공백을 넣어 유리가 깨진것을 표현했습니다.

progress()

-> 현재 유리의 상태와 현 위치를 보여주는 메소드

실행화면

후기

기존에 머릿속으로 구상해놨던 코드여서 실제로 만드는데 시간이 짧게 걸렸다.
나중에 유리공장 아저씨도 만들어서 스킬추가도 해봐야겠다.

profile
안녕하세요 김민혁입니다.

0개의 댓글