오늘의하루

C언어 다이아몬드 키우기 게임 본문

코딩공부

C언어 다이아몬드 키우기 게임

오늘의하루_master 2022. 4. 22. 12:40

C언어를 통해 피라미드를 만들고 나서 심심해서 만들어본 다이아몬드 키우기 게임

혹시 C언어로 피라미드를 만들어보신 적이 없으시면 아래 글을 참고해주세요.

2022.04.21 - [코딩공부] - C언어 피라미드, 마름모 별찍기(for문 연습)

 

C언어 피라미드, 마름모 별찍기(for문 연습)

C언어를 배우면 for문에서 무조건 나오는 피라미드와 마름모 별(*)찍기에 대해 글을 작성하였습니다. 여기서 사용되는 것은 이중 for문이며 간단한 덧셈 곱셈만 할 줄 안다면 만들 수 있습니다. 사

jangto.tistory.com

다이아몬드 키우기 게임

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


void size();

int num1;
int num2;
int answer;
int level = 1;

int main (void)
{
  srand(time(NULL));
  
  printf(" === 다이아몬드 키우기 게임 === \n");
  printf("곱셈 문제를 해결하면 다이아몬드 레벨이 상승합니다.\n");
  printf("(종료를 원하는 경우 -1을 입력하세요.)\n\n");
  
  while(1)
  { 
    num1 = rand() % level * 4 + 1;
    num2 = rand() % level * 4 + 1;
    printf(">> %d번 문제 : %d x %d = ?\n",level, num1, num2);
    printf("정답 : ");
    scanf("%d",&answer);

    if (answer == -1)
    {
      printf("\n\n시스템을 종료합니다.\n\n");
      break;
    }
    else if (answer == num1 * num2)
    {
      level = level + 1;
      printf("\n === 레벨업! === \n");
      printf("다이아몬드 레벨 : %d\n", level);
    }
    else
    {
      level = level - 1;
      printf("\n === 레벨다운! === \n");
      printf("다이아몬드 레벨 : %d\n", level);
    }
    size();
    
    if (level == 0)
    {
      printf("당신이 바보여서 게임에서 졌습니다.\n\n");
      break;
    }
  }
  return 0;
}

void size()
{
  int test = level-2;
  for (int i = 0; i < level; i++)
    {
      for(int v = i; v < level-1; v++)
        {
          printf(" ");
        }  
      for (int j = 0; j < i*2+1; j++)
        {
          printf("*");
        }
    printf("\n");  
    }
  for (int i = 0; i < level-1; i++)
    {
      for (int j = 0; j<=i; j++)
        {
          printf(" ");
        }
      for (int k = test*2+1; k > 0; k--)
        {
          printf("*");
        }
      printf("\n");
      test = test -1;
      }
}

실행결과


if를 이용한 조건문과 for문을 이용한 반복문만 알고있다면 손쉽게 만들 수 있는 다이아몬드 게임이였습니다.

Comments