본문 바로가기

c++ 공부기록

c++ 기초게임 만들기 <가위바위보>

c++의 if()문을 이용한 정말 간단한 가위바위보 게임 입니다.

코드를 치기전에 먼저

어떤식으로 작동할지를 간단하게 생각해봅시다

 

1.사용자가 가위,바위,보 중에 어떤것을 낼지 입력해야합니다.

2.컴퓨터가 낼 값과 그의 결과값을 하나하나 입력해야합니다

위에처럼 아주 간단하게 생각할 수 있겠죠

 

이젠 코드를 보시죠

 

#include "pch.h"
#include  <iostream>
#include  <string>
using namespace std;

int main()

    //사용자가 낼 수를 입력하기(가위or바위or보 중 택1)

string player;//플레이어 수를 저장함

cout << "무엇을 내시겠습니까? :  \n";
cin >> player;
cout << "플레이어는 " << player << "를 냈습니다.\n";

string computer;//컴퓨터의 수를 저장함

cout << computer;
cin >> computer; 

//컴퓨터의 낼 수와 사용자가 낼 수의 경우와 결과를 전부 입력후

if (player == "가위") {

if (computer == "바위") {
cout << "컴퓨터는 바위를 냈습니다.\n";
cout << "=============플레이어는 졌습니다.============";
}
else if (computer == "가위") {
cout << "컴퓨터는 가위를 냈습니다.\n";
cout << "=============플레이어는 비겼습니다.============";
}
else if (computer == "보") {
cout << "컴퓨터는 보를 냈습니다.\n";
cout << "=============플레이어는 이겼습니다.============";
}
}
else if (player == "바위") {

if (computer == "바위") {
cout << "컴퓨터는 바위를 냈습니다.\n";
cout << "=============플레이어는 비겼습니다.============";
}
else if (computer == "가위") {
cout << "컴퓨터는 가위를 냈습니다.\n";
cout << "=============플레이어는 이겼습니다.============";
}
else if (computer == "보") {
cout << "컴퓨터는 보를 냈습니다.\n";
cout << "=============플레이어는 졌습니다.============";
}
}
else if (player == "보") {

if (computer == "바위") {
cout << "컴퓨터는 바위를 냈습니다.\n";
cout << "=============플레이어는 이겼습니다.============";
}
else if (computer == "가위") {
cout << "컴퓨터는 가위를 냈습니다.\n";
cout << "=============플레이어는 졌습니다.============";
}
else if (computer == "보") {
cout << "컴퓨터는 보를 냈습니다.\n";
cout << "=============플레이어는 비겼습니다.============";
}
}

//사용자가 낼 수를 입력하면 컴퓨터의 수를 랜덤으로 출력해서 결과를 출력함
}

이렇게 간단하게 만들 수 있습니다 

그냥 플레이어의 수를 입력하면

입력에 따라 컴퓨터가 낼 수와 승리,패배,비김을 출력하게 만드는것 입니다

 

별거 아니지만 이렇게 어떻게 짤지 생각해보고 집접 코드를 짜보는 습관이 중요한거 같아요

 

=====================추가========================

이번엔 if,switch,while를 다 활용해서 써 보겠습니다

#include "pch.h" 
#include  <iostream>
#include  <string>
using namespace std; 

 

int main() 
{

int player, ai; 
string a;//플레이의 선택한 수를 문자로 보여주기 위함

while (true)
{
cout << "0. 가위" << endl;
a = "가위";

cout << "1. 바위" << endl;
a = "바위";

cout << "2. 보" << endl;
a = "보";

cout << "4. 종료" << endl;
cout << "선택 하시오" << endl;

cin >> player;

switch (player)
{
case 0:
cout << "플레이어 >> 가위" << endl;
break;
case 1:
cout << "플레이어 >> 바위" << endl;
break;
case 2:
cout << "플레이어 >> 보" << endl;
break;
}

if (player < 1 || player > 4) // 1~4번 외 다른 입력을 했을 경우
{
cout << "잘못 입력 했습니다." << endl;
system("pause");//일지정지
continue; //반복문의 시작점으로 이동 시켜주는 기능
}

else if (player == 4)
{
break;//반복문에서 빠져나감 즉 종료
}

ai = rand() % 3;//로봇이 선택한 수

switch (ai)
{
case 0:
cout << "컴퓨터 >> 가위" << endl;
break;
case 1:
cout << "컴퓨터 >> 바위" << endl;
break;
case 2:
cout << "컴퓨터 >> 보" << endl;
break;
}

int win = player - ai; 

if (win == 1 || win == -2)  //플레이어의 값과 컴퓨터의 값을 뻈을떄 1이나 -2가 나왔을 경우 플레이어 승리
cout << "player 승리!" << endl;
else if (win == 0) //플레이어의 값과 컴퓨터의 값을 뻈을떄 0이 나왔을 경우 플레이어 승리
cout << "비겼음!" << endl;
else //0 ~ -2 외에 값이 나왔을 경우 ai 승리
cout << "ai 승리!" << endl;

//예) 플레이어가 1(바위)냈을떄 ai가 1를 냈다고 하면 1-1 이니까 결과값은 0이고 0의 조건 결과값인 비겼음이 출력됨
//예) 플레이어가 1(바위)냈을떄 ai가 2를 냈다고 하면 1-2 이니까 결과값은 -1이고 -1은 else의 조건 결과값인 ai승리가 출력됨
//예) 플레이어가 1(바위)냈을떄 ai가 0를 냈다고 하면 1-0 이니까 결과값은 1이고 1의 조건 결과값인 플레이어 승리가 출력됨

system("pause");
}

}