개발동
숫자 야구 게임 본문
숫자야구게임
1. 정답을 난수로 구한다.
- 1~ 9까지 3개의 수. 중복되면 안됨.
2. 사용자의 입력을 받는다.
- 1~9까지의 3개의 수. 중복되면 안됨.
3. 판정
- 볼: 자리가 다르고, 값이 일치
- 스: 자리가 같고, 값도 일치
4. 3스트라이크 이면 종료.
=============================================
*추가
1. 새게임기능
2. 종료기능
import java.util.Scanner;
import java.util.Random;
class Game{
final int arr_SIZE = 3;
int [] arr= new int[arr_SIZE];
int [] arr_sort= new int[arr_SIZE];
int [] arrInput= new int[arr_SIZE];
int [] arrInput_sort= new int[arr_SIZE];
void clone(int[] clone, int[] arr) {
for(int i=0; i<arr.length; i++) {
clone[i]=arr[i];
}
}
void rand_10(int[] arr) {
Random rand = new Random();
for(int i = 0; i<arr.length; i++)
{
arr[i]=rand.nextInt(9)+1;
}
}
void sort(int[] arr) {//오름차순 정렬
int tmp;
for(int i=0; i<arr.length; i++)
{
for(int j=i+1; j<arr.length; j++)
{
if(arr[i]>arr[j])
{tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
}
}
}
void printArr(int[] arr) {
for(int i =0; i<arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
boolean equal_chk(int[] arr1, int[]arr2) {
for(int i=0; i<arr.length; i++)
{
if(arr1[i]!=arr2[i])
return false;
}
return true; //모든 항목에서 서로 다름이 확인 되지 않을때 true 반환
}
}
public class BaseballGame {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
while(true) {
Game g1 = new Game();
g1.rand_10(g1.arr);
System.out.println("===========================");
System.out.println("정답");
g1.printArr(g1.arr);
System.out.println();
System.out.println("===========================");
g1.clone(g1.arr_sort, g1.arr);
g1.sort(g1.arr_sort);
//오름차순 정렬된 배열
// System.out.println("정답[오름차순]");
// g1.printArr(g1.arr_sort);
// System.out.println();
while(true) {
for(int i=0; i<g1.arr_SIZE; i++)
{
if(i==0)
{
System.out.println();
System.out.println("1~9중 하나의 수를 입력하세요. (중복X)");
}
if(i!=g1.arr_SIZE)
System.out.print((i+1)+"번째 수 입력: ");
else
System.out.print("마지막 수 입력: ");
g1.arrInput[i]=scanner.nextInt();
}
g1.printArr(g1.arrInput);
g1.clone(g1.arrInput_sort, g1.arrInput); g1.sort(g1.arrInput_sort);
//입력된 배열을 오름차순 정렬시킴
if(g1.equal_chk(g1.arr, g1.arrInput))
{
System.out.println(); System.out.println();
System.out.println("<<스트라이크 : 자리가 같고, 값도 일치>>");
break; //해당 반복문을 빠져나감
}else if(g1.equal_chk(g1.arr_sort, g1.arrInput_sort)) {
System.out.println(); System.out.println();
System.out.println("<<볼 : 자리가 다르나, 값이 일치>>");
}
System.out.println();
}
int repeatGame;
System.out.println("계임을 더 하시겠습니까? [-1입력/그외의 숫자 입력]");
repeatGame = scanner.nextInt();
if(repeatGame==-1)
{
continue; //해당 반복문을 재실행
}else {
break; //해당 반복문을 빠져나감
}
// String repeatGame;
// System.out.println("계임을 더 하시겠습니까? [yes입력]");
// repeatGame = scanner.next();
//
// if(repeatGame=="yes")
// {
// continue; //해당 반복문을 재실행
// }else {
// break; //해당 반복문을 빠져나감
// }
}
System.out.println("게임 종료됨");
}
}
'Programming > Java' 카테고리의 다른 글
참조변수와 인스턴스의 연결 (0) | 2021.09.26 |
---|---|
상속 (0) | 2021.09.26 |
Calendar 클래스 (0) | 2021.09.23 |
난수 생성 (0) | 2021.09.23 |
StringTokenizer() (0) | 2021.09.23 |