코딩/자바

[자바] 사다리 타기 게임 소스코드

매콤한 번데기탕 2020. 9. 23. 15:24

 

import java.util.*;

public class RedrawLadder2 {

	Scanner scan = new Scanner(System.in);
	PeopleNumber pn = new PeopleNumber();
	DrawLadder dl = new DrawLadder();
	
	Random random = new Random();
	
	String [] arr = {"│", "├", "──", "┤"};
	int b = 0;
	
	
	public void redrawLadder(int a, int height, String[] stuff, String[] name, String[] c) {

		for(int i = 0; i < c.length; i++) {
			System.out.print((i + 1) + ". " + name[i]);
			for(int j = 0; j < 5; j++) {
				System.out.print(" ");
			}
		}
		
		System.out.println();
		
		for(int i = 0; i < stuff.length; i++) {
			System.out.print((i + 1));
			for(int j = 0; j < 5; j++) {
				System.out.print(" ");
			}
		}
		
		System.out.println();
		
		for(int i = 0; i < a; i++) {
			System.out.print("│");
			for(int j = 0; j < 5; j++) {
				System.out.print(" ");
			}
		}
		
		System.out.println();
		//초반 1번라인 찍는 로직

		
		for(int k = 0; k < (height - 2); k++) {
			for(int i = 0; i < a; i++) {
				
				if(b == 1 && i != 0) {
					b = 3;
				}
				else if(i == a - 1) {
					if(b == 1) {
						b = 3;
					}
					else {
						b = 0;
					}
				}
				else {
					b = random.nextInt(2);
				}
				
				
				System.out.print(arr[b]);
				
				if(b == 1 && i != a - 1) {
					for(int j = 0; j < 5; j++) {
						System.out.print("─");
					}
				}
				else {
					for(int j = 0; j < 5; j++) {
						System.out.print(" ");
					}
				}
				
				if(b == 1) {
					c[i] = name[i + 1];
					c[i + 1] = name[i];
				}
				
				for(int q = 0; q < c.length; q++) {
					name[q] = c[q];
				}
				
			}
				
			System.out.println();
			
			
			
	}
		//중간라인 찍는 로직
		
		
		for(int i = 0; i < a; i++) {
			System.out.print("│");
			for(int j = 0; j < 5; j++) {
				System.out.print(" ");
			}
		}
		
		System.out.println();
		
		for(int i = 0; i < stuff.length; i++) {
			System.out.print((i + 1));
			if(i >= 9) {
				for(int j = 0; j < 4; j++) {
					System.out.print(" ");
				}
			}else {
				for(int j = 0; j < 5; j++) {
					System.out.print(" ");
				}
			}
		}
		
		System.out.println();
		
		for(int i = 0; i < stuff.length; i++) {
			System.out.print((i + 1) + ". " + stuff[i]);
			for(int j = 0; j < 5; j++) {
				System.out.print(" ");
			}
		}
		
		System.out.println();
		System.out.println();
		System.out.println();
		
		//마지막 라인 찍는 로직
		for(int i = 0; i < c.length; i++) {
			System.out.println();
			System.out.print(c[i] + "님 : " + stuff[i]);
		}
	}
}
​
import java.util.*;

public class LadderMain {
	
	Scanner scan = new Scanner(System.in);
	PeopleNumber pn = new PeopleNumber();
	DrawLadder dl = new DrawLadder();
	RedrawLadder2 rl2 = new RedrawLadder2();
	
	public LadderMain() {
		doProcess();
	}
	
	public void doProcess() {
		//참가자 인원을 받는다(경품의 수를 정한다.)
		pn.doProcess();
		//사다리를 그린다.
		dl.drawLadder(pn.a, pn.height, pn.stuff);

		//콘솔창을 초기화한다.
		nullPoint();
		rl2.redrawLadder(pn.a, pn.height, pn.stuff, pn.name, pn.c);
	}
	
	public void nullPoint() {
		for(int i = 0; i < 100; i++) {
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		new LadderMain();
	}
	
}
import java.util.*;

public class PeopleNumber {

	Scanner scan = new Scanner(System.in);
	
	int a;
	int height;
	String [] stuff;
	String [] name;
	String [] c;
	
	public void doProcess() {
		peopleNum();
		peopleName();
		scanStuff();
		scanHeight();
	}
	
	public void peopleNum() {
		System.out.print("참가 인원 수를 입력하세요 : ");
		a = scan.nextInt();
		c = new String [a];
	}
	
	public void peopleName() {
		name = new String[a];
		System.out.print("참가자 이름을 입력하세요 : ");
		for(int i = 0; i < name.length; i++) {
			name[i] = scan.next();
			c[i] = name[i];
		}
		for(int i = 0; i < name.length; i++) {
			System.out.println("이름 : " + (i + 1) + ". " + name[i]);
		}
	}
	
	public void scanStuff() {
		stuff = new String [a];
		System.out.print("경품을 입력하세요: ");
		for(int i = 0; i < stuff.length; i++) {
			stuff[i] = scan.next();
		}
		for(int i = 0; i < stuff.length; i++) {
			System.out.println("경품 : " + (i + 1) + ". " + stuff[i]);
		}
	}
	
	public void scanHeight() {
		System.out.print("높이를 설정해주세요 : ");
		height = scan.nextInt();
	}
	
}
import java.util.*;

public class DrawLadder {

	Scanner scan = new Scanner(System.in);
    Random random = new Random();
	PeopleNumber pn = new PeopleNumber();
	
	public void drawLadder(int a, int height, String[] stuff) {
		for(int i = 0; i < height; i++) {
			for(int j = 0; j < a; j++) {
				for(int k = 0; k < 5; k++) {
					System.out.print(" ");
				}
				System.out.print("│");
			}
			System.out.println();
		}
		for(int i = 0; i < a; i++) {
			for(int j = 0; j < 2; j++) {
				System.out.print(" ");
			}
			System.out.print(stuff[i]);
		}
	}
	
}