클래스와 함수를 사용한 가위바위보 게임 - 3강 과제

#include <iostream> // 콘솔 입출력
#include <stdlib.h> // 랜덤 모듈
#include <time.h> // 타임 추출
#include <string>
#include <CoreWindow.h>
using namespace std;
//가위 바위 보 게임
class KBB{
public:
string name;
int palyerNum;
int comNum;
bool comNplayer;
int playerWin = 0;
int comWin = 0;
int draw = 0 ;
int gmaeCount = 0;
void GameIntro(){
cout << "Welcome to KKB World!"<< endl;
cout << "가위바위보 게임에 오신것을 환영합니다!" << endl;
}
void GamePlay(){
cout << "패 선택 (1:가위, 2:바위, 3:보, 4:게임종료 ) >>> ";
cin >> palyerNum; // 가위바위보 선택
comNum = rand() % 3 + 1;
}
void NameInput (string name, int nums){
if(comNplayer) cout << name << "님께서";
else cout << name << "가";
if (nums == 1) cout << "[ 가위 ]";
else if (nums == 2) cout << "[ 바위 ]";
else cout << "[ 보 ]";
cout << "를 냈습니다."<<endl;
}
void GameResult(int playerNum, int comNum){
gmaeCount++;
if (playerNum == comNum){
cout << "게임결과는 [ 무승부 ] 입니다." << endl;
draw++;
}
else if ((playerNum == 1 && comNum == 3) || (playerNum == 2 && comNum == 1) || (playerNum == 3 && comNum == 2)){
cout << name << " 님의 [ 승리 ] 입니다" << endl;
playerWin++;
}
else{
cout << name << " 님의 [ 패배 ] 입니다" << endl;
comWin++;
}
cout << gmaeCount << "번째 게임 스코어 = 플레이어 : " << playerWin << " 점 " << " 컴퓨터 : " << comWin << " 점 " << " 무승부 : " << draw << " 회 입니다." << endl;
cout << "" << endl;
}
int OneMoreTime(){
int gameEnd;
cout << "게임 한판 더!? (1 : 한판더!, 2 : 게임종료) >> > ";
cin >> gameEnd; // 이름 입력
cout << "" << endl;
return gameEnd;
}
};
void main(){
srand((unsigned int)time(NULL));
KBB mykbb;
mykbb.GameIntro();
cout << "이름을 입력 하세요. >>> ";
cin >> mykbb.name; // 이름 입력
cout << "" << endl;
while (true){
mykbb.comNplayer = true; // 출력 이름 선택
mykbb.GamePlay();
//게임 선택번호 오류 및 및 종료 여부
if (mykbb.palyerNum == 4){
cout << "게임을 종료 합니다." << endl;
break;
}
else if (mykbb.palyerNum > 3 || mykbb.palyerNum <= 0){
cout << "1, 2, 3, 4 번중 하나를 선택 해주세요." << endl;
continue;
}
mykbb.NameInput(mykbb.name,mykbb.palyerNum); // 플레이어 턴
mykbb.comNplayer = false; // 출력 이름 선택
mykbb.NameInput("컴퓨터", mykbb.comNum);
mykbb.GameResult(mykbb.palyerNum, mykbb.comNum);//컴퓨터 턴
//게임 재실행 여부.
/*
int oneMore = mykbb.OneMoreTime();
if (oneMore == 1)continue;
else if (oneMore == 2){
cout << "게임을 종료 합니다." << endl;
break;
}else{
cout << "끝내시려면 게임 종료를 눌러 주세요." << endl;
continue;
}
*/
}

댓글

이 블로그의 인기 게시물

날짜 시간 시간차 시간 계산 하기

코루틴에서 CallBack 함수 적용하기

C++ 언어 퍼센트 구하는 방법 / 기본 언어 퍼센트 구하는 방법