반응형
if else 문만을 이용하여 만든 가위 바위보 게임
#include<iostream>
#include <Windows.h>
#include <time.h>
using namespace std;
--
::가위 바위보 게임::
컴퓨터와 유저간의 게임
--
#define col GetStdHandle(STD_OUTPUT_HANDLE) // 콘솔창의 핸들정보 받기
#define YEL SetConsoleTextAttribute( col, 0x000e); //노란색
#define SKY SetConsoleTextAttribute( col, 0x000b); //하늘색
#define HIGH SetConsoleTextAttribute( col,0x00a); // 연두
int main(void){
int Money=0;//유저머니
int bettingMoney=0;//배팅 금액
int draw=0;//무승부
int user=1;//유저승
int computer=2;//컴퓨터 승
int computerHand;//컴퓨터
int userHand;//유저
int winner;//승자
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t ==========================================\n";
cout<<"\tㅣ ♠ 가위 바위 보 게임 ♠ ㅣ\n";
cout<<"\t ==========================================\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임머니 충전 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
//게임머니 입력받기
cout<<"\tMONEY : ";
cin>>Money;//머니 충전
if(Money==0){//0원입력시
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 금액을 입력하세요 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\tMONEY : ";
cin>>Money;//금액을 다시 입력
}else if(Money<100){
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 최소입금 금액은 100원입니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\tMONEY : ";
cin>>Money;//금액을 다시 입력
}
system("cls");
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ MONEY \t \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 배팅금액 설정 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t판돈입력 : ";
cin>>bettingMoney;//판돈입력
system("cls");
--
판돈체크함
보유금액보다 많은 금액을 입력할경우
판돈을 0원으로 입력할경우
판돈이 100 이하로 입력할경우
--
if(bettingMoney>Money){//보유한 금액이 판돈보다 작을경우
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 금액이 부족 합니다 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 유저보유금액 \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t판돈입력 : ";
cin>>bettingMoney;//판돈을 입력한다
}else if(bettingMoney==0){
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 금액을 입력하세요 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t판돈입력 : ";
cin>>bettingMoney;//판돈을 입력한다.
}else if(bettingMoney<100){//판돈이 100이하일경우
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 판돈금액은 최소 100원입니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
//만일 보유금액이 100원이하일경우 다시 충전시킨다.
SKY;
if(Money<100){//보유금액이 100이하일경우
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임머니 충전 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
//게임머니 다시 충전하기
cout<<"\tMONEY : ";
cin>>Money;//머니를 다시 충전한다.
system("cls");
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 유저보유금액 \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}
cout<<"\t판돈입력 : ";
cin>>bettingMoney;//판돈입력받기
system("cls");
}else{
Money=Money+Money-bettingMoney;//현재 보유한 금액
}
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임규칙 ::::가위 0 바위 1 보 2:::: ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 유저보유금액 \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 판돈 \t"<<bettingMoney<<"\t\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
system("cls");
HIGH;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임 시작.. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임규칙 ::::가위 0 바위 1 보 2:::: ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
//가위바위보 입력 받기
cout<<"\t입력 : ";
cin>>userHand;//입력받기
if(userHand==0){
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 가위를 입력하셨습니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}else if(userHand==1){
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 바위를 입력하셨습니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}else if(userHand==2){
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 보를 입력하셨습니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}
-- 유저가 입력 받은 가위바위보 예외 처리 --
if(userHand !=0 && userHand != 1 && userHand !=2){
system("cls");
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임규칙 ::::가위 0 바위 1 보 2:::: ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 게임 규칙대로 입력하세요 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
Sleep(1000);
SKY;
cout<<"\t입력 : ";
cin>>userHand;//다시 입력받기
}
--**********************************************************************--
--컴퓨터의 가위바위보 를 랜덤으로 생성하기위하여
rand 함수를 사용한다.
rand 함수에 의해 생성되는 정수는 0~n 까지의 임이의 정수이다.
0~2까지의 임이의 수를 발생시키려면 rand()%3과같이 사용한다.
난수를 다르게 발생시키기ㅣ 위하여 시드값을 주는 방법을 사용한다.
시드값이 다르면 함수 rand()에서 발생시키는 난수가 다르게 나온다.
--
--**********************************************************************--
srand(time_t(NULL));
computerHand=rand()%3;//컴퓨터의 가위바위보를 랜덤으로 생성
--컴퓨터와 유저의 게임승부를 판정
무승부일경우,컴퓨터가 승일경우,유저가 승일경우
--
if(userHand==0 && computerHand==0 ||
userHand==1 && computerHand==1 ||
userHand==2 && computerHand==2 ){//컴퓨터와 유저가 같을경우
winner=draw;//무승부
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 무승부입니다.다시 하세요 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
Sleep(1000);
SKY;
cout<<"\t입력 : ";
cin>>userHand;//다시 입력받기
}
if(userHand==0 && computerHand==1){//유저 가위 컴퓨터 바위
winner=computer;///컴퓨터 승
}else if(userHand==0 && computerHand==2){
winner=user;//유저 승
}else if(userHand==1 && computerHand==0){
winner=user;//유저 승
}else if(userHand==1 && computerHand==2){
winner=computer;//컴퓨터 승
}else if(userHand==2 && computerHand==0){
winner=computer;//컴퓨터 승
}else if(userHand==2 && computerHand==1){
winner=user;//유저승
}
--판돈 처리--
if (winner==computer)
{
Money=Money-bettingMoney;//배팅금액을 컴퓨터가 가져감
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 컴퓨터가 승리하였습니다 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
SKY;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ MONEY \t \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}else{
Money=bettingMoney*2+Money;//배팅금액의 두배를 유저가 가져감
YEL;
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 당신이 승리하였습니다 ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
SKY;
//보유금액을 출력한다.
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 보유금액 \t \t"<<Money<<"\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
}
cout<<"\t┏━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<"\t┃ 2초후게임을 종료 합니다. ┃\n";
cout<<"\t┗━━━━━━━━━━━━━━━━━━━━━┛\n";
Sleep(2000);
return 0;
}
반응형