#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* ### 방탈출 게임 ###
문을 열고 나가면된다 // 방에 갇혔다. 나는 무엇을 해야하는가? < 책상:1, 침대:2, 책장:3, 옷장:4, 문:5 >
문을 열기 위해서는 열쇠가 필요하다 // 열쇠 조각을 획득했다! , 열쇠가 없다!
책상 열쇠조각1
침대 열쇠조각2
책장 열쇠조각3
옷장 열쇠조각4
를 모아 책상에 다시 가면 조립이 가능하다 // 도구상자에서 열쇠를 조립하는데 성공했다!
조립을 하면 열쇠를 얻고, 얻은 열쇠를 이용하여 방을 탈출한다 */ // 탈출 성공
void EscapeMain()
{
int Stage = 0; // 위치를 바꾼다
int DOO = 0;
int Key = 0;
int Key1 = 0;
int Key2 = 0;
int Key3 = 0;
int Key4 = 0;
enum Stage { EXIT = 0, DESK, BED, BOOK, WARDROBE, DOOR };
while (Stage != -1)
{
printf("방에 갇혔다. 어디로 가야하지? (%d:책상, %d:침대, %d:책장, %d:옷장, %d:문):", DESK, BED, BOOK, WARDROBE, DOOR);
scanf("%d", &Stage);
if (DOO == 4) // 열쇠를 조립했을때 5번방으로 가 탈출에 성공한다,
{
printf("탈출에 성공했다~!\n");
}
if (Key == 4) // 열쇠 조각을 다 모은 후 4개가 되면 1번방으로 갔을때 열쇠를 조립한다.
{
if (Key == 4)
printf("도구 상자에서 열쇠를 조립하는데 성공하였다.\n");
Key == DOO;
} // 열쇠를 다 찾고 다시 1번으로 간 뒤 열쇠를 완성 시키고 5번 문으로 가서 나간다.
switch (Stage) // 잘 모르는 부분 : 열쇠조각을 얻은 후에 다시 가게 되면 아무 반응이 없어야 하는데 어떤 문으로 써야할지...
{
case DESK:
printf("책상에서 '열쇠조각1'를 획득했다! \n");
Key = Key + 1; // 열쇠조각을 모아야 하기 때문에 + 1 를 한다
break;
case BED:
printf("침대 밑에서 '열쇠조각2'를 획득했다! \n");
Key = Key + 1;
break;
case BOOK:
printf("책장 서랍에서 '열쇠조각3'를 획득했다! \n");
Key = Key + 1;
break;
case WARDROBE:
printf("옷장 안에서 '열쇠조각4'를 획득했다! \n");
Key = Key + 1;
break;
case DOOR:
printf("문이 굳게 잠겨 열리지 않는다. \n");
break;
default:
printf("??\n");
break;
}
}
}
void main()
{
EscapeMain();
}
top of page
기능을 테스트하려면 라이브 사이트로 이동하세요.
방탈출 게임
방탈출 게임
댓글 1개
좋아요
댓글 1개
bottom of page
1.33~42 굳이 필요하지않은 코드입니다.
처리를 많은 분기문으로 만들지말고,
우선적으로 구현되어 있지않은 상황들을 글로 정리해보세요.
2.코딩을 할때 현실을 모델로 생각해보세요. 예를들면 방문했던장소라면 true,아니면 false이런 식으로.
3.다시 한번 강조하지만 중요한것은 자신의 생각을 정리해서 코드를 옮겨야합니다.
아무것도 없는것에서 생각부터 정리하고 자신의 코드를 만들어보세요.