+) 22. 07. 28. μΆκ°
μΉμ 2. νμ리ν - μ€νλ§ ν΅ν©κ³Ό νΌ μκ° μλ£!!
th:field
λ id, name, value μμ±μ λͺ¨λ μλμΌλ‘ λ§λ€μ΄μ€λ€.
th:field
μμ μ§μ ν λ³μ μ΄λ¦κ³Ό κ°λ€. id="itemName"
th:field
μμ μ§μ ν λ³μ μ΄λ¦κ³Ό κ°λ€. name="itemName"
th:field
μμ μ§μ ν λ³μμ κ°μ μ¬μ©νλ€. value=""
μ€νλ§ MVCλ νλ νλλ₯Ό νλ λ§λ€μ΄μ, _openμ²λΌ κΈ°μ‘΄ μ²΄ν¬ λ°μ€ μ΄λ¦ μμ μΈλ μ€μ½μ΄(_)λ₯Ό λΆμ¬μ μ μ‘νλ©΄ 체ν¬λ₯Ό ν΄μ νλ€κ³ μΈμν μ μλ€.
νλ νλλ νμ μ μ‘λλ€. λ°λΌμ 체ν¬λ₯Ό ν΄μ ν κ²½μ° μ¬κΈ°μ openμ μ μ‘λμ§ μκ³ , _openλ§ μ μ‘λλλ° μ΄ κ²½μ° μ€νλ§ MVCλ 체ν¬λ₯Ό ν΄μ νλ€κ³ νλ¨νλ€.
νμ리νλ₯Ό μ¬μ©νλ©΄ μ²΄ν¬ λ°μ€μ νλ νλμ κ΄λ ¨λ λΆλΆλ ν¨κ» ν΄κ²°ν΄μ€λ€.
HTML μμ± κ²°κ³Όλ₯Ό 보면 νλ νλ λΆλΆμ΄ μλμΌλ‘ μμ±λμ΄ μλ€.
<input type="hidden" name="_open" value="on"/>
λΌλμ€ λ²νΌμ μ΄λ―Έ μ νμ΄ λμ΄ μλ€λ©΄ μμ μμλ νμ νλλ₯Ό μ ννλλ‘ λμ΄ μμΌλ―λ‘, μ²΄ν¬ λ°μ€μ λ¬λ¦¬ λ³λμ νλ νλλ₯Ό μ¬μ©ν νμκ° μλ€.
@ModelAttribute
κ° μλ deliveryCodes()
λ©μλλ 컨νΈλ‘€λ¬κ° νΈμΆλ λλ§λ€ μ¬μ©λλ―λ‘ deliveryCodes
κ°μ²΄λ κ³μ μμ±λλ€.
μ΄λ° λΆλΆμ 미리 μμ±ν΄λκ³ μ¬μ¬μ©νλ κ²μ΄ λ ν¨μ¨μ μ΄λ€.
+) 22. 07. 30. λ λ²μ§Έ PR μΆκ°!!
μ¬μ©μμκ² κ°μ μ λ ₯ λ°λ ν΄λμ€
import java.util.*;
import java.util.stream.Collectors;
public class Input {
public String input() {
System.out.println("\n1~9 μ¬μ΄μ μ«μ 3κ°λ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ.");
return new Scanner(System.in).nextLine();
}
public String[] inputDataSplit(String str) {
return str.split("");
}
public List<Integer> arrToList(String[] str) {
List<String> number = Arrays.asList(str);
List<Integer> numbers = number.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
validateForNumberLength(numbers);
validateForDuplication(numbers);
return numbers;
}
public void validateForNumberLength(List<Integer> numbers) {
if(numbers.size() < 3 || numbers.size() > 3 || numbers.contains(0)) {
throw new RuntimeException("1~9 μ¬μ΄μ 3μ리 μ«μλ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ.");
}
}
public void validateForDuplication(List<Integer> numbers) {
if (numbers.size() != numbers.stream().distinct().count()) {
throw new RuntimeException("μ€λ³΅κ°μ΄ μμ΅λλ€.");
}
}
}
input()
μ¬μ©μμκ² κ°μ μ
λ ₯ λ°λλ€.
inputDataSplit()
μ
λ ₯ λ°μ κ°μ ν κΈμμ© λΆλ¦¬νμ¬ λ°°μ΄μ λ£λλ€.
arrToList()
λ°°μ΄μ 리μ€νΈλ‘ λ°κΎΌλ€.
validateForNumberLength()
1~9κΉμ§μ μμΈμ§, 3μ리 μκ° λ§λμ§ κ²μ¬νλ€.
validateForDuplication()
μ€λ³΅κ°μ΄ μλμ§ κ²μ¬νλ€. (리μ€νΈμ μ¬μ΄μ¦μ μ€λ³΅κ°μ κ±Έλ¬λΈ κ°μ λΉκ΅)
λλ€ν μ μλ₯Ό μμ±νλ ν΄λμ€
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class RandomNumber {
private Set<Integer> randomNumber = new HashSet<>();
public List<Integer> createRandomNumber() {
while(randomNumber.size() < 3) {
randomNumber.add((int) (Math.random() * 9 + 1));
}
List<Integer> randomNumbers = new ArrayList<>(randomNumber);
return randomNumbers;
}
}
μ¬μ©μκ° μ λ ₯ν κ°κ³Ό λλ€ μμ±ν κ°μ λΉκ΅νλ ν΄λμ€
import java.util.List;
public class Comparison {
private int ball;
private int strike;
public int[] compare(List<Integer> randomNumber, List<Integer> userNumber) {
ball = 0;
strike = 0;
checkForStrike(randomNumber, userNumber);
checkForBall(randomNumber, userNumber);
return new int[] {ball, strike};
}
public int checkForBall(List<Integer> randomNumber, List<Integer> userNumber) {
for(int i = 0; i < 3; i++) {
if (randomNumber.contains(userNumber.get(i))) {
ball++;
}
}
return ball;
}
public int checkForStrike(List<Integer> randomNumber, List<Integer> userNumber) {
for(int i = 0; i < 3; i++) {
if (randomNumber.get(i).equals(userNumber.get(i))) {
strike++;
ball--;
}
}
return strike;
}
}
compare()
ball, strike κ°μ λ°ννλ€.
checkForBall()
λλ€ μμ± κ°μ μ¬μ©μκ° μ
λ ₯ν κ°μ΄ ν¬ν¨λμ΄ μμΌλ©΄ ball μλ₯Ό λλ¦¬κ³ λ°ννλ€.
checkForStrike()
λλ€ μμ± κ°κ³Ό μ¬μ©μκ° μ
λ ₯ν κ°μ΄ κ°κ³ μμΉλ κ°μΌλ©΄ strike μλ₯Ό λλ¦¬κ³ λ°ννλ€.
κ²°κ³Όλ₯Ό μΆλ ₯νλ ν΄λμ€
public class Output {
public void output(int[] result) {
if(result[1] == 3) {
System.out.println("BASEBALL WIN~!");
return;
}
System.out.println(result[0] + " " + "ball / " + result[1] + " strike");
}
public void printPlayBaseballGame() {
System.out.println("Play Baseball Game");
}
}
output()
strikeμ ball κ°(result)μ λ°μμ, λ§μ½ strike(result[1])κ° 3μ΄λ©΄ λ΅μ λ§ν κ²μ΄λ―λ‘ BASEBALL WIN~!μ μΆλ ₯νλ€.
μ λ΅μ λ§νμ§ λͺ»νλ€λ©΄ ball, strike μ¬λΆλ₯Ό μλ €μ€λ€.
printPlayBaseballGame()
"Play Baseball Game"μ μΆλ ₯νλ€.
μ€ννλ ν΄λμ€
import java.util.List;
public class Main {
public static void main(String[] args) {
Input input = new Input();
Output output = new Output();
RandomNumber randomNumber = new RandomNumber();
Comparison comparison = new Comparison();
int[] result = new int[2];
List<Integer> randomNumbers = randomNumber.createRandomNumber();
output.printPlayBaseballGame();
while(result[1] != 3) {
List<Integer> userNumbers = input.arrToList(input.inputDataSplit(input.input()));
result = comparison.compare(randomNumbers, userNumbers);
output.output(result);
}
}
}