14-4.Couple

14-4-°¡.°ÔÀÓ ¼Ò°³

¦ ã±â °ÔÀÓÀ̶õ 8°³ÀÇ ¼ýÀÚ¸¦ 16°³ÀÇ Ä­¿¡ µÎ ¹ø¾¿ ¼¯¾î ³õ°í ¦ÀÌ ¸Â´Â ¼ýÀÚ¸¦ ã´Â °ÔÀÓÀÌ´Ù. ÀÏÁ¾ÀÇ ±â¾ï·Â Å×½ºÆ® °ÔÀÓÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. À¯»çÇÑ °ÔÀÓµéÀÌ ÀÌ¹Ì ¸¹ÀÌ ¹ßÇ¥µÇ¾î ÀÖ°í TV¿¡¼­µµ ÀÌ·± °ÔÀÓÀ» Á¾Á¾ º¼ ¼ö ÀÖÀ¸¹Ç·Î °ÔÀÓ ±ÔÄ¢Àº ÀÌ¹Ì Àͼ÷ÇÒ °ÍÀÌ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

 

  [4]  [2]   ?    ?            ¦ ¸ÂÃ߱⠰ÔÀÓ Ver 1.0

 

                               Ä¿¼­Å°:À̵¿. °ø¹é:µÚÁý±â. Esc:Á¾·á

  ?   [7]   ?   [4]

                               ÃÑ ½Ãµµ ȸ¼ö : 18

 

  ?    ?    ?   [2]            ¾ÆÁ÷ ¸ø ãÀº °Í : 10

 

 

  ?    ?    ?   [7]

 

°ÔÀÓÀ» ½ÃÀÛÇϸé 2Ãʰ£ ¼ýÀÚµéÀÌ ¾îµð ¼û¾î ÀÖ´ÂÁö¸¦ º¸¿©Áִµ¥ ¹èÄ¡ »óȲÀ» À绡¸® ±â¾ïÇØ µÎ¾î¾ß ÇÑ´Ù. Àá½Ã ÈÄ ¸ðµç ¼ýÀÚ´Â ?·Î ¹Ù²î´Âµ¥ ¼û¾î ÀÖ´Â ¼ýÀÚÀÇ Â¦À» ÃÖ¼ÒÇÑÀÇ ½Ãµµ·Î ã´Â °ÍÀÌ °ÔÀÓÀÇ ¸ñÇ¥ÀÌ´Ù. Ä¿¼­ À̵¿Å°¿Í °ø¹éŰ·Î °ÔÀÓÀ» ÁøÇàÇϸç Esc¸¦ ´©¸£¸é °ÔÀÓÀÌ Á¾·áµÈ´Ù. Ä¿¼­Å°·Î ¼ýÀÚµé »çÀ̸¦ À̵¿ÇÏ¸ç °ø¹éŰ·Î ¼ýÀÚ¸¦ ¿­¾î º¸°í ¦ÀÌ ¸Â´Â µÎ ¼ýÀÚ¸¦ ¿¬¼ÓÀ¸·Î ¼±ÅÃÇÏ¿© ¼û°ÜÁø ¼ýÀÚ½ÖÀ» ã´Â´Ù. Ʋ¸± °æ¿ì´Â ¿Ö Ʋ·È´ÂÁö¸¦ 1Ãʰ£ º¸¿©Áִµ¥ À̶§ ¼û°ÜÁø ¼ýÀÚÀÇ À§Ä¡¸¦ Àß ±â¾ïÇØ µÎ´Â °ÍÀÌ ÀÌ °ÔÀÓÀÇ ¿ä·ÉÀÌ´Ù.

