JAVA 간단한 게임 만들기 - 가위바위보, 로또게임 만들어보기

2022. 2. 19. 15:44JAVA

728x90

가위바위보 게임 만들기

package random;

import java.util.Scanner;

public class EX02 {

	public static void main(String[] args) {
		
		// 가위바위보
		
		Scanner scan = new Scanner(System.in);
		
		boolean bool = true;
		
		while(bool) {
			System.out.println("숫자하나를 선택해주세요 ");
			System.out.println("1 : 가위 , 2 : 바위, 3 : 보, 4 : 게임종료");
			int choice = scan.nextInt();
			int random = (int)(Math.random() *3)+ 1;
			String myChoiceStr = " ";
			
			switch(choice) {
			
			case 1:
				myChoiceStr = "가위";
				if(random == 1) {
					System.out.println("다시!");
					
					
				}
				else if(random == 2) {
					System.out.println("패배");
					
				}
				else {
					System.out.println("승리");
					
				}
				break;
			case 2:
				myChoiceStr = "바위";
				if(random == 1) {
					System.out.println("승리");
					
				}
				else if(random == 2) {
					System.out.println("다시");
					
				}
				else {
					System.out.println("패배");
					
				}
				break;
			case 3:
				myChoiceStr = "가위";
				if(random == 1) {
					System.out.println("패배");
					
				}
				else if(random == 2) {
					System.out.println("승리");
				
				}
				else {
					System.out.println("다시");
					
				}
				break;
			case 4:
				System.out.println("게임 종료하겠습니다.");
				System.exit(0);
			default:
				System.out.println("수를 잘못 입력했습니다.");
				break;
			}
		}
		scan.close();
		
	}

}

가위바위보 게임 만들 때 얻어간 것들

1. swich~break는 한 몸이다. 만약 switch문에 break가 없다면 해당하는 case이후부터 쭉 실행된다.

2. break문은 가장 가까이 있는 반복문을 빠져나간다.(if문 빠져나가는 것이 아니다.)

3. System.exti(0) 는 프로그램을 강제 종료하는 것이다.

4. Math.random() 메소드는 0.0과 1.0 사이에 속하는 double타입의 임의의 수 하나를 주는 것이다.

 

 

로또 게임 만들기

package random;

import java.util.Scanner;

public class EX03 {

	public static void main(String[] args) {
		// 로또 정수 1~45까지 숫자 6개뽑고 다 맞으면 그리고 숫자 6개에 중복수가 있으면 안된다.
		// 0      1       2      3       4      5 
		// 로또 생성했으니깐 -> 사용자가 로또 6자리를 입력후 다 맞으면 1등, 
		
		int count=0;
		Scanner scan = new Scanner(System.in);
		int lotto[] = new int[6];
		int number[] = new int[6];
		
		for(int i=0;i<6;i++) {
			lotto[i] = (int)(Math.random()*45)+1;
			for(int j=0;i>j;j++) {
				if(lotto[i] == lotto[j]) {
					i -=1;
					break; // 조금 더 효율적이게 동작 가능
				}
			}
		}
		
		// 내가 입력한 수도 1~45까지만 받고 중복수가 없어야한다.
		System.out.println("로또번호 6자리를 입력해주세요 : ");
		for(int k=0;k<6;k++){
			System.out.print(k + "번째자리 입력 : ");
			number[k] = scan.nextInt();
			if(number[k] >45) {
				k--;
				System.out.println("45이하의 수를 입력해주세요.");
				continue;
			}
			for(int m=0;k>m;m++) {
				if(number[m] == number[k]) {
					k--;
					System.out.println("서로다른 수를 입력해주세요");
					break;
				}
		}
		}
		// 맞힌 개수(count) 알아보기
		for(int j=0;j<6;j++) {
			for(int i=0; i<6;i++) {
				if(lotto[j] == number[i]) {
					count++;
				}
			}
		}
		
		System.out.print( + count + "개 일치!");
		System.out.println("로또번호 6자리!");
		for(int l=0;l<6;l++){
			System.out.print("이번주 로또 번호는 :");
			System.out.println(lotto[l] + "입니다.");
		}
	}
	
}

지금까지 공부했던 배열, 반복문, if문을 복습해보기 좋았다.

 

이상입니다.

728x90