«   2025/09   »
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
Tags more
Archives
Today
Total
관리 메뉴

장미의 개발일기

팀 스터디 (4월 14일 금요일) 주제 1: while문으로 게임 작성 본문

개발일기/팀스터디 및 프로젝트+면접 질응답 정리

팀 스터디 (4월 14일 금요일) 주제 1: while문으로 게임 작성

민장미 2023. 4. 15. 21:45

국비과정 스터디 

4월 13일 목요일에 해봤던 동전 넣고 숫자맞추는 게임을 For문을 이용해서 코딩해봤는데

내가 이걸 while을 사용해서 다시 해보자고 제안했다.

 

확실히 다른 사람들이 짠 코드를 보니 나랑 달라서 흥미로웠음

 

//동전을 입력하면 숫자맞추는 게임을 할 수 있다. 

//1. 동전을 입력 받는다. 500원 이면 기회 5번 :

//2. 1회 실행시 횟수를 감소 시킨다.

//3. 기회가 남은 횟수를 표기한다.

//4. 기회를 다 소진하면 메세지와 정답을 알려준다.*

//5. 정답을 맞췄을경우 축하메세지

//6. try catch. 정수범위: 랜덤에서 이미 정해짐?

//7. for문 사용 

 

먼저 목요일에 For문으로 작성해본 코드: 

package team_play;

import java.util.Scanner;

public class Team_NumberGame2_For {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		System.out.println("동전을 입력하세요: 500원이면 5번 =>");
		int coin = Integer.parseInt(sc.nextLine()); // 내가 입력한 코인 값을 저장하는 변수
		int chance = coin / 100; // 기회 횟수를 저장하는 변수

		int money = coin % 100;
		System.out.println("거스름돈은 " + money + "원 입니다.");

		System.out.println("1부터 100까지의 숫자를 맞춰보세요! 기회는 " + chance + "번");
		int comNum = (int) Math.random() * 100 + 1; // 1~100사이의 랜덤 수 발생 // 루프 밖에다가 선언해

		for (int i = 1; i <= chance; i++) {

			int myNum = Integer.parseInt(sc.nextLine()); // 내가 입력하는 1~100 사이의 수
			System.out.println(i + "번째 시도: " + myNum);

			if (myNum == comNum) {
				System.out.println(myNum + "정답입니다. 축하합니다!");
			} else {
				if (myNum > comNum) {
					System.out.println(myNum + "보다 작은 수를 입력하세요");
				} else {
					System.out.println(myNum + "보다 큰 수를 입력하세요");
				}
			}

			if (i == chance) {
				System.out.println("기회를 모두 소진하셨습니다. 정답은 " + comNum + " 입니다.");
			}
		} // for
	}
}

 

어제 스터디 시간에 While문으로 작성해본거

 

나는 당연하게 조건식에 true 넣어서 무한루프문을 만드는 것을 생각해서 제안한건데

많은 팀원분들이 조건식에 ( 기회 >0 ) 이런식으로 작성하셔서 흥미로웠다.

잘 하시는 분한테 바로 코치도 받을 수 있고 스터디가 이런 재미인가 싶었음~~ 

package team_play;

import java.util.Scanner;

public class Team_NumberGame2_While {
	public static void main(String[] args) {
		
		Scanner sc =new Scanner(System.in);
		
		System.out.println("동전을 입력하세요:500월 이면 5번 =>");
		int coin = Integer.parseInt(sc.nextLine()); //내가 입력한 동전 값을 저장하는 변수
		int chance = coin/100; //기회 횟수를 저장하는 변
		int total = 0; // ** 기회와 총 횟수를 분리해보자. 게임전이니 0으로 초기화 
		
		int money = coin % 100;
		System.out.println("거스름돈은 " + money + "원 입니다.");
		
		System.out.println("1부터 100사이의 숫자를 맞춰보세요! 기회는 "+chance+"번");
		int comNum = (int)Math.random()*100+1;     //컴이 만들어내는 1~100사이 랜덤의 수
		//루프문 밖에 소환해야한다. 그래야 반복안하니까
		//기회와 게임플레이 횟수는 다르다?? 
		
		//증감자던 뭐던 안넣어서 중단이 안됌 
		while(total!=chance) {
		int myNum = Integer.parseInt(sc.nextLine()); // 내가 입력한 1~100사이의 수
		    total++; //+*****
			System.out.println((total)+"번째 시도"); //total+1보다 좋은방법? =>total++위치
			
		if(myNum==comNum) {
			System.out.println(myNum+"정답입니다. 축하합니다!");
			break;
		}else{
			if(myNum > comNum) {
				System.out.println(myNum+"보다 작은 수를 입력하세요");
			}else {
				System.out.println(myNum+"보다 큰 수를 입력하세요");
			} 
		}
		if(total==chance) {
			System.out.println("기회를 모두 소진했습니다. 정답은 "+comNum+" 입니다.");
			break;
		}	 
		}//while
	}
}