Last active
August 24, 2017 15:14
-
-
Save javajigi/c819cfb3e8c54b1d5b9c52f895afe855 to your computer and use it in GitHub Desktop.
숫자 야구 게임
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
어? 한 gist 에 여러 파일을 넣을 수 있네요??