명품 자바 Programming
Chapter4 OpenChallenge
Q :
n명이 참가하는 끝말잇기 게임을 프로그램으로 만들어보자. 처음 단어는 "아버지"이다. n명의 참가자들은 순서대로 자신의 단어를 입력하면 된다. 끝말잇기에서 끝말이 틀린 경우 게임을 끝내고 게임에서 진 참가자를 화면에 출력한다.
Solution
Player.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package chap4ex; public class Player { String name; // 참가자의 이름 String word; // 단어 public Player() {} public Player(String name) { this.name = name; } public void sayWord(String word) { this.word = word; } public Boolean succeed(String lastWord) { int lastIndex = lastWord.length() - 1; char lastChar = lastWord.charAt(lastIndex); char firstChar = word.charAt(0); if(firstChar == lastChar) return true; else return false; } } | cs |
WordGameApp.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package chap4ex; import java.util.Scanner; public class WordGameApp { public static void main(String[] args) { int playerNum; String lastWord = "아버지"; Scanner in = new Scanner(System.in); System.out.print("게임에 참가하는 인원은 몇명입니까>>"); playerNum = in.nextInt(); Player[] players = new Player[playerNum]; for(int i=0;i<playerNum;i++) { System.out.print("참가자의 이름을 입력하세요>>"); String name = in.next(); players[i] = new Player(name); } System.out.println("시작하는 단어는 아버지입니다."); while(true) { for(int i=0;i<playerNum;i++) { String name = players[i].name; System.out.print(name + ">>"); players[i].sayWord(in.next()); if(players[i].succeed(lastWord) == true) { lastWord = players[i].word; } else { System.out.println(name + "이 졌습니다."); System.exit(0); } } } } } | cs |
Key Point
1. Player 객체를 배열에 담는다.
2. 이름과 말할 단어를 필드로 갖도록 한다.
3. WordGameApp 에서 각 Player들의 단어를 확인하며 게임을 진행한다.
유용하셨다면 공감 버튼 ↓ 눌러주세요!
728x90
'# Language > Java' 카테고리의 다른 글
명품 JAVA 프로그래밍 4장 3번 (0) | 2018.07.20 |
---|---|
명품 JAVA 프로그래밍 4장 2번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 4장 1번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 12번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 11번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 8번 (0) | 2018.07.20 |
명품 JAVA 프로그래밍 3장 7번 (0) | 2018.07.20 |