»ç¿ëÀÚµéÀ» °ñÅÁ ¸ÔÀÌ´Â °ÍÀÌ ÀÌ ÇÁ·Î±×·¥ÀÇ ¸ñÀûÀÌ ¾Æ´Ï¹Ç·Î °ÔÀÓÆÇÀ» ÀÛ°Ô ¸¸µé¾ú°í ½Ã°£ Á¦Çѵµ µÎÁö ¾Ê¾Ò´Ù. ÄÄÆÄÀÏµÈ ½ÇÇà ÆÄÀÏÀ» ¿©·¯ ¹ø ½ÇÇàÇÏ¿© ÀÏ´Ü °ÔÀÓÀ» Áñ±â¸é¼­ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö »ìÆìº¸ÀÚ. ¼ÖÁ÷È÷ º°·Î Àç¹Ì´Â ¾øÁö¸¸ ÇÑ µÎ ¹øÀº ÇØ º¼¸¸ ÇÒ °ÍÀÌ´Ù. µ¿ÀÛÀ» Àß °üÂûÇØ º¸¸é¼­ ÇÁ·Î±×·¥À» ¾î¶»°Ô ¸¸µé¾ú´ÂÁö ÃßÃøÇØ º¸µµ·Ï ÇÏÀÚ.

°ÔÀÓ È¸»ç¿¡ °« ÀÔ»çÇÑ ½ÅÀÔ »ç¿ø¿¡°Ô ÀÌ °ÔÀÓÀ» ¸¸µé¶ó´Â ¸í·ÉÀÌ ¶³¾îÁ³´Ù°í °¡Á¤ÇÏÀÚ. ¸ÕÀú ¾î¶² ÀÚ·á ±¸Á¶¸¦ ¾µ °ÍÀÎÁö, ¸ÞÀÎ ·çÇÁ´Â ¾î¶»°Ô ¼³°èÇÒ °ÍÀÎÁö, ÇÊ¿äÇÑ ÇÔ¼ö´Â ¹«¾ùÀÎÁö µîÀ» °í¹ÎÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¹Ù·Î ¾Æ·¡¿¡ ¼Ò½º°¡ ÀÖÁö¸¸ ¼Ò½º¸¦ º¸±â Àü¿¡ ¸ÕÀú »ý°¢ÇØ º¸°í °í¹ÎÀ» ÇØ º¸µµ·Ï ÇÏÀÚ. Áö±ÝÀº ¿¬½ÀÁßÀ̹ǷΠ°á°úº¸´Ù´Â °úÁ¤ÀÌ ´õ Áß¿äÇÏ´Ù. ½Ç½ÀÀ» ¸¶Ä£ ÈÄ ÀÚ½ÅÀÇ »ý°¢ÀÌ °ú¿¬ ¿Ç¾Ò´ÂÁö¸¦ ¹Ýµå½Ã Á¡°ËÇØ º¸°í ÀÌ ½Ç½À¿¡¼­ ¹«¾ùÀ» ¹è¿ü´ÂÁö Á¤¸®ÇØ º¸±â ¹Ù¶õ´Ù.

 

¿¹ Á¦ : Couple

#include <Turboc.h>

 

#define LEFT 75

#define RIGHT 77

#define UP 72

#define DOWN 80

#define ESC 27

 

enum Status { HIDDEN, FLIP, TEMPFLIP };

struct tag_Cell

{

     int Num;

     Status St;

};

tag_Cell arCell[4][4];

int nx,ny;

int count;

 

void InitGame();

void DrawScreen(BOOL bHint);

void GetTempFlip(int *tx,int *ty);

int GetRemain();

 

void main()

