ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • if문을 이용한 가위바위보게임
    카테고리 없음 2013. 2. 20. 01:47
    반응형

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

    반응형
Designed by Tistory.