프로그래밍 언어 복습/JAVA
#55 JAVA 조금 더 깔끔해진 숫자야구게임 클래스화
사재원 교수
2022. 6. 11. 00:51
이제는 코딩 시작 전 몸풀기로 하게 된 숫자야구게임
package Test;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
//컴퓨터 숫자
class Comdata{
Random r = new Random();
int[] com = new int[3];
Comdata() {
for(int i=0;i<com.length;i++) {
int num = r.nextInt(9)+1; //1 ~ 9 숫자 랜덤으로 선택
com[i] = num;
for(int j=0;j<i;j++) {
if(com[j] == num) {
i--;
}
}
}
}
}
//유저 숫자
class Userdata{
Scanner sc = new Scanner(System.in);
int[] userdata = new int[3];
public int[] getusernum() {
for(int i=0;i<userdata.length;i++) {
System.out.print(i+1 + "번째 숫자 입력 : ");
userdata[i] = sc.nextInt();
for(int j=0;j<i;j++) {
if(userdata[i] == userdata[j]) {
i--;
}
}
}
return userdata;
}
}
class Game{
Scanner sc = new Scanner(System.in);
public void Start(Comdata c,Userdata u) {
int[] comdata = c.com; //컴퓨터 숫자
System.out.println(Arrays.toString(comdata));
boolean run = true;
while(run) {
int stk = 0;
int ball = 0;
System.out.print("게임 시작(1) 종료(2) 입력 : ");
int num = sc.nextInt();
if(num == 1) {
int[] userdata = u.getusernum();
for(int i=0;i<userdata.length;i++) {
for(int j=0;j<comdata.length;j++) {
if(userdata[i] == comdata[j]) {
if(i == j) {
stk ++;
}else {
ball ++;
}
}
}
}
System.out.println("스트라이크 횟수 : " + stk);
System.out.println("볼 횟수 : " + ball);
if(stk == 3) {
System.out.println("3 스트라이크 ! 게임 종료 ! ");
run = false;
}
}else if(num ==2) {
System.out.println("프로그램 종료");
run = false;
}else {
System.out.println("다시 입력해주세요.");
}
}
}
}
public class jaewon {
public static void main(String[] args) {
//숫자야구게임
Comdata c = new Comdata();
Userdata u = new Userdata();
Game g = new Game();
g.Start(c, u);
}
}
감사합니다.