{

     int ch;

     int tx,ty;

     randomize();

     InitGame();

 

     for (;;) {

          gotoxy(nx*5+2,ny*3+2);

 

          ch=getch();

          if (ch == 0xE0) {

              ch=getch();

              switch (ch) {

              case LEFT:

                   if (nx > 0) nx--;

                   break;

              case RIGHT:

                   if (nx < 3) nx++;

                   break;

              case UP:

                   if (ny > 0) ny--;

                   break;

              case DOWN:

                   if (ny < 3) ny++;

                   break;

              }

          } else {

              switch (ch) {

              case ESC:

                   exit(0);

                   break;

              case ' ':

                   if (arCell[nx][ny].St==HIDDEN) {

                        GetTempFlip(&tx,&ty);

                        if (tx == -1) {

                             arCell[nx][ny].St=TEMPFLIP;

                        } else {

                             count++;

                             if (arCell[tx][ty].Num == arCell[nx][ny].Num) {

                                 putch('\a');

                                 arCell[tx][ty].St=FLIP;

                                 arCell[nx][ny].St=FLIP;

                                 if (GetRemain() == 0) {

                                      DrawScreen(FALSE);

                                      gotoxy(26,22);puts("ÃàÇÏÇÕ´Ï´Ù. ´Ù½Ã ½ÃÀÛÇÕ´Ï´Ù.");

                                      delay(2000);

                                      InitGame();

                                 }

                             } else {

                                 arCell[nx][ny].St=TEMPFLIP;

                                 DrawScreen(FALSE);

                                 delay(1000);

                                 arCell[tx][ty].St=HIDDEN;

                                 arCell[nx][ny].St=HIDDEN;

                             }

                        }

                        DrawScreen(FALSE);

                   }

                   break;

              }

          }

     }

}

 

void InitGame()

{

     int i,j;

     int x,y;

 

     nx=ny=0;

     count=0;

 

     memset(arCell,0,sizeof(arCell));

 

     for (i=1;i<=8;i++) {

          for (j=0;j<2;j++) {

              do {

                   x=random(4);

                   y=random(4);

              } while (arCell[x][y].Num != 0);

              arCell[x][y].Num=i;

          }

     }

 

     DrawScreen(TRUE);

     delay(2000);

     clrscr();

     DrawScreen(FALSE);

}

 

void DrawScreen(BOOL bHint)

{

     int x,y;

 

     for (y=0;y<4;y++) {

          for (x=0;x<4;x++) {

              gotoxy(x*5+2,y*3+2);

              if (bHint == TRUE || arCell[x][y].St==FLIP) {

                   gotoxy(wherex()-1,wherey());

                   printf("[%d]",arCell[x][y].Num);

              } else if (arCell[x][y].St==TEMPFLIP) {

                   printf("%d",arCell[x][y].Num);

              } else {

                   printf("?");

              }

          }

     }

 

     gotoxy(30,2);puts("¦ ¸ÂÃ߱⠰ÔÀÓ Ver 1.0");

     gotoxy(30,4);puts("Ä¿¼­Å°:À̵¿. °ø¹é:µÚÁý±â. Esc:Á¾·á");

     gotoxy(30,6);printf("ÃÑ ½Ãµµ ȸ¼ö : %d",count);

     gotoxy(30,8);printf("¾ÆÁ÷ ¸ø ãÀº °Í : %d ",GetRemain());

}

 

void GetTempFlip(int *tx,int *ty)

{

     int i,j;

     for (i=0;i<4;i++) {

          for (j=0;j<4;j++) {

              if (arCell[i][j].St == TEMPFLIP) {

                   *tx=i;

                   *ty=j;

                   return;

              }

          }

     }

     *tx=-1;

}

 

int GetRemain()

{

     int i,j;

     int remain=16;

 

     for (i=0;i<4;i++) {

          for (j=0;j<4;j++) {

              if (arCell[i][j].St==FLIP) {

                   remain--;

              }

          }

     }

     return remain;

}

 

°Ü¿ì 160¿©ÁÙ ¹Û¿¡ ¾ÈµÇ´Â ªÀº ¿¹Á¦ÀÌÁö¸¸ ÀÌ ¿¹Á¦¼Ó¿¡´Â ½Ç·Î ¸¹Àº °ÍÀÌ ´ã°ÜÀÖ´Ù. ¼Ò½º¸¦ ÀμâÇØ ³õ°í ÇÑÁÙ ¾¿ ¸Þ¸ðÇØ °¡¸é¼­ ºÐ¼®ÇØ º¸¸é °á±¹ Àüü¸¦ ´Ù ºÐ¼®ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½ Ç׺ÎÅÍ °°ÀÌ ¿¹Á¦¸¦ Â÷±Ù Â÷±Ù ºÐ¼®ÇØ º¸ÀÚ.