본문 바로가기
카테고리 없음

if문을 이용한 가위바위보게임

by ByteBridge 2013. 2. 20.
반응형

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;
 }

반응형