μ΄ νλ‘μ νΈλ Java Swingμ μ¬μ©νμ¬ κ΅¬νν Yatzy κ²μμ
λλ€.
κΈ°λ³Έμ μΈ κ²μ λ£°μ λ€μμ μ°Έκ³ ν΄μ£ΌμΈμ.
https://namu.wiki/w/%EC%9A%94%ED%8A%B8(%EA%B2%8C%EC%9E%84)
https://namu.wiki/w/%EC%95%BC%EC%B0%8C
μ΄ νλ‘μ νΈμμλ κΈ°μ‘΄ yatzyκ²μκ³Όμ μ°¨λ³μ±μ μν΄ 2κ°μ μμ΄ν
μ ꡬννμμ΅λλ€.
π item1 : μ΅λ 2κ°μ μ£Όμ¬μλ₯Ό μ€νμ μ£Όμ¬μλ‘ λ³κ²½ν©λλ€. (μ€νμ μ£Όμ¬μμ μ©λλ κ²μ μμ μ°Έκ³ )
π item2 : μ£Όμ¬μλ₯Ό 1ν μΆκ°λ‘ λμ§ μ μλ μμ΄ν μ λλ€.
OS | μ§μ μ¬λΆ |
---|---|
windows | β |
Linux | β(νμΈ νμ) |
MacOS | β(νμΈ νμ) |
μλμ°
- Java μ€μΉ (17 version κΆμ₯) https://www.oracle.com/java/technologies/downloads/#java17
- λ ν¬μ§ν 리 볡μ¬
git clone https://github.com/Suyeong00/yatzy.git
- μ»΄νμΌ ν κ²μ μ€ν
cd .\yatzy\yatzy\src\
javac -encoding UTF-8 dice\*.java score\*.java *.java
java -cp . YatzyGame
- μ£Όμ¬μ κ΅΄λ¦¬κ³ μ μ λ±λ‘νκΈ°
μ£Όμ¬μλ ν΄λ¦μΌλ‘ κ³ μ /κ³ μ ν΄μ κ° κ°λ₯ν©λλ€.
κ³ μ λ μ£Όμ¬μλ roll λ²νΌμ λλ¬λ μ£Όμ¬μ λμ΄ λ³νμ§ μμ΅λλ€.
μ£Όμ¬μλ 3λ²κΉμ§ roll ν μ μμ΅λλ€.
- 1λ² μμ΄ν μ¬μ©
1λ² μμ΄ν
μ μ¬μ©νλ©΄ μ΅λ 2κ°κΉμ§μ μ£Όμ¬μλ₯Ό μ€νμ
μ£Όμ¬μλ‘ μ€μ ν μ μμ΅λλ€.
μ€νμ
μ£Όμ¬μλ λ³νλ random diceμ λ§μΆ° roll λ²νΌμ ν΄λ¦νλ©΄ ν΄λ¦ λΉμμ random diceμ μ£Όμ¬μ λμΌλ‘ λ³ν©λλ€.
random diceλ 1λ² μμ΄ν
μ μ¬μ©ν λλ₯Ό μ μΈνκ³ λ κ²μμ μν₯μ μ£Όμ§ μμ΅λλ€.
- 2λ² μμ΄ν μ¬μ©
μλ μ£Όμ¬μλ 3λ²κΉμ§ ꡴리λκ²μ΄ κ°λ₯νμ§λ§, 2λ² μμ΄ν
μ μ¬μ©νλ©΄ 3λ²μ§Έ μ£Όμ¬μλ₯Ό κ΅΄λ Έμ λ νλ²μ κΈ°νλ₯Ό λ μ»μ μ μμ΅λλ€.
1λ² μμ΄ν κ³Ό 2λ² μμ΄ν μ λμμ μ¬μ©ν μ μμ΅λλ€. κ²μμ΄ λλ ν usernameκ³Ό ageλ₯Ό μ λ ₯νκ³ submitλ²νΌμ λλ₯΄λ©΄ YatzyResult.txtμ κ²°κ³Όκ° μ μ₯λ©λλ€. 쑱보λ Score Chartλ₯Ό ν΄λ¦νμ¬ νμΈν μ μμ΅λλ€.
- μ£Όμ¬μμ ν΄λΉνλ κ°μ²΄
- μ£Όμ¬μ λμ ν΄λΉνλ num λ©€λ² λ³μλ₯Ό κ°κ³ μκ³ κ°μ²΄ μμ±μ 1λ‘ μ΄κΈ°νλ¨
Integer calculatedScore(List<Dice> dices)
- Dice 리μ€νΈλ₯Ό λ겨λ°μΌλ©΄ μ μλ₯Ό κ³μ°
- AcesλΆν° YachtκΉμ§ λͺ¨λ Score μΈν°νμ΄μ€λ₯Ό ꡬννμ¬ μ μ μ μ£Όμ¬μ μ 보λ₯Ό ν λλ‘ μ μ κ³μ°
κ° μ»΄ν¬λνΈλ€μ ν΄λΉνλ ν΄λμ€
void createStaticComponents(Panel panel)
- νλ©΄μ νμν μ μ μ»΄ν¬λνΈ μμ± (μ£Όλ‘ λΌλ²¨)
Button createDice(String iconImagePath, int x, int y, int width, int height, Panel panel, List<Button> diceButtons, Screen screen)
- μ£Όμ¬μ λ²νΌ μμ±
Button createScoreButtons(int x, int y, int width, int height, Panel panel, Screen screen, List<Button> scoreBoard)
- μ€μ½μ΄ λ²νΌ μμ±
void mouseEntered(MouseEvent e), void mouseExited(MouseEvent e)
- νΈλ²λ§ ν¨κ³Ό ꡬν
void floatScreen()
- Screenμ νλ©΄μ λμ°λ λ©μλ
void createDiceButtons()
- diceλ²νΌλ€μ μμ±νλ λ©μλ
void createScoreButtons()
- scoreλ²νΌλ€μ μμ±νλ λ©μλ
void createLabels()
- labelλ€μ μμ±νλ λ©μλ
void createActionButtons()
- μ΄ μΈμ ν΄λ¦μ΄ λλ λ²νΌλ€μ μμ±νλ λ©μλ
void createTextFields()
- ν μ€νΈ νλλ₯Ό μμ±νλ λ©μλ
void createScores()
- κ³μ°ν 쑱보λ₯Ό μμ±νλ λ©μλ
void resetDices()
- μ£Όμ¬μλ₯Ό μ΄κΈ°ννλ λ©μλ
void rollDices()
- μ£Όμ¬μλ₯Ό ꡴리λ λ©μλ
void matchDice()
- μ£Όμ¬μμ μ«μμ λ§κ² μ£Όμ¬μμ imageλ₯Ό 맀νν΄μ£Όλ λ©μλ
void setDiceImage(int diceNumber, int num)
- μ£Όμ¬μ λμ ν΄λΉνλ μ΄λ―Έμ§λ‘ λ²νΌμ μμ΄μ½μ λ³κ²½ν΄μ£Όλ λ©μλ
void setScore()
- μ μ κ° μ νν μ μλ₯Ό κΈ°μ νλ λ©μλ
void setResult()
- μ μλ₯Ό κ³μ°νλ λ©μλ
boolean validInput()
- TextFieldμ μ λ ₯ν μ μ μ inputμ΄ μ ν¨νμ§ κ²μ¬
void start()
- main thread μΈμ start threadλ₯Ό λμ΄ random diceλ₯Ό μ λ°μ΄νΈ
void windowConfiguration(Panel panel)
- νλ©΄μ ν¬κΈ°λ₯Ό μ‘°μ νκ³ , λ«κΈ° λ²νΌμ νμ±ννλ λ©μλ
void makeButtonTransparent(JButton button)
- λ²νΌμ λ°νμ ν¬λͺ νκ² ν΄μ£Όλ λ©μλ (λ²νΌμdefault λ°ν μ μ κ±°νκΈ° μν¨)
void actionPerformed(ActionEvent e)
- λ²νΌ ν΄λ¦(μ΄λ²€νΈ)λ₯Ό μ²λ¦¬νλ νΈλ€λ¬
void main(String[] args)
- κ²μ μ€ν
- κ²μ μ¬μμ λ²νΌ ꡬν
- κ²μ μ’ λ£μ μ΄λ²€νΈ ꡬν (νμ¬ κ²μμ΄ μ’ λ£λμ΄λ μ¬μ©μμκ² μ’ λ£λμλ€λ λ©μΈμ§λ μ΄λ²€νΈκ° λ°μνμ§ μμ)
- 리ν©ν λ§ νμ
- component μμ±μ ScreenConfiguration ν΄λμ€μ μμνκΈ°
- actionPerformed λ©μλμ κ° λ²νΌλ³λ‘ μ΄λ²€νΈ λΆλ¦¬νκΈ° (νμ¬λ λ©μλ νλλ‘ μ²λ¦¬)
https://en.wikipedia.org/wiki/Yahtzee
https://docs.oracle.com/javase/7/docs/api/javax/swing/package-summary.html
- κ²μ μ¬μμ λ²νΌ ꡬν
- κ²μ μ’ λ£ μ΄λ²€νΈ ꡬν
- μ μ κ³μ° μ€λ₯ μμ