게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
본삭금) 아직도 해결 못하고 있는 메뉴선택...ㅠㅠ
게시물ID : programmer_14645짧은주소 복사하기
작성자 : 베오베감이다
추천 : 0
조회수 : 503회
댓글수 : 3개
등록시간 : 2015/11/28 16:38:28
옵션
  • 본인삭제금지

뉴를 출력한뒤 방향키를 이동하여 메뉴를 선택하고 엔터키를 누르면

선택한 메뉴의 화면을 출력하는 소스를 만들고 싶은데

이곳저곳 다뒤져봐도 도저히 답이 안나옵니다..


printMenu 함수에서 출력된 화면을 지워주고 startMenu함수를 띄워야 하는데

while문으로 무한루프 돌리다보니

printMenu 함수가 지워지지 않고 계속 남아있습니다

어떻게 해결해야 할까요ㅠ


#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <string.h>
#include <stdlib.h>


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

int menuPos = 0;
int menuNum;


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()
{
 system("cls");
 puts("게임을 시작합니다.\n");
}
void tutorial()
{
 system("cls");
 puts("게임 설명ddddddddd.\n");
}
void endgame()
{
 system("cls");
 puts("게임 종료aaaaaaaaaaaa.\n");
}
void creater()
{
 system("cls");
 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");
  creater();
  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; 
  }   
 }
 if( ch==13)
 {
  system("cls");
  menuNum=menuPos;
  startMenu(menuNum);  
 }
 
 return 0;
}

int main()
{
   hideCursor();
   while(1)
   {    
    printMenu();
    selectMenu();
   
   }  
 
   return 0;
}

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