[C] 햄버거 쌓기 게임

2022. 4. 25. 14:25·언어/C
728x90
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int level;
char patty;
char cheese;
char cabbage;
char tomato;
char mushroom;
int ingredient[5] = { 0,0,0,0,0 };
int answer[6] = { 0,0,0,0,0,0 };
int myAnswer[6] = { 0,0,0,0,0,0 };

void burgerData();
void printHamburger(int inside);


int main(void)
{
	srand(time(NULL));

	long startTime = 0;
	long prevTime = 0;
	long totalTime = 0;

	int num;
	
	burgerData();
	startTime = clock();

	while (1)
	{
		printf("1번 : patty (ppppppppp)\n");
		printf("2번 : cheese (ccccccccc)\n");
		printf("3번 : cabbage (cabcabcab)\n");
		printf("4번 : tomato (ttttttttt)\n");
		printf("5번 : mushroom (mmmmmmmmm)\n\n\n");

		totalTime = (clock() - startTime) / CLOCKS_PER_SEC;
		printf("총 경과 시간 : %d초\n", totalTime);
		prevTime = totalTime - prevTime;
		printf("직전 라운드부터 경과 시간 : %d초\n", prevTime);

		// 랜덤 버거 프린트
		
		if ((totalTime / 30) > level - 1)
		{
			printf("\n\n\n*** %d레벨로 레벨 업***\n\n\n", level + 1);
			level++;
			if (level == 5)
			{
				printf("***최종 레벨 도달 성공!***\n");
				exit(0);
			}
		}
		if (prevTime >= 15)
		{
			printf("\n시간 초과입니다. 게임을 종료합니다.\n");
			exit(0);
		}

		printf("┏━━━━━━━━┓\n");
		printf("┗━━━━━━━━┛\n");
		for (int i = 0; i < level + 2; i++)
		{
			int inside = rand() % 5;
			answer[i] = inside;
			printHamburger(inside);
		}
		printf("┏━━━━━━━━┓\n");
		printf("┗━━━━━━━━┛\n\n\n");

		// 내가 버거 만들 차례
		
		printf("버거를 만드세요 : ");
		for (int i = 0; i < level + 2; i++)
		{	
			scanf_s("%d", &num);
			myAnswer[i] = num-1;
			if (num > 5 || num < 1)
			{
				printf("잘못된 입력입니다.\n");
				exit(0);
			}
		}

		printf("┏━━━━━━━━┓\n");
		printf("┗━━━━━━━━┛\n");
		for (int i = 0; i < level + 2; i++)
		{
			printHamburger(myAnswer[i]);
		}
		printf("┏━━━━━━━━┓\n");
		printf("┗━━━━━━━━┛\n");
		

		for (int i = 0; i < level + 2; i++)
		{
			if (answer[i] == myAnswer[i])
			{
				continue;
			}
			else 
			{
				printf("버거가 올바른 순서로 쌓이지 않았습니다.\n");
				exit(0);
			}
		}
		printf("\n\n***성공***\n\n");

		prevTime = totalTime;
	}

	return 0;
}

void burgerData()
{
	level = 1;

	ingredient[0] = patty;
	ingredient[1] = cheese;
	ingredient[2] = cabbage;
	ingredient[3] = tomato;
	ingredient[4] = mushroom;
}

void printHamburger(int inside)
{
	
	if (inside == 0)
	{
		printf(" ppppppppp\n");
	}
	else if (inside == 1)
	{
		printf(" ccccccccc\n");
	}
	else if (inside == 2)
	{
		printf(" cabcabcab\n");
	}
	else if (inside == 3)
	{
		printf(" ttttttttt\n");
	}
	else if (inside == 4)
	{
		printf(" mmmmmmmmm\n");
	}
	
}

혼자 심심해서 만들어본 햄버거 쌓기 게임이다. 전에 만든 물고기 포인터 게임과 기본적인 틀이 같다.

위아래 빵은 기본으로 프린트 되게 두고 안에 내용물이 랜덤으로 나와 쌓인다. 게임은 레벨 5까지 진행된다. 30초에 한 번씩 레벨이 업그레이드 되고, 각각 라운드를 15초 안에 해치우지 못하면 게임 오버다. 레벨이 올라갈 수록 초가 빨리 흐르게 하기 위해서는

if (level == 1)
	{
		if(prevTime >= 15)
		{
			printf("\n시간 초과입니다. 게임을 종료합니다.\n");
			exit(0);
		}
	}
else if (level == 2)
	{
		if (prevTime >= 12)
		{
			printf("\n시간 초과입니다. 게임을 종료합니다.\n");
			exit(0);
		}
	}

이런 식으로 각각 레벨마다 if문으로 감싸는 방법이 있겠다. 물론 매우 번거롭고 코드가 길어지는 더러운 방법이다. 다른 방법은 더 생각해보고 나중에 추가해야겠다.

레벨 1에서는 내용물이 3층이고 레벨 2는 4층, 3은 5층, 4는 6층이다. 레벨 5는 최종 레벨이므로 게임을 진행하지 않는다.

처음 나온 버거와 내가 만든 버거의 내용물을 비교하는 방법을 고민하다가 각자 어레이에 넣어봤다. 같은 위치에 같은 내용물이 있으면 성공, 아니면 실패다.

어릴 때 웹페이지에서 했던 플레쉬 게임처럼 웹페이지로 게임을 옮기고 싶다.

728x90

'언어 > C' 카테고리의 다른 글

[C] Debug Assertion Failed!  (1) 2023.02.01
[C] 0xC0000005: 0x0000000000000003 위치를 읽는 동안 액세스 위반이 발생했습니다.  (0) 2023.01.31
[C] 캐스트 연산자  (0) 2022.04.25
[C] 구조체 - 고양이 뽑기 게임  (0) 2022.04.25
[C] 포인터 - 어항 속 물고기 게임  (0) 2022.04.25
'언어/C' 카테고리의 다른 글
  • [C] Debug Assertion Failed!
  • [C] 0xC0000005: 0x0000000000000003 위치를 읽는 동안 액세스 위반이 발생했습니다.
  • [C] 캐스트 연산자
  • [C] 구조체 - 고양이 뽑기 게임
돌멩이수프
돌멩이수프
Information technology
  • 돌멩이수프
    WHAT DOES "IT" STAND FOR?
    돌멩이수프
  • 전체
    오늘
    어제
    • 분류 전체보기 (238) N
      • 언어 (73)
        • html (3)
        • css (1)
        • java (6)
        • C (26)
        • C++ (2)
        • C# (29)
      • 공부 (7)
        • Unity (43)
        • 게임 서버 (26)
        • 네트워크 (5)
        • 데이터베이스 (7)
        • EFCore (19)
        • 기타 (14)
        • Git (5)
        • 운영체제 (1)
        • 소프트웨어공학 (21)
      • 2024-여름 (12)
      • 자기 관리 (3) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유니티
    EntityFramework
    디자인패턴
    게임서버
    unity
    HTML
    백준
    C언어
    C
    라즈베리파이
    코딩
    C#
    네트워크
    EFCore
    coding
    Python
    java
    자바
    Entityfamework
    tcp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
돌멩이수프
[C] 햄버거 쌓기 게임
상단으로

티스토리툴바