c언어 게임 만들기 -snake game !!

1일차


기본 인터페이스와 뱀 머리 구현 해보기


게임 시작화면 틀 잡기

코드 보기

#include< stdio.h>

#include <Windows.h> 
#include <conio.h>

#define LEFT 75

#define RIGHT 77

#define UP 72

#define DOWN 80

//방향키의 아스키값을 미리 정의해 놓았다.


gotoxy(int x,int y) 
{
    COORD pos = ;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);


}


//게임 시작 화면의 문구를 원하는 위치에 출력하고, 선택하기 위해 좌표 값을 지정해주는
//gotoxy함수를 사용했다.



void interface01()
{
    int a;
    int x=10,y=5;
    gotoxy(x,y);
    
     system("cls");
     fflush(stdin);
 
    system("mode con: cols=150 lines=41"); //창 화면 크기 
    system("color 0b"); //색 변경 -> 민트색

    int i;
    system("cls");
    printf("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■");

         for(i=1; i<39; i++)
         {
            printf("
                                                                                                                                                  ");
        }
            printf("
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■");
         //
게임 시작 화면 테두리



 
        textcolor(15); 
        gotoxy(64,10);
        printf(" SNAKE GAME \n");


        gotoxy(67,13);   
        printf(" MEUN\n");


        gotoxy(64,16);   
        printf(" GAME START = y\n");
        scanf("%c",&a);


        gotoxy(67,17);   
        printf(" EXIT = n\n");
        scanf("%c",&a);


        gotoxy(59,16);
        printf("
");


//처음 화면에 출력될 문구 설정
//y를 입력하면 게임시작, n을 입력하면 게임 종료를 설정


if(a==y)

{

System("cls");

Printf("게임 실행 부분");


}

//입력 값이 y 경우

if(a==n)


{

System("cls");

printf("게임 종료");


}

//입력 값이 n 경우

else

{

exit(0);

}


//나가기


scanf 함수를 이용해 y , n 입력 받아 해당 창으로 이동한다.

게임 실행 부분에는 게임 코드 삽입

 

 


뱀 머리 기본 설정


코드 보기

void play()


{

int direction = UP;

int X = 19;

int Y = 38;

//시작할때의 머리 위치와 움직이는 방향을 미리 정해놓았다.

 

gotoxy(Y, X);

printf("");

//뱀 머리 출력

while (1)        //일단은 계속 반복되도록 했다.

{

if (kbhit())      

{

direction = getch();

}

//반복 키보드입력이 있다면 값을 direction 넣는다.

 

if (direction == UP)

{

gotoxy(Y, X);

printf("  ");

gotoxy(Y, --X);

printf("");

}

else if (direction == DOWN)

{

gotoxy(Y, X);

printf("  ");

gotoxy(Y, ++X);

printf("");

}

else if (direction == LEFT)

{

gotoxy(Y, X);

printf("  ");

gotoxy(Y -= 2, X);

printf("");

}

else if (direction == RIGHT)

{

gotoxy(Y, X);

printf("  ");

gotoxy(Y += 2, X);

printf("");

}

//입력되어 있는 방향값으로 한칸씩 움직이게 했다.

Sleep(50);

//0.05 마다 움직이게 해놨다. 조금 빠른 같은데 이것으로 난이도를 조정 가능할 것이다.

}

}

void main()

{

system("mode con: cols=150 lines=41");

//콘솔 창의 크기를 고정시켰다.


 



interface01();

play();

//나중에 인터페이스 부분과 합쳐야 하기 때문에 메인함수는 최대한 간소화 했다.

}

 

 

수정해야 될 부분.


    방향키를 제외한 나머지 값이 입력되면 방향키가 입력될때까지 기다린다. => 조건문을 하나 달아주면 같다.

    방향키를 연속으로 여러 누르면 뱀이 느려진다.

    방향키를 누른 다음 한턴 쉬고 방향이 전환된다.    => kbhit getch말고 다른 방법이 있나 찾아봐야 같다.

        뱀이 벽을 뚫고 지나간다. => 벽에 닿으면 게임오버되게 만들어야 .

        'C언어' 카테고리의 다른 글

        C언어 로또 프로그램 만들기  (0) 2015.08.26
        C언어 게임 만들기(5일차)  (0) 2015.08.26
        C언어 게임 만들기(4일차)  (0) 2015.08.26
        C언어 게임 만들기(3일차)  (0) 2015.08.26
        C언어 게임 만들기(2일차)  (0) 2015.08.26
        블로그 이미지

        토유

        개발일지

        ,