두가지 질문...(요약하기가 어렵내요... 죄송합니다..)
한봄찬
질문 제목 : 두가지 질문...(..질문 내용 : ..
#include stdio.h
#include conio.h
#include windows.h
#define up 72
#define down 80
#define left 75
#define right 77
#define enter 13
#define stage_max_x 17
#define stage_max_y 17
enum {hidden, show};
int map[stage_max_y][stage_max_x] ={
{1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1},
{1,1,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1},
{1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,1},
{1,1,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1},
{1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1},
{1,0,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1},
{0,0,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1},
{0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1},
{3,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1},
{1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1},
{1,0,1,1,0,0,0,0,1,1,1,1,1,1,0,0,1},
{1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,1},
{1,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,1},
{1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,1},
{1,0,1,1,0,1,1,0,0,0,0,1,1,1,1,1,1},
{1,0,0,2,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
int player_x;
int player_y;
/*---------------------------------------------------------------------------------------------*/
void cursorview(char show)
{
handle hconsole;
console_cursor_info consolecursor;
hconsole = getstdhandle(std_output_handle);
consolecursor.bvisible = show;
consolecursor.dwsize = 1;
setconsolecursorinfo(hconsole , &consolecursor);
}
/*---------------------------------------------------------------------------------------------*/
void gotoxy(int x, int y)
{
coord xy = {x, y};
setconsolecursorposition(getstdhandle(std_output_handle), xy);
}
/*---------------------------------------------------------------------------------------------*/
void playererase(void)
{
gotoxy(player_x * 2, player_y);
printf( );
}
/*---------------------------------------------------------------------------------------------*/
void playerdraw(void)
{
gotoxy(player_x * 2, player_y);
printf(★);
}
void teleportdraw(void)
{
gotoxy(player_x * 2, player_y);
printf(…);
}
/*---------------------------------------------------------------------------------------------*/
void playerinit(void)
{
player_x = 1;
player_y = 0;
playerdraw();
}
/*---------------------------------------------------------------------------------------------*/
void board_1(void)
{
int x, y;
for (y = 0; y stage_max_y; y++){
for (x = 0; x stage_max_x; x++){
switch (map[y][x])
{
case 0: printf( ); break;
case 1: printf(■); break;
case 2: printf(※); break;
case 3: printf(…); break;
}
}
printf(\n);
}
}
/*---------------------------------------------------------------------------------------------*/
void playermove (void)
{
int key;
int tele;
for(;;){
key=getch();
switch(key){
case up :
if((map[player_y - 1][player_x] == 0) && (player_y 0)){
playererase();
player_y-=1;
playerdraw();
}
break;
case down :
if((map[player_y + 1][player_x] == 0) && (player_y stage_max_y - 1)){
playererase();
player_y+=1;
playerdraw();
}
else if(map[player_y + 1][player_x] == 3)
{
playererase();
&nbsbsp;player_y+=1;
teleportdraw();
tele=getch();
if(tele==enter){
player_y-=3;
player_x+=8;
teleportdraw();
}
}
break;
case left :
if((map[player_y][player_x - 1] == 0) && (player_x 0)){
playererase();
player_x-=1;
playerdraw();
}
break;
case right :
if((map[player_y][player_x + 1] == 0) && (player_x stage_max_x - 1)){
playererase();
player_x+=1;
playerdraw();
}
break;
}
}
}
/*---------------------------------------------------------------------------------------------*/
int main()
{
cursorview(hidden);
board_1();
playerinit();
playermove();
cursorview(show);
}
이런 미로찾기 소스를 만들엇는데요..
두가지질문..
1. 저기.. 함수중에 teleport 있잖아요. .그리고 playermove 함수에서 casedown : 이부분에서
좀이상하게 해가지구요..
하려는것은..
특정한 장소 (제 소스에선 map[0][10] 이구요..) 에서 엔터키를 눌르면 다른 장소로 이동을한다..
이렇게 하고싶은데..
다른방법을 알려주시면감사하겟구요..
2. 게임을 끝내려는건 어떻게 해야할까요..?
대략 감은오는데 못하겟네요..
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694450 | while문질문입니다. (1) | 허리품 | 2025-05-11 |
2694420 | C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) | 은새 | 2025-05-11 |
2694370 | 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 | 들찬 | 2025-05-10 |
2694339 | putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) | 미르 | 2025-05-10 |
2694316 | 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) | 나빛 | 2025-05-10 |
2694285 | 언어 공부하는 과정 좀 추천해주세요! (1) | 아빠몬 | 2025-05-09 |
2694258 | 카운터.. 질문입니다. (4) | 하늘빛눈망울 | 2025-05-09 |
2694229 | 단순한 질문이요 (8) | 여름 | 2025-05-09 |
2694202 | 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) | 미나 | 2025-05-09 |
2694145 | 화면깜빡임을 없애고 싶은데요... (1) | 어서와 | 2025-05-08 |
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |