티스토리 뷰

반응형

C언어 독학 기초 # 가위바위보 게임

 

모든 강의 자료 : www.codingnow.co.kr/

이번에는 가위바위보 게임을

만들어 봅니다.

컴퓨터와 10회 겨루어

승패를 출력합니다.

출력 결과는 아래와 같습니다.

우선 필요한 변수를 선언합니다.

int input; //입력 받을 정수(1~3)
int computer; //컴퓨터의 랜덤수
int cnt; //10회를 카운트
int score[3] = {0, 0, 0};//승패를 카운트
char* str[3] = {"가위", "바위", "보"};//문자열

랜덤함수를 초기화 합니다.

C에서는 랜던함수를 초기화 하지 않으면

동일한 값만 나옵니다.

srand(time(NULL));//램덤 수 초기화

게임을 10회 반복

cnt = 0;
while(cnt < 10)
{
	cnt++;
}

유저에게 입력값을 받습니다.

1~3이외의 수는 다시 입력을

받습니다.

printf(" %d 번째 당신의 선택은 ? ",cnt);
scanf("%d",&input);
fflush(stdin); //입력 버퍼지우기

if(input<1 || input > 3)
{
  printf("잘못 입력했습니다. 가위는 1, 바위는 2, 보는  3을 입력\n");
  continue;
}

컴퓨터의 랜덤수를 1~3

받습니다.

또한 유저와 컴퓨터의 입력 값을

출력합니다.

computer = (rand()%3)+1;//(3 이하의 랜덤 값), 1~3까지의 값

printf("  당신의 선택은 [%s],",str[input-1]);
printf("컴퓨터의 선택은 [%s],",str[computer-1]);

승패의 조건을 따집니다.

무승부일때

이겼을때의 조건을

switch로 구분하여

처리하고

각 승패에따라

점수를 카운트하고

결과를 출력합니다

if(input == computer)
{
  score[0] ++;
  printf(" ==> 비겼습니다.\n\n");
}else{
  char win = 0;
  switch(input)
  {
    case 1://가위
    {
      if(computer == 3) //보
      {
      	win = 1;
      }					
      break;
    }
    case 2://바위
    {
      if(computer == 1) //가위
      {
      	win = 1;
      }
      break;
    }
    case 3://보
    {
      if(computer == 2) //바위
      {
      	win = 1;
      }
      break;
    }
  }

  if(win == 1)
  {
    score[1] ++;
    printf(" ==> 이겼습니다.\n\n");				
  }else{
    score[2] ++;
    printf(" ==> 패했습니다.\n\n");	
  }
}	

전체 소스 입니다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 

int main(void)
{
  int input; //입력 받을 정수(1~3)
  int computer; //컴퓨터의 랜덤수
  int cnt; //10회를 카운트
  int score[3] = {0, 0, 0};//승패를 카운트
  char* str[3] = {"가위", "바위", "보"};//문자열

  srand(time(NULL));//램덤 수 초기화

  printf("\n\n---------------------------------------\n");
  printf("가위 바위 보 게임을 10회 진행합니다.\n");
  printf("가위는 1, 바위는 2, 보는  3을 입력\n");	
  printf("---------------------------------------\n\n");

  cnt = 0;
  while(cnt < 10)
  {
    printf(" %d 번째 당신의 선택은 ? ",cnt);
    scanf("%d",&input);
    fflush(stdin); //입력 버퍼지우기

    if(input<1 || input > 3)
    {
      printf("잘못 입력했습니다. 가위는 1, 바위는 2, 보는  3을 입력\n");
      continue;
    }

    computer = (rand()%3)+1;//(3 이하의 랜덤 값), 1~3까지의 값

    printf("  당신의 선택은 [%s],",str[input-1]);
    printf("컴퓨터의 선택은 [%s],",str[computer-1]);

    if(input == computer)
    {
      score[0] ++;
      printf(" ==> 비겼습니다.\n\n");
    }else{
      char win = 0;
      switch(input)
      {
        case 1://가위
        {
          if(computer == 3) //보
          {
          	win = 1;
          }					
          break;
        }
        case 2://바위
        {
          if(computer == 1) //가위
          {
          	win = 1;
          }
          break;
        }
        case 3://보
        {
          if(computer == 2) //바위
          {
          	win = 1;
          }
          break;
      	}
      }

      if(win == 1)
      {
        score[1] ++;
        printf(" ==> 이겼습니다.\n\n");				
      }else{
        score[2] ++;
        printf(" ==> 패했습니다.\n\n");	
      }
    }	
	cnt++;
  }
		
  printf("\n결과는 [%d]승 [%d]패 [%d]무승부 입니다.\n",score[1],score[2],score[0]);
  return 0;
}

 

가위바위보를 응용한 묵찌바 게임 강의입니다.

https://cflab2017.tistory.com/110

 

파이썬과 C언어 기초 활용편#가위바위보 게임 응용하여 #묵찌빠 게임 만들기#random

다른 강의자료는 www.codingnow.co.kr/ 여기를 참고해주세요.!! 코딩나우 프로그래밍 교육및 개발의뢰 받습니다. www.codingnow.co.kr youtu.be/61Y5O-Pq1rI 묵찌빠 게임을 만들어 봅니다. 여기서는 if와 함수 사..

cflab2017.tistory.com

 

반응형