Full-Stack 개발자가 되려는 작은 개발자의 블로그
Java 기초를 이용한 로또 프로그램/야구 게임 본문
로또 프로그램
import java.util.Random;
public class LottoProgram {
public static void main(String[] args) {
//로또 번호를 생성할 Random 객채 rand 생성
Random rand=new Random();
//로또 번호를 담을 크기가 6인 정수형 배열
int lottonNum[]=new int[6];
//배열의 크기만큼 i를 반복한다.
for(int i=0;i<lottonNum.length;i++) {
//i번째 배열에 1~45까지의 랜덤 수를 담는다.
lottonNum[i]=rand.nextInt(45)+1;
//j를 0부터 i전까지 반복한다.
for(int j=0;j<i;j++) {
//현재(i)번째 들어간 랜덤 수와 이전(j)번째의 랜덤수와 같다면
if(lottonNum[i]==lottonNum[j]) {
//i를 감소시킨다.
// > i를 감소시켜 i번째 값을 바꾼다.
i--;
//이후 반복은 필요없으므로 j반복문을 나간다.
break;
}
}
}
System.out.println("로또 프로그램");
//배열 길이만큼 k를 반복한다.
for(int k=0;k<lottonNum.length;k++) {
System.out.print(lottonNum[k]+" ");
}
}
}
야구게임 프로그램
import java.util.Random;
import java.util.Scanner;
public class BaseballGame {
public static void main(String[] args) {
//정답을 키보드로 입력받기 위한 Scanner객체 scan 생성
Scanner scan = new Scanner(System.in);
//랜덤한 숫자를 생성 할 Random 객체 rand 생성
Random rand = new Random();
//랜덤한 숫자를 담을 크기가 3인 정수형 배열
int baseNum[] = new int[3];
//입력한 정답을 담을 크기가 3인 정수형 배열
int resNum[] = new int[3];
//숫자는 맞지만 위치가 틀렸을 때를 카운트 할 변수
int ball = 0;
//숫자,위치 모두 맞혔을 때를 카운트 할 변수
int strike = 0;
//도전 횟수를 카운트 할 변수
int cnt = 0;
// 중복없이 맞출 숫자를 생성 > 로또 생성과 같은 과정
for (int i = 0; i < baseNum.length; i++) {
baseNum[i] = rand.nextInt(10);
for (int j = 0; j < i; j++) {
if (baseNum[i] == baseNum[j]) {
i--;
break;
}
}
}
//시험용 > 정답을 미리 알려줌
System.out.println(baseNum[0]+" "+baseNum[1]+" "+baseNum[2]);
//정답을 맞추거나 완전 틀릴때까지 무한 루프
while (true) {
//한 번 시도 할 때마다 값을 0으로 초기화 해준다.
strike=0;
ball=0;
//사용자를 위한 출력 문구
System.out.println("=====================================");
System.out.println("맞출 세 자리 수를 입력 예)3 5 9");
System.out.print(" >");
//세 자리의 숫자를 입력받아 저장한다.
for (int k = 0; k < resNum.length; k++) {
resNum[k] = scan.nextInt();
}
//배열의 길이만큼 반복한다.
for(int l=0;l<baseNum.length;l++){
//배열의 길이만큼 반복한다.
for(int m=0;m<resNum.length;m++){
//정답의 l번째 값과 입력한 정답의 m번째 값이 같고, 위치 또한 같다면
if(baseNum[l]==resNum[m]&&l==m){
//strike를 증가
strike++;
//정답의 l번째 값과 입력한 정답의 m번째 값만 같다면
}else if(baseNum[l]==resNum[m]){
//ball을 증가
ball++;
}
}
}
System.out.println("=====================================");
//시도 횟수를 증가
cnt++;
//strike도 ball도 증가 된 값이 없다면 > 아무것도 맞추지 못함
if(strike==0&&ball==0){
System.out.println("out 입니다^^");
//무한 루프를 멈추기 위한 break;
break;
}
//세 숫자를 모두 맞춘 경우
if(strike==3){
System.out.println(cnt+"번 만에 도전 성공! > "+resNum[0]+" "+resNum[1]+" "+resNum[2]);
//무한 루프를 멈추기 위한 break;
break;
}
//현재의 결과를 알려준다.
System.out.println(strike+"Strike | "+ball+"Ball");
System.out.println(resNum[0]+" "+resNum[1]+" "+resNum[2]);
}
}
}
'강의 정리 > Java' 카테고리의 다른 글
객체 지향 실습3 (0) | 2020.03.19 |
---|---|
객체 지향 실습1 (0) | 2020.03.16 |
Java를 이용한 학생 관리 프로그램/가계부 프로그램 (0) | 2020.03.11 |
Java 기초 실습5 (0) | 2020.03.09 |
Java를 이용한 달력 프로그램 (0) | 2020.03.08 |
Comments