본문 바로가기
🍺JAVA

[JAVA] 끝말잇기게임 만들기 //동일단어 반복

by 김말자 2023. 1. 11.
728x90
728x90
BIG

메인메소드

package wordgame;

public class WordGameMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		WordGame game=new WordGame();
		game.gameRun();
	}

}

gameRun을 만듬

package wordgame;

import java.util.Scanner;

public class WordGame extends Player {
	// 필드
	int count;
	Scanner sc = new Scanner(System.in);
	// 생성자
	// 메소드
	public void gameRun() {
		// 인원수입력
		System.out.println("끝말잇기 게임을 시작합니다.");
		System.out.print("참여 인원수를 입력하세요>>");
		count = sc.nextInt(); //참여인원수 받기
		sc.nextLine(); //엔터지우려고
		// 인원수만큼 객체배열생성
		String Player[] = new String[count];
		// 반복문 돌면서 사람이름입력받아 Player 객체를 생성
		boolean stop = true; //돌아야되니까
		while (stop) {

			for (int i = 0; i < count; i++) { //카운트만큼 돌아서 플레이어 배열에 이름받기
				System.out.print((i + 1) + "번 참여자 이름 입력>>");
				Player[i] = sc.nextLine();

			}
			break;

		}
		// 시작단어 :아버지
		String startString = "아버지";
		// 무한반복 게임이 진행;
		stop = true;
		System.out.println(startString + "(으)로 시작하는 끝말잇기 게임을 시작합니다 ===>");
		System.out.println("시작단어 : " + startString);
		StringBuilder sb = new StringBuilder(); // 중복단어 제거하기
		String remark ; // 단어받기
		String sb1="0"; // 빌더에 담을 그릇
		while (stop) {

			for (int i = 0; i < Player.length; i++) {
				System.out.print(Player[i] + ">>"); //돌면서 누가 입력할지 체킹

				remark = sc.nextLine(); //단어 받기
			
				if(sb1.contains(remark)==true) { //포함되어있으면 트루로 바뀜
					System.err.println(Player[i]+"(이)가 짐");
					System.err.println("이유 : 동일단어 반복");
					stop=false; //while문 멈추기
					break; //for문 멈추기
				}
			
				sb1 = sb.append(remark).toString(); // 단어 받은것을 스트링으로 바꾸고 붙이기
			
				System.out.println(sb1);
//				System.out.println(remark.substring(remark.length()-1));
//				System.out.println(startString.substring(0,1));
				if(!remark.substring(0,1).equals(startString.substring(startString.length()-1))){
					System.err.println(Player[i]+"(이)가 짐");
					System.err.println("이유 : 끝글자랑 미스매칭");
					stop=false;
					break;
		
				}//if end
				startString = remark;
			} // for end
			
		} // while end
	}// gamerun end

	public WordGame(int count) {
		super();
		this.count = count;
	}

	public WordGame() {
		super();
		// TODO Auto-generated constructor stub
	}

	public int getCount() {
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}
}
package wordgame;

import java.util.Scanner;

public class Player {
//필드
	String name;//선수이름
	String word;//최근에 말한 단어

	public String getWordFromuser(Scanner sc) {
		String getWordFromuser = sc.nextLine();
		return getWordFromuser;
	
	}//단어를 입력받는 메소드
//생성자
	public Player() {
		super();
		// TODO Auto-generated constructor stub
	}

	
public Player(String name, String word, Scanner sc) {
	super();
	this.name = name;
	this.word = word;
}
//메소드
	public String getName() {
		return name;
	}


	public String getWord() {
		return word;
	}

	public void setName(String name) {
		this.name = name;
	}
	public void setWord(String word) {
		this.word = word;
	}

}

728x90
반응형
BIG

댓글