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 |