- n명의 플레이어가 끝말잇기 게임에 참여한다.
- 참가자 이름은 사용자가 설정 할 수 있게 한다.
- 첫 번째 단어는 아버지로 고정한다.
- 틀리는 사람이 나올 경우 게임을 종료한다.
- 누가 틀렸는지 출력한다.
Code1
import java.util.Scanner;
public class EndGame {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("참가자 수를 입력하세요: ");
int n = sc.nextInt();
String[] names = new String[n];
for (int i = 0; i < n; i++) {
System.out.print((i + 1) + "번째 참가자 이름 입력: ");
names[i] = sc.next();
}
String word = "아버지";
int turn = 0;
while (true) {
System.out.println("[" + names[turn] + "]의 차례입니다. (" + word + ")");
System.out.print("단어를 입력하세요: ");
String input = sc.next();
if (!word.endsWith(input.substring(0, 1))) {
System.out.println("[ERROR] 끝말이 틀렸습니다. " + names[turn] + "가 졌습니다!");
break;
}
word = input;
turn = (turn + 1) % n;
}
}
}
Code2
import java.util.Scanner;
class Player {
private String name;
public Player(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInput(String prevWord) {
Scanner sc = new Scanner(System.in);
System.out.println("[" + name + "]의 차례입니다. (" + prevWord + ")");
System.out.print("단어를 입력하세요: ");
return sc.next();
}
}
public class EndGame2 {
private final int n;
private final Player[] players;
private String word;
public EndGame2(int n) {
this.n = n;
players = new Player[n];
for (int i = 0; i < players.length; i++) {
System.out.print((i + 1) + "번째 참가자 이름 입력: ");
players[i] = new Player(new Scanner(System.in).next());
}
word = "아버지";
}
public void play() {
int turn = 0;
while (true) {
String input = players[turn].getInput(word);
int lastIndex = word.length() - 1;
char lastChar = word.charAt(lastIndex);
char firstChar = input.charAt(0);
if (lastChar != firstChar) {
System.out.println("[ERROR] 끝말이 틀렸습니다. " + players[turn].getName() + "가 졌습니다!");
break;
}
word = input;
turn = (turn + 1) % n;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("참가자 수를 입력하세요: ");
int n = sc.nextInt();
new EndGame2(n).play();
}
}
'Java 응용' 카테고리의 다른 글
Java 응용 (10. GUI기반 자바 타자 연습 게임) (0) | 2024.06.15 |
---|---|
Java 응용 (9. Echo Server / Client) (0) | 2024.04.12 |
Java 응용 (7. Thread를 이용한 경마 게임) (0) | 2024.04.08 |
Java 응용 (6. 랜덤한 숫자 맞추기) (0) | 2024.04.08 |
Java 응용 (5. 이메일 검색 서비스) (0) | 2024.03.14 |