Skip to content

Instantly share code, notes, and snippets.

@javajigi
Last active August 24, 2017 15:14
Show Gist options
  • Save javajigi/c819cfb3e8c54b1d5b9c52f895afe855 to your computer and use it in GitHub Desktop.
Save javajigi/c819cfb3e8c54b1d5b9c52f895afe855 to your computer and use it in GitHub Desktop.
숫자 야구 게임
package baseball;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class Baseball {
static ArrayList<Integer> generateComputerBalls() {
List<Integer> possibleBalls = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
Collections.shuffle(possibleBalls);
ArrayList<Integer> computerBalls = new ArrayList<>(3);
computerBalls.add(possibleBalls.get(0));
computerBalls.add(possibleBalls.get(1));
computerBalls.add(possibleBalls.get(2));
return computerBalls;
}
static int calculateBall(ArrayList<Integer> computerBalls, int userBall, int position) {
if (!computerBalls.contains(userBall)) {
return 0;
}
int computerBall = computerBalls.get(position);
if (userBall == computerBall) {
return 2;
}
return 1;
}
static String calculateBalls(ArrayList<Integer> computerBalls, ArrayList<Integer> userBalls) {
int strike = 0;
int ball = 0;
for (int i = 0; i < userBalls.size(); i++) {
int result = calculateBall(computerBalls, userBalls.get(i), i);
if (result == 2) {
strike++;
} else if (result == 1) {
ball++;
}
}
return String.format("결과 : %d strike, %d ball", strike, ball);
}
static ArrayList<Integer> inputUserBalls(String inputValue) {
String[] values = inputValue.split(" ");
ArrayList<Integer> userBalls = new ArrayList<>();
for (String value : values) {
userBalls.add(Integer.parseInt(value));
}
return userBalls;
}
}
package baseball;
import java.util.ArrayList;
import java.util.Scanner;
public class BaseballGame {
static String inputUserBalls(Scanner scanner) {
System.out.println("예상하는 3개의 값을 입력하세요.(예. 1 2 3)");
return scanner.nextLine();
}
public static void main(String[] args) {
ArrayList<Integer> computerBalls = Baseball.generateComputerBalls();
Scanner scanner = new Scanner(System.in);
while(true) {
int strike = 0;
int ball = 0;
String inputValue = inputUserBalls(scanner);
ArrayList<Integer> userBalls = Baseball.inputUserBalls(inputValue);
for (int i = 0; i < userBalls.size(); i++) {
int result = Baseball.calculateBall(computerBalls, userBalls.get(i), i);
if (result == 2) {
strike++;
} else if (result == 1) {
ball++;
}
}
System.out.println(String.format("결과 : %d strike, %d ball", strike, ball));
if (strike == 3) {
System.out.println("게임 종료");
break;
}
}
scanner.close();
}
}
@honux77
Copy link

honux77 commented Aug 24, 2017

어? 한 gist 에 여러 파일을 넣을 수 있네요??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment