Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Java 및 이클립스 설치
- 이클립스 설치
- SQL 중복제거
- DATE_FORMAT()
- DATE_SUB()
- serializeObject
- db접속
- MySQL 날짜 관련 함수
- apt #apt 명령어 #apt-get명령어
- trim #공백 제거 #PHP trim()
- php5.x
- HAVING 절
- explode #선택제거 #PHP explode
- BufferedReader #BufferedWriter
- CURDATE()
- apt-get #apt-get 옵션 #apt-get options
- Java환경변수 설정
- 가상화
- PHP달력관련함수
- 배열관련함수
- strip_tags #html태그제거 #PHP strip_tags
- PDO #DB접속
- 영카트 #테스트메일
- sql용어
- 함수정의확인
- JSTL
- Now()
- DATE_ADD()
- DATEDIFF()
- CURTIME()
Archives
- Today
- Total
M
4장 Open Challenge 본문
n명이 참가하는 끝말잇기 게임을 만들어보자. 처음 단어는 "아버지"이다. n명의 참가자들은 순서대로 자신의 단어를 입력하면 된다. 끝말잇기에서 끝말이 틀린 경우 게임을 끝내고 게임에서 진 참가자들 화면에 출력한다. 프로그램에서는 시간 지연을 구현하지 않아도 된다. 그렇지만 참가자들이 스스로 시간을 재어 보는 것도 좋겠다. 이 문제의 핵심은 여러 개의 객체와 배열 사용을 연습하기 위한 것으로, main()을 포함하는 wordGameApp 클래스와 각 선수를 나타내는 Player 클래스를 작성하고, 실행 중에는 WordGameApp 객체 하나와 선수 숫자만큼의 Player 객체를 생성하는데 있다.
import java.util.Scanner;
class Player {
private String name;
private String word;
Player(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setWordFromUser(String word) {
this.word = word;
}
public boolean checkSuccess(char lastWord) {
char firstWord = this.word.charAt(0);
if(firstWord != lastWord) return false;
return true;
}
}
public class WordGameApp {
public static void run() {
String word = "아버지";
Scanner sc = new Scanner(System.in);
System.out.println("끝말잇기 게임을 시작합니다...");
System.out.print("게임에 참가하는 인원은 몇명입니까>>");
int players = sc.nextInt();
Player[] player = new Player[players];
sc.nextLine();
for(int i = 0; i < player.length; i++) {
System.out.print("참가자의 이름을 입력하세요>>");
String name = sc.nextLine();
player[i] = new Player(name);
}
System.out.println("시작하는 단어는 "+ word +"입니다");
int i = 0;
while(true) {
i %= players;
int lastIndex = word.length() - 1;
char lastWord = word.charAt(lastIndex);
System.out.print(player[i].getName() +">>");
word = sc.nextLine();
player[i].setWordFromUser(word);
if(player[i].checkSuccess(lastWord) == false) {
System.out.println(player[i].getName() +"이 졌습니다.");
break;
}
i++;
}
sc.close();
}
public static void main(String[] args) {
WordGameApp.run();
}
}
728x90
'Java > 명품 Java Programming' 카테고리의 다른 글
4장 실습문제 (0) | 2022.02.07 |
---|---|
4장 연습문제 (0) | 2022.02.07 |
3장 실습문제 (0) | 2022.01.29 |
3장 연습문제 (0) | 2022.01.26 |
3장 Open Challenge (0) | 2022.01.26 |