클래스와 함수를 사용한 주사위 게임 - 과제

#include <iostream> // 콘솔 입출력
#include <stdlib.h> // 랜덤 모듈
#include <time.h> // 타임 추출
#include <string>
#include <CoreWindow.h>
using namespace std;
//주사위 게임
//플레이어가 첫번째 주사위를 던진다.(수동)
//플레이어가 두번째 주사위를 던진다.(수동)
//플레이어 첫번째 주사위와 두번째 주사위 합을 구하여 표시한다, 같은 수 2개면 더블로 수를 곱하여 표시한다.
//컴퓨터가 첫번째 주사위를 던진다.(자동)
//컴퓨터가 두번째 주사위를 던진다.(자동)
//컴퓨터 첫번째 주사위와 두번째 주사위 합을 구하여 표시한다, 같은 수 2개면 더블로 수를 곱하여 표시한다.
// 각 플레이어의 결과를 합산하여 승자와 패자를 표시한다.

//종합 스코어 기록


class DiceGame{

public:
// 플레이어 주사위
int playerFirstTurn;
int playerSecondTurn;
// 컴퓨터 주사위
int comFirstTurn;
int comSecondTurn;
//주사위의 합
int playerSum;
int comSum;

void Intro(){
cout << "Welcome to DICE GAME" << endl;
cout << "플레이어와 컴퓨터가 서로 두번씩 주사위를" << endl;
cout << "돌린 값의 합으로 승패를 결정하는 주사위 게임 입니다." << endl;
cout << "" << endl;
}

int RollDice(){
int num = rand() % 6 + 1;
return num;
}

int turn(string name, int count){
int num;
cout << name << "의 " << count << "번째 주사위를 돌립니다." << endl;
//num = RollDice();
num = Loading(50, 30);
cout << "" << endl;
cout << count << "번째 주사위 숫자는 [" << num << "]입니다." <<endl;
return num;
}
// 게임 메인
void GameMain(){
// 플레이어 턴
playerFirstTurn = turn("플레이어", 1);
playerSecondTurn = turn("플레이어", 2);
playerSum = diceNumSum(playerFirstTurn, playerSecondTurn);
cout << "플레이어 점수 총 합은 [" << playerSum << "]입니다." << endl;
cout << "" << endl;
// 컴퓨터 턴
comFirstTurn = turn("컴퓨터", 1);
comSecondTurn = turn("컴퓨터", 2);
comSum = diceNumSum(comFirstTurn, comSecondTurn);
cout << "컴퓨터 점수 총 합은 [" << comSum << "]입니다." << endl;
cout << "" << endl;
// 승패 프린트
result(playerSum, comSum);
}

// 돌린 후 점수 합계
int diceNumSum(int num1, int num2){
if (num1 == num2) return num1 * num2;
else return num1 + num2;
}
// 최종 결과 합계
void result(int playerNum, int comNum){
if (playerNum == comNum) cout << "플레이어 : " << playerSum << " 컴퓨터 : " << comSum << " 으로 무승부 입니다!" << endl;
else if (playerNum > comNum) cout << "플레이어 : " << playerSum << " 컴퓨터 : " << comSum << " 으로 플레이어 승!" << endl;
else cout << "플레이어 : " << playerSum << " 컴퓨터 : " << comSum << " 으로 플레이어 패배. ㅠ.ㅠ" << endl;
}

// 로딩 애니메이션
int Loading(int num, int time){
int numValue;
for (int i = 0; i < num; i++){
numValue = rand() % 6 + 1;
cout << numValue << "\b";
Sleep(time);
}
return numValue;
cout << "" << endl;
}
};

void main(){

srand((unsigned int)time(NULL));
int playOk;
DiceGame Mydicegame;
Mydicegame.Intro();

while (true){
cout << "주사위를 돌리시겠습니까? (1:돌린다, 2:게임종료) >>> ";
cin >> playOk;
cout << "" << endl;
if (playOk == 1) Mydicegame.GameMain();
else if (playOk == 2) {
cout << "게임을 종료 합니다." << endl;
break;
}
else{
cout << "1번과 2번 중에서 선택 해주세요." << endl;
continue;
}

}



}

댓글

이 블로그의 인기 게시물

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

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

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