관리 메뉴

moozi

끝말잇기게임 클래스 버전 본문

C++

끝말잇기게임 클래스 버전

moozi 2015. 11. 17. 15:50

#include <iostream>
#include <string>
using namespace std;

// Player클래스. 게임참여자
class Player {
private :
 string  *names; //이름
 int n; //참여인원

public :
 //생성자. 멤버변수 초기화를 주로 담당
 Player() {
  setN();// 참가인원 n 결정.
  names = new string[n]; // 참가자이름 저장공간 생성
 }

 string* getNames() {
  return names;
 }

 int getN() {
  return n;
 }

 void setN() {
  cout << "참가인원 : ";
  cin >> n;
  cin.ignore(1);//엔터키 한개 무시
 }
 
 void setPlyer() {
  for (int i = 0; i < n; i++) {
   cout << i + 1 << "번째 참가자 이름 : ";
   getline(cin, names[i]);
   cout << names[i] << endl;
  }
 }
};


// WordGame클래스. 게임의 진행을 담당
class WordGame {
private :
 string firstWord; //첫번째 단어
 string secondWord; //두번째 단어
 int count = 0; //참가자 순서
public :
 void play(Player p) {
  string* names = p.getNames();
  int n = p.getN();
  cout << names[count] << " >> ";
  getline(cin, firstWord);//첫번째 단어

  while (true) {
   count++;//참가자순서증가
   if (count == n) {//참가자순서가 참여인원와 같아지면 다시 처음순서부터
    count = 0;
   }
   cout << names[count] << " >> ";
   getline(cin, secondWord);//두번째 단어
   int lastIndex = firstWord.length() - 2;
   if (firstWord.at(lastIndex) != secondWord.at(0) || firstWord.at(lastIndex + 1) != secondWord.at(1)) {
    cout << names[count] << "이(가) 졌습니다." << endl;
    break;
   }

   firstWord = secondWord;//두번째 단어를 첫번째로 옮김

  }

 }


};


int main() {
 Player player;
 player.setPlyer(); //참가자이름결정
 WordGame wordGame;
 wordGame.play(player);


 return 0;
}

'C++' 카테고리의 다른 글

끝말잇기게임  (0) 2015.11.12
파일입출력 클래스 버전 -주소록  (1) 2015.11.03
파일입출력예제 클래스버젼  (0) 2015.10.30
파일입출력 예제  (0) 2015.10.27
Comments