게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금) 메뉴선택,커서이동,선택후 창변환 질문
게시물ID : programmer_14636짧은주소 복사하기
작성자 : 베오베감이다
추천 : 0
조회수 : 4579회
댓글수 : 3개
등록시간 : 2015/11/27 23:12:35
옵션
  • 본인삭제금지

자꾸 질문드려서 죄송합니다.

제가 물어볼곳이 여기밖에 없어서요...


메뉴가 있고 방향키로 그 메뉴들을 선택할 수 있고

엔터키를 누르면

메뉴선택창이 사라지고

선택한 창으로 변환이 되어야 하는데

4시간 좀 넘게 하고있는데 여기서부터는 혼자 무리가 있어서 질문드려요


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h> 

#define LEFT   75      // 좌측방향키
#define RIGHT  77      // 우측방향키
#define UP     72      // 위쪽방향키
#define DOWN   80      // 아래방향키
#define ENTER  13     // 엔터키

int menuPos = 0;
int menuNum = 0;

void gotoxy(int x, int y)
{
    COORD Cur;
    Cur.X=x;
    Cur.Y=y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}

void hideCursor()
{
   CONSOLE_CURSOR_INFO CurInfo;
   CurInfo.dwSize=1;
   CurInfo.bVisible=FALSE;
   SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&CurInfo);
}

void printMenu()
{
   gotoxy(0, 0);
   puts("1.게임 시작");
   puts("2.게임 방법");
   puts("3.게임 종료");
   puts("4.만든 사람");
   gotoxy(0, menuPos);
   puts("★");
}

void gamestart()
{
 puts("게임을 시작합니다.\n");
}
void tutorial()
{
 puts("게임 설명ddddddddd.\n");
}
void endgame()
{
 puts("게임 종료aaaaaaaaaaaa.\n");
}
void creator()
{
 puts("만든사람ffffffffffffff\n");
}

void startMenu(int menuNum)
{
 
 switch(menuNum)
 {
 case 0:
  system("cls");
  gamestart();
  break;
  
 case 1:
  system("cls");
  tutorial();
  break;

 case 2:
  system("cls");
  endgame();
  break;

 case 3:
  system("cls");
  creator();
  break;
 }  
}
int selectMenu()
{
 int ch;
 ch = getch();

 if( ch == 0xE0 || ch == 0x00 ) // 확장키가 눌렸다
 {
  ch = getch();
  switch(ch)
  {
  case 72: // 위쪽 화살표키
   menuPos--;
   if(menuPos < 0)
    menuPos = 0;
   break;

  case 80: // 아래쪽 커서키
   menuPos++;
   if(menuPos > 3)
    menuPos = 3;
   break;
  } 
 }
 else if( ch == 13 )
 {  
  menuNum=menuPos;  
  startMenu(menuNum);
 }
 return 0;
}



int main()
{  
 int ch;
 ch=getch();
   hideCursor();

   while(1)
   { 
   if(ch==13)
   { 
    startMenu(menuNum);
    break;   
   }
      printMenu();  
      selectMenu();
  
   }
   system("cls");
  

  
 
   return 0;
}


제가 보기엔 break 문을 어디서 빠져나와야 하는지와

system("cls"); 를 어디서 써야할지가 문제인것 같은데


도통 여기저기 집어넣고 빼봐도 안되네요ㅠㅠ





전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호