//응용프로그램 메인 파일, 지역변수 이용

//응용프로그램 메인 파일, 지역변수 이용

//응용프로그램 메인 파일, 지역변수 이용

//응용프로그램 메인 파일, 지역변수 이용

 

#include "common.h"

 

char design[6][2+1];

 

void main(void)

{

   int hexa[MAPY][MAPX];

   int __design[3];

    int ____design[3];

   int xpos, ypos;

   int __xpos, __ypos;

   int score;

   int ch;

   int k, j;

 

   init(hexa, &xpos, &ypos, __design);

   f_display_all(hexa);

   score = 0;

 

    __xpos = xpos;

   __ypos = ypos;

   ____design[0] = __design[0];

   ____design[1] = __design[1];

   ____design[2] = __design[2];

 

   while(1)

   {

      if(kbhit())

      {

         ch = getch();

         if(ch == 224)    //방향키를 눌렀을때에는,,ㅡㅡ,ㅡㅡㅡ RIGHT,LEFT,UP,DOWN

         {

            ch = getch();

            if(ch == RIGHT_KEY)

            {

               k = f_rightkey(hexa, &xpos, &ypos, __design);

            }

            else if(ch == LEFT_KEY)

            {

               k = f_leftkey(hexa, &xpos, &ypos, __design);

            }

            else if(ch == DOWN_KEY)

            {

                k = f_downkey(hexa, &xpos, &ypos, __design);

            }

          }

         else if(ch == ENTER_KEY)

         {

            k = f_enterkey(hexa, &xpos, &ypos, __design);

         }

         else if(ch == SPACE_KEY)

         {

            k = f_spacekey(hexa, &xpos, &ypos, __design);

         }

         else if(ch == ESC_KEY)

         {

            break;

         }

      }

 

        //위치가 변경되었을때에만 DRAWING

      if( xpos != __xpos || ypos != __ypos)

      {

         f_display(hexa, xpos, ypos);

 

         __xpos = xpos;

         __ypos = ypos;

      }

        //디자인모양이 변경되었을때에만 DRAWING

        if( ! (__design[0] == ____design[0] && __design[0] == ____design[0] && __design[0] == ____design[0]))

      {

         f_display(hexa, xpos, ypos);

 

         ____design[0] = __design[0];

           ____design[1] = __design[1];

           ____design[2] = __design[2];

      }

 

      k=0;

      while(1)

      {

         Sleep(10);

         if(kbhit()) break;

 

         k++;

         if(k==30) break;

      }

 

      k = f_downkey(hexa, &xpos, &ypos, __design);

 

      if(k==0)

      {

         if(ypos == 0)

         {

            break;

         }

         else

            {

                while(1)

                {

               j=0;

                    if( f_check_horizontal(hexa, &score) == 0 ) j++;

               if( f_check_vertical(hexa, &score) == 0 ) j++;

               if( f_check_left_to_right(hexa, &score) == 0 ) j++;

               if( f_check_right_to_left(hexa, &score) == 0 ) j++;

 

               if(j == 4) break;

             }

          }

            xpos = MAPX / 2;

         ypos = 0;

 

          __design[0] = 1 + ( rand() % 5 );

            __design[1] = 1 + ( rand() % 5 );

            __design[2] = 1 + ( rand() % 5 );

 

          hexa[ypos+0][xpos] = __design[0];

          hexa[ypos+1][xpos] = __design[1];

          hexa[ypos+2][xpos] = __design[2];

       }

 

       if( xpos != __xpos || ypos != __ypos)

       {

          f_display(hexa, xpos, ypos);

 

          __xpos = xpos;

          __ypos = ypos;

       }

    }//END WHILE

    f_quitmsg(score);

}

 

 

 

 

 

'c 언어 > 중급과정' 카테고리의 다른 글

WINDOWS, WIN, HEXA프로그램(메인)  (0) 2019.10.31
WINDOSW, CMD, HEXA프로그램(공통)  (0) 2019.10.31
WINDOWS, CMD, HEXA프로그램(헤더)  (0) 2019.10.31
엔디안  (0) 2019.10.30
LINUX,기본적인 JSON 데이타포맷 파싱  (0) 2019.10.30

+ Recent posts