35-1-¶ó.°ÔÀÓ ¿î¿µ

ÀÌÁ¦ °ÔÀÓÀ» ¸¸µé±â À§ÇÑ ¸ðµç Ŭ·¡½ºµéÀÌ ´Ù ¸¸µé¾îÁ³À¸¹Ç·Î ÀÌ ºÎǰµéÀ» Àß Á¶¸³Çؼ­ ¼­·Î Ä«µå¸¦ ÁÖ°Å´Ï ¹Þ°Å´Ï Çϸ鼭 °ÔÀÓÀÌ ¿øÈ°ÇÏ°Ô ÁøÇàµÇµµ·Ï ÇØ º¸ÀÚ. Ŭ·¡½º´Â ºÎǰÀ¸·Î¼­ ÇØ¾ß ÇÒ °íÀ¯ÀÇ ¼Ó¼º°ú µ¿ÀÛÀ» Àß Á¤ÀÇÇϰí ÀÖÁö¸¸ °í½ºÅé °ÔÀÓ ±ÔÄ¢±îÁö ±¸ÇöÇÏ´Â °ÍÀº ¾Æ´Ï¹Ç·Î main¿¡¼­ ±ÔÄ¢´ë·Î ºÎǰÀÌ µ¿ÀÛÇϵµ·Ï ÃÑ ÁöÈÖ¸¦ ÇØ¾ß ÇÑ´Ù. Ŭ·¡½º´Â ¾îµð±îÁö³ª °ÔÀÓÀÇ Àç·á¸¦ Ç¥ÇöÇÒ »ÓÀ̸ç mainÀÌ ¾î¶»°Ô ±ÔÄ¢À» ¿î¿µÇÏ´À³Ä¿¡ µû¶ó ÀÌ ÇÁ·Î±×·¥Àº °í½ºÅéÀÌ µÉ ¼öµµ ÀÖ°í ¹ÎÈ­Åõ°¡ µÉ ¼öµµ ÀÖ°í È­ÅõÁ¡ÀÌ µÉ ¼öµµ ÀÖ´Ù.

Àü¿ªº¯¼ö

Ŭ·¡½º´Â ¾îµð±îÁö³ª ŸÀÔÀÏ »ÓÀ̹ǷΠÀνºÅϽº¸¦ ¸¸µé¾î¾ß »ç¿ëÇÒ ¼ö ÀÖ´Ù. °ÔÀÓ¿¡ ÇÊ¿äÇÑ °´Ã¼µéÀº ´ÙÀ½°ú °°´Ù. ´ëºÎºÐ È­ÅõÆÇ¿¡ Á÷Á¢ÀûÀ¸·Î µîÀåÇÏ´Â ½ÇüµéÀÌ´Ù. °ÔÀÓ Àü¹Ý¿¡ °ÉÃÄ ÂüÁ¶µÇ´Â º¯¼öµéÀ̹ǷΠmain ÀÌÀü¿¡ Àü¿ªº¯¼ö·Î ¼±¾ðÇÑ´Ù.

 

CDeck Deck(18,9);

CPlayer South(5,20), North(5,1);

CBlanket Blanket(5,12);

CPlayerPae SouthPae(40,14), NorthPae(40,4);

bool SouthTurn;

 

Deck´Â È­Åõ¸¦ ½×¾Æ ³õ´Â °÷À̸ç Ç÷¹À̾î´Â ³²±º(South), ºÏ±º(North) µÎ ¸íÀÌ ÀÖ°í Áß°£¿¡´Â ´ã¿ä(Blanket)°¡ À§Ä¡ÇÑ´Ù. °¢ Ç÷¹À̾î´Â °ÔÀÓÁß¿¡ ÆÐ¸¦ µû¸Ô´Âµ¥ SouthPae, NorthPae°´Ã¼°¡ ¸ÔÀº ÆÐ¸¦ °ü¸®ÇÑ´Ù. °¢ °´Ã¼µéÀº ¸ðµÎ È­¸é»ó¿¡ ÀڽŵéÀÌ ¹èÄ¡µÉ À§Ä¡¸¸ Àμö·Î Àü´Þ¹ÞÀ¸¸ç ³ª¸ÓÁö ÃʱâÈ­´Â °ÔÀÓ ½ÃÀÛ Á÷ÈÄ¿¡ ¼öÇàµÈ´Ù. ÄÜ¼Ö È¯°æÀº 80*24ÀÇ Å©±â¸¦ °¡Áö´Âµ¥ È­¸éÀÇ Àû´çÇÑ °÷¿¡ °´Ã¼µéÀ» º¸±â ÁÁ°Ô ¹èÄ¡Çß´Ù. ¹èÄ¡ »óŸ¦ ¹Ù²Ù°í ½Í´Ù¸é Àü¿ªº¯¼ö ¼±¾ð¹®ÀÇ Àμöµé¸¸ Á¶Á¤ÇÏ¸é µÈ´Ù.

°´Ã¼°¡ ¾Æ´Ñ À¯ÀÏÇÑ Àü¿ªº¯¼ö´Â Â÷·Ê¸¦ Ç¥ÇöÇÏ´Â SouthTurn ¹Û¿¡ ¾ø´Ù. °í½ºÅéÀº Ç÷¹À̾îµéÀÌ ¹ø°¥¾Æ °¡¸é¼­ ÇÑ ¹ø¾¿ Ä«µå¸¦ µÎ´Â ÅÏ ¹æ½ÄÀÇ °ÔÀÓÀ̹ǷΠÁö±ÝÀÌ ´©±¸ Â÷·ÊÀÎÁö¸¦ ±â¾ïÇØ¾ß ÇÑ´Ù. ÀÌ ¿¹Á¦´Â µÎ ¸íÀÌ °ÔÀÓÀ» ÁøÇàÇÏ´Â ¸Â°íÀÌ¸ç ³²±º ¶Ç´Â ºÏ±º Â÷·Ê Áß ÇϳªÀ̹ǷΠboolÇüÀÇ º¯¼ö Çϳª¸é ´©±¸ Â÷·ÊÀÎÁö¸¦ ¾Ë ¼ö ÀÖ´Ù.

µµ¿ì¹Ì ÇÔ¼ö

°ÔÀÓ ÁøÇàÀº mainÀÌ ÇÏÁö¸¸ È¥ÀÚ¼­ ¹Ýº¹µÇ´Â Àâ´ÙÇÑ ÀÛ¾÷À» ´Ù ÇÒ ¼ö´Â ¾øÀ¸¹Ç·Î ¸î °¡Áö ÀϹÝÀûÀÎ µ¿ÀÛ¿¡ ´ëÇØ¼­´Â µµ¿ì¹Ì ÇÔ¼ö¸¦ µÎ°í ÇÊ¿äÇÒ ¶§¸¶´Ù ÀÌ ÇÔ¼öµéÀ» È£ÃâÇÑ´Ù. µµ¿ì¹Ì´Â mainÀÇ ºÎ´ãÀ» ´ú¾î ÁÖ´Â ¿ªÇÒÀ» Çϴµ¥ µ¿ÀÛÀº °£´ÜÇÑ ÆíÀÌ´Ù. ´ÙÀ½ 4°³ÀÇ µµ¿ì¹Ì ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ´Ù. Äڵ带 ÀÐ¾î º¸¸é ¾Ë°ÚÁö¸¸ ÇѰᰰÀÌ ±æÀ̰¡ ª°í ÂøÇÏ°Ô »ý°å´Ù.

 

void Initialize()

{

     int i;

 

     Deck.Shuffle();

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

          South.InsertCard(Deck.Pop());

          North.InsertCard(Deck.Pop());

          if (i < 8) Blanket.InsertCard(Deck.Pop());

     }

}

 

void DrawScreen()

{

     clrscr();

     South.Draw(SouthTurn);

     North.Draw(!SouthTurn);

     Blanket.Draw();

     Deck.Draw(false);

     SouthPae.Draw();

     NorthPae.Draw();

}

 

void OutPrompt(const char *Mes,int Wait/*=0*/)

{

     gotoxy(5,23);

     for (int i=5;i<79;i++) { cout << ' '; }

     gotoxy(5,23);

     cout << Mes;

     delay(Wait);

}

 

int InputInt(const char *Mes, int start, int end)

{

     int ch;

 

     OutPrompt(Mes);

     for (;;) {

          ch=tolower(getch());

          if (ch == 0xE0 || ch == 0) {

              ch=getch();

              continue;

          }

          if (!(isdigit(ch) || ch=='a')) continue;

          if (ch=='a') ch=10; else ch=ch-'0';

          if (ch >= start && ch <= end) {

              return ch;

          }

          OutPrompt("¹«È¿ÇÑ ¹øÈ£ÀÔ´Ï´Ù. ÁöÁ¤ÇÑ ¹üÀ§¿¡ ¸Â°Ô ´Ù½Ã ÀÔ·ÂÇØ ÁÖ¼¼¿ä.");

     }

}

 

Initialize ÇÔ¼ö´Â °ÔÀÓÀ» ÃʱâÈ­Çϴµ¥ µ¥Å©ÀÇ ÆÐ¸¦ ¹«ÀÛÀ§·Î ¼¯Àº ÈÄ Ç÷¹À̾î¿Í ´ã¿ä·Î Ä«µå¸¦ ºÐ¹èÇÑ´Ù. Ç÷¹À̾î´Â °¢ 10À徿ÀÇ Ä«µå¸¦ ¹Þ°í ´ã¿ä´Â 8ÀåÀÇ Ä«µå¸¦ ¹Þ´Â´Ù. µ¥Å©ÀÇ Ä«µå°¡ ¹«ÀÛÀ§·Î ¼¯¿© ÀÖÀ¸¹Ç·Î ºÐ¹èµÇ´Â Ä«µåµµ ¿¹Ãø ºÒ°¡´ÉÇÏ´Ù. ±×·¡¼­ ºÐ¹è ¼ø¼­´Â ÀüÇô Áß¿äÇÏÁö ¾Ê´Ù. ³²±º, ºÏ±º¿¡ ÇѲ¨¹ø¿¡ 10À徿 ÁÖ³ª ³²±º 1Àå, ºÏ±º 1À徿 10¹øÀ» ÁÖ³ª ¸¶Âù°¡Áö¶ó´Â ¾ê±â´Ù. ºÐ¹è°¡ ¿Ï·áµÇ¸é °ð¹Ù·Î °ÔÀÓÀÌ ½ÃÀ۵ȴÙ.

Ä«µå¸¦ ¼¯°í ºÐ¹èÇÏ´Â ÀÛ¾÷Àº ¸ðµÎ ½×ÀÎ Ä«µå ¸ñ·ÏÀÎ µ¥Å©¿¡¼­ ÀϾ´Â ÀÏÀ̹ǷΠCDeck Ŭ·¡½º°¡ Á÷Á¢ ó¸®ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ ¿¹Á¦´Â µ¥Å©°¡ ¾Æ´Ñ ¿ÜºÎ¿¡¼­ ÃʱâÈ­¸¦ Çϵµ·Ï Çߴµ¥ ¼³°è ÆíÀǼº°ú ÀçȰ¿ë¼º È®º¸¸¦ À§ÇØ ÀÌ ¹æ¹ýÀÌ ÈξÀ ´õ À¯¸®ÇÏ´Ù. ¿Ö³ÄÇÏ¸é µ¥Å©´Â Ç÷¹À̾îÀÇ ¼ö³ª ºÐ¹è ±ÔÄ¢¿¡ ´ëÇØ¼­´Â ¾Æ´Â Á¤º¸°¡ ¾øÀ¸¸ç ¿À·ÎÁö ½×ÀÎ Ä«µåÀÇ ÁýÇÕ¸¸ °ü¸®ÇÒ ¼ö ÀÖ´Ù. ºÎǰµé³¢¸®´Â °¡±ÞÀûÀÌ¸é ¼­·Î µ¶¸³ÀûÀ̾î¾ß ÇÏ¸ç ¼­·ÎÀÇ Á¸À縦 ¾ËÁö ¸øÇØ¾ß Àç»ç¿ë¼ºÀÌ ³ô¾ÆÁø´Ù. ¸¸¾à Initialize ÇÔ¼ö°¡ CDeckÀÇ ¸â¹ö ÇÔ¼ö¶ó¸é ÀÌ ¿¹Á¦ÀÇ Å¬·¡½º·Î´Â ¿À·ÎÁö 2ÀÎ¿ë °í½ºÅé¹Û¿¡ ¸ø ¸¸µå´Â Á¦¾àÀÌ »ý±ä´Ù.

DrawScreen ÇÔ¼ö´Â Á¤¸» ½¬¿î ÇÔ¼öÀÌ´Ù. ScreenÀ» DrawÇÑ´Ù. È­¸éÀ» Áö¿ö ±ú²ýÇÏ°Ô ¸¸µé°í °¢ °´Ã¼µéÀÇ Draw ÇÔ¼ö¸¦ Â÷·Ê´ë·Î È£ÃâÇÏ¸é µÈ´Ù. ³²±º, ºÏ±ºÀº ÇöÀç Â÷·ÊÀÇ Ç÷¹À̾°Ô ¼±Åà ¹øÈ£¸¦ Ãâ·ÂÇϵµ·Ï ÇÏ¸ç µ¥Å©´Â µÚÁýÁö ¾ÊÀº »óÅ·Π±×¸°´Ù. OutPrompt ÇÔ¼ö´Â ªÀº ¸Þ½ÃÁö¸¦ È­¸é¿¡ Ãâ·ÂÇϰí ÀÌ ¸Þ½ÃÁö¸¦ ÀÐÀ» µ¿¾È Àá½Ã ´ë±âÇÑ´Ù. »ç¿ëÀÚ¿¡°Ô ÇÁ·Î±×·¥ÀÇ ÇöÀç »óŸ¦ Ãâ·ÂÇϰųª ´ÙÀ½ ÇൿÀ» Áö½ÃÇÒ ¶§ ÀÌ ÇÔ¼ö°¡ »ç¿ëµÈ´Ù. ±×·¡ÇÈ È¯°æÀ̶ó¸é ¾Æ¸¶ ¸Þ½ÃÁö ¹Ú½º°¡ »ç¿ëµÇ¾úÀ» °ÍÀÌ´Ù.

InputInt ÇÔ¼ö´Â Á¤¼ö°ª Çϳª¸¦ Űº¸µå·ÎºÎÅÍ ÀԷ¹޴´Ù. ÀÌ °ÔÀÓÀº ¿À·ÎÁö Űº¸µå¸¦ ÅëÇØ¼­¸¸ ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÔ·Â ÇÔ¼ö°¡ ¾ÆÁÖ ÀÚÁÖ »ç¿ëµÈ´Ù. ¾î¶² ÆÐ¸¦ ³¾ °ÍÀÎÁö, ¸ÔÀ» Ä«µå°¡ ¿©·¯ °³ÀÏ ¶§ ¾î¶² Ä«µå¸¦ ¸ÔÀ»Áö, Á¡¼ö¸¦ ȹµæÇßÀ» ¶§ °è¼ÓÇÒ °ÇÁö ¾Æ´Ï¸é ½ºÅéÇÒ °ÇÁö µîÀÇ ¿É¼ÇÀ» ¸ðµÎ Űº¸µå·Î ÀÔ·Â¹Þ¾Æ¾ß ÇÑ´Ù. À̶§ °¢ ÀԷ½ø¶´Ù À¯È¿ÇÑ ¼öÀÇ ¹üÀ§°¡ Á¤ÇØÁö´Âµ¥ °¡Áø ÆÐ°¡ ´Ù¼¸ ÀåÀ̸é 1~5 Áß Çϳª¸¸ °ñ¶ó¾ß ÇÑ´Ù. ±×·¡¼­ Çã¿ëµÈ ¹üÀ§ ³»¿¡¼­ ¼ýÀÚ¸¸ ÀԷ¹޴ ÇÔ¼ö¸¦ µû·Î ¸¸µé¾î µÎ¾ú´Ù.

InputInt´Â Ű ÀÔ·ÂÀ» ´ë±âÇϰí ÀԷ¹ÞÀº ۸¦ Á¡°ËÇÏ¿© ¼ýÀÚ°¡ ¾Æ´Ï¸é ¹«½ÃÇÏ°í ´Ù½Ã ÀԷ¹ÞÀ¸¸ç ¹üÀ§¸¦ ¹þ¾î³µÀ» ¶§µµ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ ÈÄ ´Ù½Ã ÀԷ¹޴´Ù. ´Ü, Ưº°È÷ A۸¸ ÀÎÁ¤ÇÏ¿© ÀÌ Å°°¡ ´­·¯Áö¸é Á¤¼ö 10À» ¸®ÅÏÇϴµ¥ °ÔÀÓ Ãʹݿ¡ 10ÀåÀÇ Ä«µå Áß ¸¶Áö¸· Ä«µå¸¦ ³¾ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ¾î·µç ÀÌ ÇÔ¼ö¸¦ È£ÃâÇϸé ÁöÁ¤ÇÑ ¹üÀ§³»ÀÇ Å° Áß Çϳª¸¦ ÀÔ·ÂÇÒ ¶§±îÁö´Â Àý´ë·Î ¸®ÅÏÇÏÁö ¾Êµµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î mainÀº »ç¿ëÀÚ ÀÔ·ÂÀÌ Ç×»ó Á¤È®ÇÏ´Ù´Â °ÍÀ» È®½ÅÇÒ ¼ö ÀÖÀ¸¸ç ¿¡·¯ 󸮸¦ ÇÒ Çʿ䰡 ¾ø´Ù.

°´Ã¼ ÁöÇâÀûÀÎ ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼­´Â °¡±ÞÀûÀ̸é Àü¿ªº¯¼ö³ª Àü¿ª ÇÔ¼ö´Â »ç¿ëÇÏÁö ¾Êµµ·Ï ±ÇÀåµÇ¸ç ¸ðµç °ÍÀ» Ŭ·¡½ºÈ­ÇÏ¿© ĸ½¶È­ÇØ¾ß ÇÑ´Ù°í °¡¸£Ä£´Ù. ÀÌ ¿¹Á¦´Â °£ÆíÇÔÀ» À§ÇØ Àü¿ªº¯¼ö, Àü¿ª ÇÔ¼ö¸¦ ÀûÀýÇÏ°Ô »ç¿ëÇϰí Àִµ¥ ²À Àü¿ªº¯¼ö¸¦ ¾ø¾Ö°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°Àº Ŭ·¡½º¸¦ Çϳª Á¤ÀÇÇÏ°í º¯¼ö¿Í ÇÔ¼ö¸¦ ¸ðµÎ ÀÌ ¾È¿¡ Æ÷ÇÔ½ÃŰ¸é µÈ´Ù.

 

class Game

{

public:

     CDeck Deck(18,9);

     CPlayer South(5,20), North(5,1);

     CBlanket Blanket(5,12);

     CPlayerPae SouthPae(40,14), NorthPae(40,4);

     bool SouthTurn;

 

     void Initialize();

     void DrawScreen();

     void OutPrompt(const char *Mes,int Wait=0);

     int InputInt(const char *Mes, int range);

};

 

ÀÌ·¸°Ô ¼±¾ðÇØ ³õ°í main¿¡¼­ Game ŸÀÔÀÇ G¸¦ ¼±¾ðÇÑ ÈÄ GÀÇ ¸â¹ö¸¦ ÂüÁ¶ÇÏ¸é ¶È°°Àº ¿¹Á¦¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¹½ÇÏ·¯ ÀÌ·± ÁþÀ» ÇØ °¡¸ç ±»ÀÌ Å¬·¡½º·Î Æ÷ÀåÇÏ·Á°í ¾Ö¾²´À³Ä°í ÇϰÚÁö¸¸ ÀÚ¹Ù³ª C#°°Àº ¿ÏÀüÇÑ °´Ã¼ ÁöÇâ ¾ð¾îµéÀº ½ÇÁ¦·Î ÀÌ·± ¹æ½ÄÀ» »ç¿ëÇÏ¸ç ¸ðµç °ÍÀÌ °´Ã¼°¡ µÉ ¼ö ÀÖ´Ù¸ç ÀÚ¶ûÇÑ´Ù. ±×·¯³ª C++Àº È¥ÇÕÇü ¾ð¾îÀ̹ǷΠÀÌ·¸°Ô±îÁö ÇÒ ÇÊ¿ä´Â ¾ø´Ù. C++Àº ¾Æ¹«¸® ¹ß¹öµÕÀ» Ãĵµ mainÀÌ Àü¿ª ÇÔ¼öÀ̹ǷΠ¿ÏÀüÇÑ °´Ã¼ ÁöÇâÀÌ µÉ ¼ö ¾øÀ¸¸ç ±×·² Çʿ䵵 ¾ø´Â °ÍÀÌ´Ù.

main ÇÔ¼ö

±×·³ ÀÌÁ¦ ¸¶Áö¸· ÇÔ¼ö mainÀ» ºÐ¼®ÇØ º¸ÀÚ. mainÀº ÀÌ ÇÁ·Î±×·¥¿¡ µîÀåÇÏ´Â ¸ðµç °´Ã¼¸¦ ÁöÈÖÇÏ´Â ÃÑ»ç·É°üÀÌ¸ç °ÔÀÓÀ» ¿î¿µÇÏ´Â ÁÖüÀÌ´Ù. °ÔÀÓ ±ÔÄ¢ÀÌ º¹ÀâÇÏ´Ù º¸´Ï ¼Ò½ºÀÇ ±æÀ̵µ ±ä ÆíÀε¥ °¢ ºÎºÐÀÇ ¿ªÇÒÀÌ ¸íÈ®È÷ ±¸ºÐµÇ¸ç ½Ã°£¼øÀ¸·Î ¼ø¼­´ë·Î Èê·¯°¡´Â ½ÄÀ̹ǷΠºÐ¼®Çϱâ´Â ±×¸® ¾î·ÆÁö ¾Ê´Ù. Á» ´õ ÀÛÀº ÇÔ¼öµé·Î ºÐÇÒÇØ º¼ ¼öµµ ÀÖ°ÚÁö¸¸ ¾îÂ÷ÇÇ ÇÑ µ¢¾î¸®¶ó ºÐÇÒÀÌ ÀÚ¿¬½º·´Áö ¸øÇÏ°í ºÐ¼®Çϱ⿡ ´õ ¹ø°Å·Î¿ÍÁö´Â °Í °°¾Æ °üµÎ±â·Î Çß´Ù.

 

// ÇÁ·Î±×·¥À» ÃÑÁöÈÖÇÏ´Â main ÇÔ¼ö

void main()

{

     int i,ch;

     int arSame[4],SameNum;

     char Mes[256];

     CPlayer *Turn;

     CPlayerPae *TurnPae,*OtherPae;

     int UserIdx,UserSel,DeckSel;

     SCard UserCard, DeckCard;

     bool UserTriple, DeckTriple;

     int nSnatch;

     int NewScore;

 

     randomize();

     Initialize();

     for (SouthTurn=true;!Deck.IsEmpty();SouthTurn=!SouthTurn) {

          DrawScreen();

          if (SouthTurn) {

              Turn=&South;

              TurnPae=&SouthPae;

              OtherPae=&NorthPae;

          } else {

              Turn=&North;

              TurnPae=&NorthPae;

              OtherPae=&SouthPae;

          }

 

          sprintf(Mes,"³»°í ½ÍÀº È­Åõ¸¦ ¼±ÅÃÇϼ¼¿ä(1~%d,0:Á¾·á) ",Turn->GetNum());

          ch=InputInt(Mes,0,Turn->GetNum());

          if (ch == 0) {

              if (InputInt("Á¤¸» ³¡³¾°Ì´Ï±î?(0:¿¹,1:¾Æ´Ï¿À)",0,1)==0)

                   return;

              else

                   continue;

          }

 

          // Ç÷¹À̾ Ä«µå¸¦ ÇÑÀå ³½´Ù.

          UserTriple=DeckTriple=false;

          UserIdx=ch-1;

          UserCard=Turn->GetCard(UserIdx);

          SameNum=Blanket.FindSameCard(UserCard,arSame);

          switch (SameNum) {

          case 0:

              UserSel=-1;

              Blanket.InsertCard(Turn->RemoveCard(UserIdx));

              DrawScreen();

              break;

          case 1:

              UserSel=arSame[0];

              break;

          case 2:

              if (Blanket.GetCard(arSame[0]) == Blanket.GetCard(arSame[1])) {

                   UserSel=arSame[0];

              } else {

                   Blanket.DrawSelNum(arSame);

                   sprintf(Mes,"¾î¶² Ä«µå¸¦ ¼±ÅÃÇϽðڽÀ´Ï±î?(1~%d)",SameNum);

                   UserSel=arSame[InputInt(Mes,1,SameNum)-1];

              }

              break;

          case 3:

              UserSel=arSame[1];

              UserTriple=true;

              break;

          }

          if (UserSel != -1) {

              Blanket.DrawTempCard(UserSel,UserCard);

          }

          delay(Speed);

 

          // µ¥Å©¿¡¼­ ÇÑÀåÀ» µÚÁý´Â´Ù.

          Deck.Draw(true);

          delay(Speed);

          DeckCard=Deck.Pop();

          SameNum=Blanket.FindSameCard(DeckCard,arSame);

          switch (SameNum) {

          case 0:

              DeckSel=-1;

              break;

          case 1:

              DeckSel=arSame[0];

              if (DeckSel == UserSel) {

                    if (Deck.IsNotLast()) {

                        Blanket.InsertCard(DeckCard);

                        Blanket.InsertCard(Turn->RemoveCard(UserIdx));

                        OutPrompt("¼³»çÇß½À´Ï´Ù.",PromptSpeed);

                        continue;

                   } else {

                        DeckSel=-1;

                   }

              }

              break;

          case 2:

              if (UserSel == arSame[0]) {

                   DeckSel=arSame[1];

              } else if (UserSel == arSame[1]) {

                   DeckSel=arSame[0];

              } else {

                   if (Blanket.GetCard(arSame[0]) == Blanket.GetCard(arSame[1])) {

                        DeckSel=arSame[0];

                   } else {

                        Blanket.DrawSelNum(arSame);

                        sprintf(Mes,"¾î¶² Ä«µå¸¦ ¼±ÅÃÇϽðڽÀ´Ï±î?(1~%d)",SameNum);

                        DeckSel=arSame[InputInt(Mes,1,SameNum)-1];

                   }

              }

              break;

          case 3:

              DeckSel=arSame[1];

              DeckTriple=true;

              break;

          }

          if (DeckSel != -1) {

              Blanket.DrawTempCard(DeckSel,DeckCard);

          }

          Deck.Draw(false);

          delay(Speed);

 

          // ÀÏÄ¡ÇÏ´Â Ä«µå¸¦ °ÅµÖ µéÀδÙ. ¼¼ ÀåÀ» ¸ÔÀº °æ¿ì´Â ÀüºÎ °¡Á® ¿Â´Ù.

          if (UserSel != -1) {

              if (UserTriple) {

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

                        TurnPae->InsertCard(Blanket.RemoveCard(UserSel-1));

                   }

              } else {

                   TurnPae->InsertCard(Blanket.RemoveCard(UserSel));

              }

              TurnPae->InsertCard(Turn->RemoveCard(UserIdx));

              if (DeckSel != -1 && DeckSel > UserSel) {

                   DeckSel-=(UserTriple ? 3:1);

              }

          }

          if (DeckSel != -1) {

              if (DeckTriple) {

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

                        TurnPae->InsertCard(Blanket.RemoveCard(DeckSel-1));

                   }

              } else {

                   TurnPae->InsertCard(Blanket.RemoveCard(DeckSel));

              }

              TurnPae->InsertCard(DeckCard);

          } else {

              Blanket.InsertCard(DeckCard);

          }

 

          // ÂÊ, µû´Ú, ½Ï¾µÀÌ Á¶°ÇÀ» Á¡°ËÇÏ°í »ó´ë¹æÀÇ ÇǸ¦ »¯´Â´Ù.

          nSnatch=0;

          if (Deck.IsNotLast()) {

              if (UserSel == -1 && SameNum == 1 && DeckCard.GetNumber() == UserCard.GetNumber()) {

                   nSnatch++;

                   OutPrompt("ÂÊÀÔ´Ï´Ù.",PromptSpeed);

              }

              if (UserSel != -1 && SameNum == 2 && DeckCard.GetNumber() == UserCard.GetNumber()) {

                   nSnatch++;

                   OutPrompt("µû´ÚÀÔ´Ï´Ù.",PromptSpeed);

              }

              if (Blanket.GetNum() == 0) {

                   nSnatch++;

                   OutPrompt("½Ï¾µÀÌÀÔ´Ï´Ù.",PromptSpeed);

              }

              if (UserTriple || DeckTriple) {

                   OutPrompt("ÇѲ¨¹ø¿¡ ¼¼ ÀåÀ» ¸Ô¾ú½À´Ï´Ù.",PromptSpeed);

                   nSnatch += UserTriple + DeckTriple;

              }

          }

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

              TurnPae->InsertCard(OtherPae->RemovePee());

          }

 

          // Á¡¼ö¸¦ °è»êÇÏ°í °í, ½ºÅé ¿©ºÎ¸¦ Áú¹®ÇÑ´Ù.

          NewScore=TurnPae->CalcScore();

          if (Deck.IsNotLast() && NewScore > TurnPae->OldScore) {

              DrawScreen();

              if (InputInt("Ãß°¡ Á¡¼ö¸¦ ȹµæÇß½À´Ï´Ù.(0:½ºÅé, 1:°è¼Ó)",0,1)==1) {

                   TurnPae->OldScore=NewScore;

                   TurnPae->IncreaseGo();

              } else {

                   break;

              }

          }

     }

     DrawScreen();

     OutPrompt("°ÔÀÓÀÌ ³¡³µ½À´Ï´Ù.",0);

}

 

mainÀÇ ¼±µÎ¿¡´Â ÇÊ¿äÇÑ Áö¿ªº¯¼öµéÀÌ ¼±¾ðµÇ¾î ÀÖ°í ³­¼ö ¹ß»ý±â¸¦ ÃʱâÈ­Çϸç Initialize¸¦ È£ÃâÇÏ¿© °ÔÀÓÆÇÀ» ÃʱâÈ­ÇÑ´Ù. ±×¸®°í °ð¹Ù·Î for ·çÇÁ·Î ÁøÀÔÇϴµ¥ ÀÌ ·çÇÁ°¡ Àüü °ÔÀÓ ·çÇÁÀÌ´Ù. ÃÖÃÊ ³²±º Â÷·ÊºÎÅÍ ½ÃÀÛÇϸç ÇÑ ¹ø ·çÇÁ¸¦ µ¹ ¶§¸¶´Ù Â÷·Ê°¡ ¹Ù²ï´Ù. for ·çÇÁ ÇÑ ¹øÀÌ Ç÷¹À̾ Ä«µå Çϳª¸¦ ³¾ ¶§¸¦ ó¸®ÇÑ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù. ·çÇÁÀÇ Á¾·á Á¶°ÇÀº µ¥Å©°¡ ºñÁö ¾ÊÀ» ¶§±îÁöÀ̹ǷΠ¸¶Áö¸· Ä«µå¸¦ µÚÁýÀ» ¶§±îÁö °ÔÀÓÀÌ °è¼ÓµÈ´Ù. ¹°·Ð °ÔÀÓ Áß°£¿¡ Á¡¼ö°¡ ³¯ °æ¿ì Ç÷¹À̾ °ÔÀÓÀ» ³¡³¾ ¼öµµ ÀÖ´Ù.

·çÇÁ ¼±µÎ¿¡¼­´Â ¸ÕÀú È­¸éÀ» ±×·Á °¢ °´Ã¼ÀÇ ÇöÀç »óŸ¦ º¸ÀδÙ. ±×¸®°í º» 󸮿¡ µé¾î°¡±â Àü¿¡ ¾à°£ÀÇ Áغñ µ¿ÀÛÀ» Çϴµ¥ Â÷·Ê¿¡ µû¶ó Ç÷¹À̾î¿Í ¸ÔÀº ÆÐ, »ó´ëÀÇ ¸ÔÀº ÆÐ °´Ã¼¸¦ Turn, TurnPae, OtherPae Æ÷ÀÎÅÍ·Î ¹Ì¸® ¼±ÅÃÇØ ³õ´Â´Ù. Ä«µå¸¦ ³¾ ¶§ Ç÷¹À̾îÀÇ ÆÐ¸¦ ´ã¿ä·Î ¿Å±â°í ´ã¿äÀÇ ÀÏÄ¡ÇÏ´Â Ä«µåµéÀº ¸ÔÀº ÆÐ·Î ¿Å±â¸ç »ó´ë¹æÀÇ ÇǸ¦ °¡Á®¿À±âµµ ÇØ¾ß Çϴµ¥ ¸Å¹ø ´©±¸ Â÷·ÊÀÎÁö¸¦ Á¡°ËÇϱâ´Â ¹ø°Å·Ó±â ¶§¹®¿¡ ¹Ì¸® ¼±ÅÃÇØ ³õ´Â °ÍÀÌ´Ù. ´ÙÀ½ ÄÚµå ¿¹¸¦ º¸¸é Æ÷ÀÎÅÍ·Î ¹Ì¸® ´ë»óÀ» ¼±ÅÃÇØ ³õ´Â °ÍÀÌ ¾ó¸¶³ª È¿À²ÀûÀΰ¡¸¦ ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.

 

if (SouthTurn) {

  South¿¡¼­ Ä«µå »©¼­ ´ã¿ä·Î

  ÀÏÄ¡ÇÏ´Â Ä«µå´Â SouthPae·Î À̵¿

  ÂÊ, µû´Ú½Ã¿¡ NorthPaeÀÇ ÇÇ ÇÑÀå °¡Á® ¿È

} else {

  Notth¿¡¼­ Ä«µå »©¼­ ´ã¿ä·Î

  ÀÏÄ¡ÇÏ´Â Ä«µå´Â NorthPae·Î À̵¿

  ÂÊ, µû´Ú½Ã¿¡ SouthPaeÀÇ ÇÇ ÇÑÀå °¡Á® ¿È

}

Turn¿¡¼­ Ä«µå »©¼­ ´ã¿ä·Î

ÀÏÄ¡ÇÏ´Â Ä«µå´Â TurnPae·Î À̵¿

ÂÊ, µû´Ú½Ã¿¡ OtherPaeÀÇ ÇÇ ÇÑÀå °¡Á® ¿È

 

ÇÊ¿äÇÒ ¶§¸¶´Ù Á¶ÀÛ ´ë»óÀ» ¼±ÅÃÇϸé Â÷·Ê¿¡ µû¶ó ¶È°°Àº Äڵ尡 µÎ ¹ø ¹Ýº¹µÇ¾î¾ß ÇÏÁö¸¸ Æ÷ÀÎÅÍ·Î ¹Ì¸® Á¶ÀÛ ´ë»óÀ» ¼±ÅÃÇØ ³õ°í Æ÷ÀÎÅ͸¦ ÅëÇØ ´ë»óÀ» Á¶ÀÛÇϸé ÇѹúÀÇ Äڵ常À¸·Îµµ ¾çÂÊ Â÷·Ê¸¦ ¸ðµÎ ó¸®ÇÒ ¼ö ÀÖ´Ù. ºÒÇÊ¿äÇÏ°Ô ¹Ýº¹µÇ´Â ÄÚµå´Â ¹«½¼ ¼ö¸¦ ¾²´õ¶óµµ ÅëÇÕÇØ ³ö¾ß °ü¸®°¡ ½¬¿öÁø´Ù. ÀÌÈÄ Äڵ忡¼­ TurnÀº ¹æ±Ý Ä«µå¸¦ ³½ Ç÷¹À̾îÀ̸ç TurnPae´Â ¸ÔÀº Ä«µå°¡ À̵¿ÇÒ °÷À̶ó°í »ý°¢ÇÏ¸é µÈ´Ù.

´ë»óÀ» ¼±ÅÃÇÑ ÈÄ ¾î¶² Ä«µå¸¦ ³¾ °ÍÀΰ¡¸¦ Áú¹®ÇÑ´Ù. Ç÷¹À̾ ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¹øÈ£ÀÇ ¹üÀ§´Â °¡Áö°í ÀÖ´Â Ä«µåÀÇ °³¼ö¸¸Å­ÀÌ´Ù. ÀÔ·ÂÀ» ¹ÞÀº ÈÄ ÇÁ·Î±×·¥ Á¾·á 󸮸¦ Çϴµ¥ 0ÀÌ ÀÔ·ÂµÇ¸é ·çÇÁ¸¦ Å»ÃâÇ쵂 ½Ç¼ö·Î 0À» ´©¸¦ ¼öµµ ÀÖÀ¸¹Ç·Î ÇÑ ¹ø ´õ È®ÀÎÇϵµ·Ï Çß´Ù. Ç÷¹À̾ Ä«µå¸¦ ÇÑ Àå ³»¸é ´ÙÀ½Àº ÀÌ Ä«µå¿Í ´ã¿ä¿¡ ±ò¸° Ä«µå¸¦ ºñ±³ÇÏ¿© °ÔÀÓÀ» ÁøÇàÇÑ´Ù.

¼¼ Àå ÇѲ¨¹ø¿¡ ¸Ô±â¸¦ ±â¾ïÇÏ´Â UserTriple, DeckTripleÀº ÀÏ´Ü ¾Æ´Ñ °ÍÀ¸·Î ÃʱâÈ­ÇØ ³õ°í »ç¿ëÀÚ°¡ ³½ Ä«µåÀÇ ¹øÈ£ UserIdx¿Í Ä«µå ÀÚüÀÎ UserCard¸¦ ±¸ÇØ ³õ´Â´Ù. ÀԷ¹޴ °ªÀº 1ÀÌ ½ÃÀÛ(One Base)ÀÌÁö¸¸ ³»ºÎÀûÀ¸·Î Ä«µå ¹øÈ£´Â 0ºÎÅÍ ½ÃÀÛ(Zero Base)ÇϹǷΠch¿¡ 1À» »©¾ß ¿Ã¹Ù¸¥ Ä«µåÀÇ ¹øÈ£°¡ µÈ´Ù. ´ã¿ä¿¡ ±ò¸° Ä«µå¿Í Ç÷¹À̾ ³½ Ä«µå°¡ ¸î °³³ª ÀÏÄ¡ÇÏ´ÂÁö¸¦ FindSameCard ÇÔ¼ö·Î ±¸Çϸç ÀÌ ÇÔ¼öÀÇ ¸®Åϰª, Áï ÀÏÄ¡ÇÏ´Â °³¼ö¿¡ µû¶ó ´ÙÀ½ 󸮰¡ »ó´çÈ÷ ´Þ¶óÁø´Ù. ÀÏÄ¡ÇÏ´Â °³¼ö´Â 0~3±îÁöÀ̸ç 4´Â ÀÖÀ» ¼ö ¾ø´Ù. °³¼öº°·Î 󸮸¦ ÇØ º¸µÇ »ç¿ëÀÚ°¡ ´ã¿äÀÇ ¾î¶² Ä«µå¸¦ ¸ÔÀ» °ÍÀÎÁö°¡ UserSelº¯¼ö¿¡ ¼±ÅõȴÙ.

 

¨ç Çϳªµµ ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì

¸ÔÀ» °Ô ¾ø¾î¼­ Ä«µå¸¦ ¹ö¸° °ÍÀÌ´Ù. UserSelÀº ¾Æ¹« °Íµµ ¸ÔÁö ¸øÇÑ´Ù´Â Àǹ̷Π-1ÀÌ ´ëÀԵǰí Ç÷¹À̾ ³½ Ä«µå´Â Áï½Ã ´ã¿ä·Î À̵¿Çϸç È­¸éÀ» ´Ù½Ã ±×·Á ¹ö¸° Ä«µå°¡ ´ã¿ä¿¡ ³ªÅ¸³ª¾ß ÇÑ´Ù. ¹Ù·Î ´ÙÀ½¿¡ µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå°¡ ¹ö¸° Ä«µå¿Í ÀÏÄ¡ÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÀÌ Ä«µå¸¦ ´ã¿ä¿¡ °ðÀå »ðÀÔÇØ¾ß ÇÑ´Ù. ÀÏ´Ü ¹ö¸° Ä«µå´Â ´Ù½Ã °¡Á®¿Ã ¼ö ¾ø´Âµ¥ À̰ÍÀÌ ¹Ù·Î °í½ºÅéÀÇ Àý´ë ¿øÄ¢ÀÎ ³«Àå ºÒÀÔÀÌ´Ù.

¨è Çϳª¸¸ ÀÏÄ¡ÇÏ´Â °æ¿ì

Ç÷¹À̾ ´ã¿äÀÇ ÇØ´ç Ä«µå¸¦ ¸ÔÀ» »ý°¢À¸·Î ÀÏÄ¡ÇÏ´Â Ä«µå¸¦ ³½ °ÍÀÌ´Ù. ´õ °í¹ÎÇÒ ÇÊ¿ä¾øÀÌ ÀÏÄ¡ÇÑ Ä«µå¸¦ ¼±ÅÃÇØ ³õÀ¸¸é µÈ´Ù. UserSelÀº ù ¹øÂ° ÀÏÄ¡ÇÏ´Â Ä«µåÀÎ arSame[0]°ªÀ» °¡Áø´Ù. ±×·¯³ª ¾ÆÁ÷ ÀÌ Ä«µå¸¦ ¸ÔÀº ÆÐ·Î À̵¿Çؼ­´Â ¾ÈµÈ´Ù. ¿Ö³ÄÇÏ¸é µ¥Å©¸¦ µÚÁý¾î ¶È°°Àº Ä«µå°¡ ³ª¿À¸é ¼³»ç¸¦ ÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ±×·¡¼­ UserSelÀº ÀáÀçÀûÀ¸·Î Ç÷¹À̾ ¸ÔÀº °ÍÀ¸·Î Ãë±ÞµÇ±â´Â ÇÏÁö¸¸ ¾ÆÁ÷ ¿ÏÀüÈ÷ ¸ÔÀº °ÍÀº ¾Æ´Ï´Ù.

¨é µÎ °³°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì

ÀÌ ¶§´Â Á¶±Ý °ñÄ¡°¡ ¾ÆÇÁ´Ù. µÑ Áß ¾î¶² °ÍÀ» ¼±ÅÃÇÒ Áö Ç÷¹À̾°Ô Áú¹®À» ÇÏ°í ¼±ÅÃÇÑ Ä«µå¸¦ UserSel¿¡ ´ëÀÔÇÑ´Ù. ±×·¯³ª ÀÏÄ¡ÇÏ´Â Ä«µå°¡ µÎ ÀåÀ̶ó°í ÇØ¼­ ¹«Á¶°Ç Áú¹®À» ÇØ¼­´Â ¾ÈµÇ´Âµ¥ µÎ Ä«µå(arSame[0]¿Í arSame[1])°¡ ¿ÏÀüÈ÷ °°´Ù¸é ±»ÀÌ Áú¹®ÇÒ Çʿ䰡 ¾ø´Ù. ´ÙÀ½Àº Ç÷¹À̾ 4¿À Ä«µå¸¦ ³ÂÀ» ¶§ÀÇ »óȲÀε¥ ¾çÂÊ ´Ù ´ã¿ä¿¡ 4¹ø Ä«µå°¡ µÎ À徿 ÀÖ´Ù.

¿ÞÂÊÀÇ °æ¿ì 4½Ê, 4Çǰ¡ °¢°¢ Àִµ¥ ÀÌ µÎ Ä«µå´Â ºÐ¸íÈ÷ ´Ù¸¥ Ä«µåÀÌ´Ù. ±×·¡¼­ ¾î¶² Ä«µå¸¦ ÃëÇÒÁö Áú¹®À» ÇØ¾ß ÇÑ´Ù. ÀÌ Ç÷¹À̾ °íµµ¸®¸¦ ³ë¸®°í ÀÖ´Ù¸é 4½Ê Ä«µå¸¦ ÃëÇÒ °ÍÀÌ¿ä ÇÇ·Î Á¡¼ö¸¦ ¿Õâ ³»·Á°í ÀÛÁ¤Çß´Ù¸é 4ÇǸ¦ ¸ÔÀ» °ÍÀÌ´Ù. ±×·¯³ª ¿À¸¥ÂÊÀÇ °æ¿ì´Â 4¹ø Ä«µå°¡ µÎ Àå ÀÖ´õ¶óµµ µÑ ´Ù ÇÇÀ̹ǷΠ¾î¶² °ÍÀ» ¸ÔÀ¸³ª ¸¶Âù°¡ÁöÀÌ´Ù. ÀÌ °æ¿ì´Â Áú¹®ÇÒ Çʿ䰡 ¾øÀ¸¸ç ºÒÇÊ¿äÇÑ Áú¹®À» ÇØ¼­µµ ¾ÈµÈ´Ù. ½ÇÁ¦ È­ÅõÆÐ¿¡´Â °°Àº 4ÇÇ¶óµµ ±×¸²ÀÌ Á¶±Ý ´Ù¸£°Ô ±×·ÁÁ® ÀÖ±â´Â ÇÏ´Ù.

 

ÇÏÁö¸¸ ¾î¶² Ä«µå¸¦ °¡Á® ¿À³ª Á¡¼ö¿¡´Â ÇϵîÀÇ Â÷À̰¡ ¾øÀ¸¹Ç·Î Ç÷¹À̾î´Â ±×³É ù ¹øÂ° Ä«µå(arSame[0])¸¦ °¡Á®´Ù ÁÖ¸é ¸¸Á·ÇØÇÒ °ÍÀÌ´Ù. °í½ºÅéÆÇ¿¡¼­ °°Àº ¼ýÀÚÀÇ ÇÇ µÎ ÀåÀ» ³õ°í ¾î¶² ±×¸²ÀÌ ¿¹»ÛÁö ÇÑÂü °í¹ÎÇϰí ÀÖ´Ù°¡´Â µ· ÀÒÀº Ä£±¸¿¡°Ô¼­ Àç¶³À̰¡ ³¯¶ó¿Ã Áöµµ ¸ð¸¥´Ù. °í½ºÅéÀº È£ÈíÀÌ ¾ÆÁÖ ºü¸¥ °ÔÀÓÀÌ¶ó ¼±ÅÃÀÌ ´À¸®¸é Àç¹Ì°¡ ¹Ý°¨µÈ´Ù.

Áú¹®À» ÇÒ ¶§´Â ´ã¿äÀÇ DrawSelNumÀ» È£ÃâÇϴµ¥ ÀÏÄ¡ÇÏ´Â Ä«µå ¸ñ·ÏÀÎ arSameÀ» ÁÖ¸é ÀÌ ¸ñ·Ï¿¡ ÀÖ´Â Ä«µåÀÇ À§ÂÊ¿¡ [1], [2] ¼ýÀÚ¸¦ Ãâ·ÂÇÑ´Ù. ±×¸®°í InputInt ÇÔ¼ö·Î 1, 2 Áß Çϳª¸¦ ÀÔ·Â¹Þ¾Æ arSame¿¡¼­ Ç÷¹À̾ ¼±ÅÃÇÑ Ä«µå¸¦ UserSel¿¡ ´ëÀÔÇÑ´Ù. ÀÔ·ÂÀº 1, 2 Áß Çϳª¸¦ ¹ÞÁö¸¸ arSameÀÇ ÀÏÄ¡ÇÏ´Â Ä«µå´Â 0, 1¹ø¿¡ µé¾î ÀÖÀ¸¹Ç·Î Ç÷¹À̾ ´©¸¥ Ű¿¡¼­ 1À» »« ÷ÀÚ¸¦ Àоî¾ß ÇÑ´Ù. UserSelÀÌ °ð Ç÷¹À̾ ¸Ô°í ½Í¾îÇÏ´Â Ä«µåÀÌ´Ù.

¨ê ¼¼ °³°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì

´ã¿ä¿¡ óÀ½ºÎÅÍ ¼¼ ÀåÀÌ ±ò¸° °ÍÀ̳ª »ó´ëÆíÀÌ ¼³»çÇØ ³õÀº °ÍÀ» ¸ÔÀº °æ¿ìÀÌ´Ù. ÇѸ¶µð·Î ¿î¼ö ´ë¹ÚÀÎ ¼ÀÀε¥ À̶§´Â ³× ÀåÀÇ Ä«µå¸¦ ¸ù¶¥ ¸Ô°í »ó´ë¹æÀÇ ÇDZîÁö Çϳª »¯¾î ¿Ã ¼öµµ ÀÖ´Ù. ÀÌ Ã³¸®¸¦ À§ÇØ UserTriple¿¡ true¸¦ ´ëÀÔÇØ ³õ´Âµ¥ ÀÌ´Â Ç÷¹À̾ ³½ Ä«µå·Î ´ã¿äÀÇ Ä«µå ¼¼ ÀåÀ» ÇѲ¨¹ø¿¡ ¸Ô¾ú´Ù´Â Ç¥½ÄÀÌ´Ù. UserSelÀº ¼¼ Ä«µå Áß °¡¿îµ¥ Ä«µå ¹øÈ£¸¦ ´ëÀÔÇØ ³õ´Â´Ù.

 

UserSelÀÌ °¡¿îµ¥ Ä«µå¸¸ °¡¸®Å°°í ÀÖÁö¸¸ UserTripleÀÌ true·Î µÇ¾î ÀÖÀ¸¹Ç·Î ³ªÁß¿¡ Ä«µå¸¦ °¡Á® ¿Ã ¶§ Á¿ìÀÇ Ä«µå±îÁö °°ÀÌ °¡Á®¿À¸é µÈ´Ù. ´ã¿äÀÇ Ä«µå´Â Ç×»ó Á¤·ÄµÇ¾î ÀÖÀ¸¹Ç·Î UserTripleÀÌ trueÀÏ ¶§ UserSel ¾çÂÊÀº Ç×»ó °°Àº ¹øÈ£ÀÇ Ä«µåÀÌ´Ù.

 

ÀÏÄ¡ÇÏ´Â Ä«µå °³¼ö¿¡ µû¶ó UserSel, UserTriple º¯¼ö¿¡ ¾î¶² Ä«µå¸¦ ¸Ô¾î¾ß ÇÏ´ÂÁö¸¦ Àß ±â·ÏÇØ ³õ´Â´Ù. ±×¸®°í È­¸é¿¡´Â Ç÷¹À̾ ³½ Ä«µå¸¦ ¸ÔÀ» Ä«µå ¾Æ·¡ÂÊ¿¡ Ãâ·ÂÇØ ³õ°í Àá½Ã ´ë±âÇÑ´Ù. °ÔÀÓÀÌ ³Ê¹« ±Þ°ÝÇÏ°Ô ÁøÇàµÇ¸é »ç¿ëÀÚ°¡ ÁøÇà »óȲÀ» Àß ÆÄ¾ÇÇÏÁö ¸øÇϹǷΠÀûÀýÇÑ ´ë±â ½Ã°£ÀÌ ÇÊ¿äÇÏ´Ù.

´ÙÀ½Àº µ¥Å©¿¡¼­ ÇÑÀåÀ» µÚÁý´Â´Ù. µÚÁýÀº Ä«µå°¡ ¹«¾ùÀÎÁö È®ÀνÃÄÑ ÁÖ±â À§ÇØ µ¥Å©ÀÇ Á¦ÀÏ À§ÂÊ Ä«µå¸¦ µ¥Å© ¿À¸¥ÂÊ¿¡ ±×·Á Ç¥½ÃÇϰí Àá½Ã ´ë±âÇÑ´Ù. CDeck.Draw·Î true¸¦ Àü´ÞÇϸé ??? ¿·¿¡ Á¦ÀÏ À§ÂÊ Ä«µå¸¦ Àá½Ã Ç¥½ÃÇϵµ·Ï µÇ¾î ÀÖ´Ù. È®ÀÎÀÌ ³¡³ª¸é Pop ÇÔ¼ö·Î µ¥Å©ÀÇ Á¦ÀÏ À§ÂÊ Ä«µå¸¦ DeckCard·Î °¡Á®¿À´Âµ¥ ÀÏ´Ü µÚÁýÀº Ä«µå¸¦ µ¥Å©¿¡ ´Ù½Ã ³ÖÀ» ÀÏÀº ¾øÀ¸¹Ç·Î ÀÌ ½ÃÁ¡¿¡¼­ µ¥Å©ÀÇ À§ÂÊ Ä«µå¸¦ ¿ÏÀüÈ÷ Á¦°ÅÇØµµ »ó°ü¾ø´Ù.

µÚÁýÀº Ä«µå°¡ ´ã¿äÀÇ Ä«µå¿Í ¾î¶»°Ô ÀÏÄ¡ÇÏ´ÂÁö, ¸î °³³ª ÀÏÄ¡ÇÏ´ÂÁö¿¡ µû¶ó ´ÙÀ½ °ÔÀÓ ÁøÇàÀÌ °áÁ¤µÈ´Ù. À̶§µµ ÀÏÄ¡ÇÏ´Â Ä«µå °³¼ö¿¡ µû¶ó 󸮰¡ °¢°¢ ´Ù¸£´Ù. °¢ ÄÉÀ̽º¿¡¼­ µ¥Å©ÀÇ Ä«µå°¡ ´ã¿äÀÇ ¾î¶² Ä«µå¸¦ ¸ÔÀ»Áö DeckSelÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù. ÀÏÄ¡ÇÏ´Â °³¼öº°·Î ó¸®ÇØ º¸ÀÚ. Ç÷¹À̾ Ä«µå¸¦ ³ÂÀ» ¶§¿Í ºñ½ÁÇÑ »óȲÀÌÁö¸¸ Ç÷¹À̾ ³½ Ä«µå±îÁö °í·ÁÇØ¾ß ÇϹǷΠó¸® °úÁ¤ÀÌ ÈξÀ ´õ º¹ÀâÇÏ´Ù.

 

¨ç Çϳªµµ ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì

¿îÀÌ µû¶ó ÁÖÁö ¾Ê´Â °æ¿ìÀε¥ DeckSel¿¡ -1À» ´ëÀÔÇÏ¿© µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå·Î ´ã¿äÀÇ Ä«µå¸¦ ¸ÔÁö ¸øÇÔÀ» Ç¥½ÃÇØ ³õ±â¸¸ ÇÑ´Ù. Ç÷¹À̾îÀÇ Ä«µå´Â ´ÙÀ½ ÆÇ´ÜÀ» À§ÇØ Áï½Ã ´ã¿ä·Î º¸³ÂÁö¸¸ µ¥Å©ÀÇ Ä«µå´Â ¹Ù·Î ´ã¿ä¿¡ »ðÀÔÇÏÁö ¸»°í Ç÷¹À̾î Ä«µå°¡ ó¸®µÉ ¶§±îÁö ´ë±âÇØ¾ß ÇÑ´Ù. ¸¸¾à µ¥Å©ÀÇ Ä«µå¸¦ ´ã¿ä·Î Áö±Ý º¸³»¸é ¾Õ¼­ Á¶»çÇØ ³õÀº UserSelÀÌ ¹«È¿°¡ µÉ ¼öµµ ÀÖ´Ù. ´ÙÀ½ °æ¿ì¸¦ º¸ÀÚ.

Ç÷¹À̾ 9ÇǸ¦ ³»°í 4¹øÂ° Ä«µåÀÎ 9½Ê Ä«µå¸¦ ÂòÇØ ³õÀº »óȲ¿¡¼­ µ¥Å©¸¦ µÚÁý¾ú´Âµ¥ 3±¤ÀÌ ³ª¿Ô´Ù°í ÇÏÀÚ. ÀÌ Ä«µå¸¦ ´ã¿ä¿¡ »ðÀÔÇϸé InsertCard°¡ Á¤·ÄÀ» ÇÏ´Â °úÁ¤¿¡¼­ 3±¤º¸´Ù µÚÂÊ Ä«µåµéÀÌ ÇÑ Ä­¾¿ µÚ·Î ¹Ð·Á ¹ö¸°´Ù. ÀÌ·¸°Ô µÇ¸é UserSelÀÌ °¡¸®Å°°í ÀÖ´Â 4¹øÂ° Ä«µå´Â 8±¤ÀÌ µÇ¾î ¹ö¸± °ÍÀ̸ç 8±¤°ú 9Çǰ¡ ¸ÔÀº ÆÐ·Î °°ÀÌ »ðÀ﵃ °ÍÀÌ´Ù. ¹øÈ£°¡ ´Ù¸¥ Ä«µå¸¦ À߸ø °¡Á® °¬À¸¹Ç·Î °ÔÀÓÀ» ³¡±îÁö ÁøÇàÇØµµ ´ã¿ä¿¡ ³²´Â Ä«µå°¡ »ý±â°Ô µÇ¸ç ÀÌ »óȲÀ» À̸¥¹Ù ³ª°¡¸®¶ó°í ÇÑ´Ù.

¹°·Ð µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå°¡ UserSel º¸´Ù µÚÂÊ¿¡ »ðÀÔµÈ´Ù¸é ¾Æ¹« ¹®Á¦°¡ ¾øÀ» °ÍÀÌ´Ù. À§ ±×¸²¿¡¼­ µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå°¡ JÇǶó¸é ´ã¿ä¿¡ ³ÃÅ­ »ðÀÔÇØµµ »ó°ü¾ø´Ù. UserSelÀÌ ¸ÔÀ» Ä«µå ÀÚü¸¦ °¡Áö°í ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ´ã¿ä¿¡¼­ÀÇ Ã·ÀÚ ¹øÈ£¸¦ °¡Áö°í Àֱ⠶§¹®¿¡ ÀÌ Ä«µå¸¦ ¿ÏÀüÈ÷ Á¢¼öÇϱâ Àü¿¡´Â ÷ÀÚ°¡ À¯È¿Çϵµ·Ï °è¼Ó º¸È£ÇØ¾ß ÇÑ´Ù. ±×·¡¼­ DeckSel¿¡ -1¸¸ ±â·ÏÇØ ³õ°í µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå¸¦ ´ã¿ä·Î º¸³»´Â 󸮴 UserSelÀ» ó¸®ÇÑ ÈÄ·Î º¸·ùÇÑ´Ù.

¨è Çϳª¸¸ ÀÏÄ¡ÇÏ´Â °æ¿ì

ÀÏ´Ü DeckSel¿¡ ÀÏÄ¡ÇÑ Ä«µåÀÇ Ã·ÀÚÀÎ arSame[0]¸¦ ´ëÀÔÇØ ³õ´Â´Ù. µ¥Å©¸¦ µÚÁýÀ» ¶§´Â Ç÷¹À̾ Ä«µå¸¦ ³¾ ¶§ ¹ß»ýÇÏÁö ¾Ê´Â »ç°ÇÀÌ Àִµ¥ ¹Ù·Î ¼³»ç ó¸®ÀÌ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ÀÌ¹Ì ¸ÔÀ¸·Á°í ÂòÇØ ³õÀº Ä«µå°¡ µ¥Å©¿¡¼­ ¶Ç ³ª¿Ô´Ù¸é À̸¦ ¼³»ç¶ó°í Çϴµ¥ ¹Ù·Î ´ÙÀ½ »óȲÀÌ´Ù.

¼³»ç¸¦ Çϸé Ç÷¹À̾ ³½ Ä«µå¿Í µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå¸¦ ¸ðµÎ ´ã¿ä·Î ¹Ý³³Çϰí ÀÚ±â Â÷·Ê°¡ ¿ÏÀüÈ÷ ³¡³­´Ù. Á¡¼ö°¡ ¹Ù²î°Å³ª °ÔÀÓÀÌ ³¡³ª´Â Àϵµ ¾øÀ¸¹Ç·Î Ä«µå¸¦ Áï½Ã ¹Ý³³ÇÏ°í ·çÇÁ ¼±µÎ·Î µ¹¾Æ°¡¸é µÈ´Ù. ´Ü, ¸·ÆÇÀÎ °æ¿ì¿¡´Â ¼³»ç°¡ ¾øÀ¸¹Ç·Î À̶§´Â UserSel¸¸ ÀÌ Ä«µå¸¦ °¡Á®°¡°í µ¥Å©´Â -1À» ´ëÀÔÇÏ¿© ¸ø ¸ÔÀº °ÍÀ¸·Î Ãë±ÞÇÑ´Ù. ¿©±â¼­ DeckSel¿¡ -1À» ¸í½ÃÀûÀ¸·Î ´ëÀÔÇØ ³õÁö ¾ÊÀ¸¸é ´ã¿äÀÇ Ä«µå Çϳª¸¦ Ç÷¹À̾î¿Í µ¥Å©ÀÇ Ä«µå°¡ ¼­·Î ¸ÔÀ¸·Á°í ÇÒ °ÍÀÌ´Ù. ÇÑ ¹ø¿¡ Ä«µå ¼¼ ÀåÀ» °¡Á® ¿À¸é À̰͵µ ³ª°¡¸®°¡ µÇ°í ¸¸´Ù.

¨é µÎ °³°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì

°¡Àå º¹ÀâÇÑ ÄÉÀ̽ºÀε¥ Åë»óÀÇ °æ¿ì´Â Ç÷¹À̾ ³½ Ä«µåÀÇ °æ¿ì¿Í °°´Ù. Áï, ´ã¿äÀÇ µÎ Ä«µå°¡ °°À¸¸é Áú¹®¾øÀÌ Ã¹ ¹øÂ° ÀÏÄ¡ÇÏ´Â °ÍÀ» ¼±ÅÃÇÏ°í Æ²¸± °æ¿ì´Â ¾î¶² Ä«µå¸¦ ÃëÇÒÁö Áú¹®ÇØ¾ß ÇÑ´Ù. µ¥Å©ÀÇ Ä«µå´Â ¿©±â¿¡ ÇѰ¡Áö Á¶°ÇÀÌ ´õ µé¾î°¡´Âµ¥ µÎ Àå Áß Çϳª¸¦ Ç÷¹À̾ ÀÌ¹Ì ÂòÇØ ³õ¾Ò´Ù¸é º°µµÀÇ Áú¹®¾øÀÌ ³²Àº Çϳª¸¦ ±×³É ÃëÇÏ¸é µÈ´Ù.

7¹ø Ä«µå°¡ µÎ Àå ±ò·Á Àִµ¥ Ç÷¹À̾ 7ÇǸ¦ ³»°í 7½ÊÀ» ¼±ÅÃÇß´Ù¸é µ¥Å©¿¡¼­ ³ª¿Â 7¹ø Ä«µå´Â ³ª¸ÓÁö 7ÇǸ¦ ¼±ÅÃÇÒ ¼ö¹Û¿¡ ¾ø´Ù. ¹Ý´ë·Î Ç÷¹À̾ ¸ÕÀú 7ÇǸ¦ ¼±ÅÃÇß´Ù¸é µ¥Å©ÀÇ Ä«µå´Â 7½ÊÀ» °¡Á® °¡¾ß ÇÑ´Ù. Ç÷¹À̾îÀÇ Ä«µå·Î µÎ ÀåÀ» ¸Ô°í µÚÁýÀº Ä«µå·Î °°Àº Ä«µå µÎ ÀåÀ» ¶Ç ¸ÔÀº ÀÌ »óȲÀ» µû´ÚÀ̶ó°í Çϴµ¥ ÀÌ Á¶°Ç Á¡°ËÀº µÚ¿¡¼­ µû·Î Çϰí ÀÖ´Ù. Áö±Ý ÀÌ ´Ü°è¿¡¼­´Â µû´ÚÀ» ó¸®ÇÏÁö ¾Ê´Âµ¥ ¿Ö³ÄÇϸé Ä«µå¸¦ À̵¿½ÃŲ ÈÄ¿¡ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â °ÍÀÌ ´õ º¸±â ÁÁ±â ¶§¹®ÀÌ´Ù.

¨ê ¼¼ °³°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì

ÀÌ °æ¿ì´Â ´Ù¼Ò °£´ÜÇÏ´Ù. DeckSelÀº °¡¿îµ¥ Ä«µå¸¦ ¼±ÅÃÇØ ³õ°í DeckTripleÀº true·Î ¹Ù²ã ³õ´Â´Ù. ¿©±â¼­ ¸·ÆÇ Á¡°ËÀº ÇÏÁö ¾Ê´Âµ¥ ¼³»ç ¸·ÆÇÀ̶ó ÇÏ´õ¶óµµ ÀÏÄ¡ÇÑ Ä«µå´Â ´Ù ¸Ô¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ¸·ÆÇÀΰ¡ ¾Æ´Ñ°¡¿¡ µû¶ó ´Þ¶óÁö´Â °ÍÀº »ó´ë¹æÀÇ ÇǸ¦ °¡Á®¿Ã °ÍÀΰ¡ ¾Æ´Ñ°¡À̸ç ÀÌ Ã³¸®´Â µÚ¿¡¼­ Á¡¼ö¸¦ °è»êÇÒ ¶§ Á¶°ÇÀ» Àß Á¡°ËÇϹǷΠ°ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.

 

¿©±â±îÁö ó¸®ÇÑ ÈÄ µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå¸¦ DeckSel ÀÚ¸®¿¡ Ç¥½ÃÇÏ°í µ¥Å©ÀÇ µÚÁýÀº Ä«µå´Â ´Ù½Ã ¼û±ä´Ù. ±×¸®°í Àá½Ã ´ë±âÇÏ¿© ¹«½¼ ÀÏÀÌ ÀϾ°í ÀÖ´ÂÁö¸¦ È®ÀνÃŲ´Ù. ¾ÆÁ÷±îÁö Ä«µå¸¦ ¸ÔÀº °ÍÀº Çϳªµµ ¾ø°í UserSel, DeckSel¿¡ ¾ÕÀ¸·Î ¸ÔÀ» Ä«µåÀÇ È帵鸸 Ç¥½ÃµÇ¾î ÀÖ´Ù. ÀÌÁ¦ ½ÇÄÆ Á¶»çÇØ ³õÀº Ä«µå¸¦ ³È³È µå½Ã°í Á¡¼ö¸¦ °è»êÇØ º¼ Â÷·Ê´Ù. UserSelÀÌ -1ÀÌ ¾Æ´Ï¶ó¸é ´ã¿äÀÇ Ä«µå¸¦ ¸Ô¾ú´Ù´Â ¶æÀ̹ǷΠÀÏÄ¡ÇÑ µÎ Ä«µå¸¦ ¸ÔÀº ÆÐ·Î À̵¿½ÃŰ¸é µÈ´Ù. ´ÙÀ½ µÎ ÁÙ·Î µÎ °³ÀÇ Ä«µå¸¦ TurnPae¿¡ »ðÀÔÇÑ´Ù.

 

TurnPae->InsertCard(Blanket.RemoveCard(UserSel));

TurnPae->InsertCard(Turn->RemoveCard(UserIdx));

 

´ã¿äÀÇ UserSelÀÌ °¡¸®Å°´Â Ä«µå¸¦ Á¦°ÅÇϸ鼭 TurnPae¿¡ »ðÀÔÇϰí Ç÷¹À̾î(Turn)ÀÇ Ä«µå Áß »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ Ä«µå¸¦ Á¦°ÅÇϸ鼭 TurnPae¿¡ »ðÀÔÇÏ¸é µÎ °³ÀÇ Ä«µå°¡ ¸ÔÀº ÆÐ·Î À̵¿µÈ´Ù.

±×·¯³ª ½ÇÁ¦ ÄÚµå´Â À̺¸´Ù Á¶±Ý ´õ º¹ÀâÇѵ¥ µÎ °¡Áö »óȲÀ» ´õ ó¸®ÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¿ì¼± ¼¼ ÀåÀ» ÇѲ¨¹ø¿¡ ¸ÔÀº °æ¿ì(UserTripleÀÌ true)¸¦ ó¸®ÇØ¾ß ÇÑ´Ù. À̶§´Â ´ã¿ä¿¡¼­ ¼¼ ÀåÀ» ´Ù °¡Á®¿Í¾ß Çϴµ¥ UserSelÀÌ ¼¼ Ä«µåÀÇ Áß¾ÓÀ» °¡¸®Å°°í ÀÖÀ¸¹Ç·Î UserSel »Ó¸¸ ¾Æ´Ï¶ó UserSel+1, UserSel-1µµ °¡Á®¿Í¾ß ÇÑ´Ù. ¼¼ Ä«µå¸¦ °¢°¢ÀÇ Ã·ÀÚ·Î °¡Á®¿À´Â ´ë½Å UserSel-1À» ¼¼ ¹ø °¡Á® ¿À¸é ÈξÀ ´õ °£´ÜÇÏ´Ù.

ÀÌ·¸°Ô µÇ´Â ÀÌÀ¯´Â ´ã¿äÀÇ Ä«µå°¡ Á¤·ÄµÇ¾î ÀÖ¾î °°Àº ¼ýÀÚÀÇ Ä«µå³¢¸® ÀÎÁ¢ÇØ ÀÖÀ¸¸ç RemoveCard ÇÔ¼ö°¡ Çϳª¸¦ Á¦°ÅÇϸ鼭 µÚÂÊ¿¡ ÀÖ´Â Ä«µåµéÀ» ÇÑ Ä­¾¿ ¾ÕÂÊÀ¸·Î À̵¿½Ã۱⠶§¹®ÀÌ´Ù. ¸¶Ä¡ ¼¼ ±ÛÀÚ¸¦ Áö¿ï ¶§ Á¦ÀÏ ¾Õ¿¡¼­ Del ۸¦ ¼¼ ¹ø ´©¸£¸é µÇ´Â °Í°ú °°Àº ÀÌÄ¡ÀÌ´Ù. ÷ÀÚ¸¦ ¹Ù²ã °¡¸ç ÇÔ¼ö¸¦ ¼¼ ¹ø È£ÃâÇÏ´Â °Íº¸´Ù´Â ¶È°°Àº Äڵ带 ¼¼ ¹ø ¹Ýº¹ÇÏ´Â °ÍÀÌ ´õ ½±´Ù.

UserSelÀ» Á¦°ÅÇÒ ¶§ µÚÂÊ¿¡ ÀÖ´Â DeckSelµµ °°ÀÌ À̵¿ÇØ¾ß ÇÑ´Ù. µÎ º¯¼ö°¡ °°Àº ¹è¿­»óÀÇ Ã·ÀÚ¸¦ °¡¸®Å°°í ÀÖÀ¸¹Ç·Î ÇÑ Ã·ÀÚ°¡ Á¦°ÅµÇ¸é ³ª¸ÓÁö ÷ÀÚµµ ¿µÇâÀ» ¹Þ±â ¶§¹®ÀÌ´Ù. ´Ü, DeckSelÀÌ UserSelº¸´Ù ´õ ¾ÕÂÊ¿¡ ÀÖ´Ù¸é ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. DeckSelÀÌ -1ÀÌ ¾Æ´Ï°í UserSelº¸´Ù ´õ µÚÂÊÀ̸é Á¦°ÅµÈ °³¼ö¸¸Å­ DeckSelµµ ¾ÕÀ¸·Î À̵¿ÇØ¾ß Á¤È®ÇÑ Ä«µå¸¦ °¡¸®Å³ ¼ö ÀÖ´Ù.

µ¥Å©¸¦ µÚÁý¾î¼­ ÀÏÄ¡ÇÑ Ä«µå¸¦ ¸Ô´Â °ÍÀº Ç÷¹À̾ ³½ Ä«µå¸¦ ¸Ô´Â °Í°ú °ÅÀÇ µ¿ÀÏÇÏ´Ù. ´Ü, ÇѰ¡Áö ´õ Ãß°¡µÇ´Â 󸮴 DeckSelÀÌ -1ÀÏ ¶§, Áï ÀÏÄ¡ÇÏ´Â Ä«µå°¡ ¾ø¾î ¸ÔÀ» °Ô ¾øÀ» ¶§ ÀÌ Ä«µå°¡ ´ã¿ä·Î À̵¿ÇÑ´Ù´Â Á¡ÀÌ´Ù. Ç÷¹À̾îÀÇ Ä«µå´Â ÀÏÄ¡ÇÏ´Â Ä«µå°¡ ¾øÀ» ¶§ Áï½Ã ´ã¿ä·Î ¹Ý³³µÇ¾úÁö¸¸ µ¥Å©ÀÇ Ä«µå´Â Á÷Àü¿¡ Á¶»çÇØ ³õÀº UserSelÀ» º¸È£Çϱâ À§ÇØ ´ã¿ä¿¡ Áï½Ã »ðÀÔÇÏÁö ¾Ê¾Ò¾ú´Âµ¥ ÀÌ ½ÃÁ¡¿¡¼­ Ä«µå¸¦ ´ã¿ä¿¡ »ðÀÔÇÑ´Ù.

´ã¿ä¿¡ ÆîÃÄÁø Ä«µå¸¦ ´Ù °ÅµÖ µé¿´À¸¸é ´ÙÀ½Àº °ÔÀÓÆÇÀÇ ¿©·¯ »óȲÀ» Á¾ÇÕÀûÀ¸·Î ÆÇ´ÜÇÏ¿© Á¶°ÇÀÌ ¸ÂÀ» °æ¿ì »ó´ë¹æÀÇ ÇǸ¦ °¡Á®¿Â´Ù. °í½ºÅé¿¡´Â ÀÌ·± Á¶°ÇÀÌ ¹«·Á ´Ù¼¸ °¡Áö³ª µÇ´Âµ¥ ¸ðµÎ ¸·ÆÇ¿¡´Â ÀÎÁ¤µÇÁö ¾Ê´Â´Ù´Â °øÅëÁ¡À» °¡Áö°í ÀÖ´Ù. ±×·¡¼­ Deck.IsNotLast¸¦ ¸ÕÀú È£ÃâÇÏ¿© µ¥Å©ÀÇ ³²Àº Ä«µå°¡ 2Àå ÀÌ»óÀÎÁö¸¦ ¸ÕÀú Á¡°ËÇß´Ù. »¯¾î¿Ã Ä«µåÀÇ ¼ýÀÚ´Â nSnatch º¯¼ö·Î ¼¼´Âµ¥ ÃʱⰪÀº ¹°·Ð 0ÀÌ´Ù.

ÂÊÀº ³»°¡ ³½ Ä«µå¸¦ µ¥Å©¿¡¼­ µÚÁý¾î ³»°¡ ´Ù½Ã ¸ÔÀº °æ¿ìÀÌ´Ù. Á¶°Ç¹®À» ¸»·Î Ç®¾î º¸¸é Ç÷¹À̾ ³½ Ä«µå´Â ¾Æ¹« °Íµµ ¸ÔÁö ¸øÇß°í µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå´Â ÇÑ ÀåÀ» ¸Ô¾ú´Âµ¥ ±× Ä«µå°¡ Á» Àü¿¡ ³½ ¹Ù·Î ±× Ä«µå¶ó´Â ¶æÀÌ´Ù. ÀÌ·± Á¶°Ç¹®À» ¸¸µé ¶§´Â È­ÅõÆÐ¸¦ Àß ÆîÃÄ ³õ°í ¾î¶² °æ¿ì¸¦ ¿ì¸®°¡ ÂÊÀ̶ó°í ºÎ¸£´ÂÁö¸¦ Àß °üÂûÇØ º¸°í ±× °á°ú¸¦ ÄÚµå·Î ¿Å±â¸é µÈ´Ù. ¿¹¸¦ µé¾î °í½ºÅéÀ» óÀ½ ¹è¿ì´Â Ä£±¸°¡ "µµ´ëü ÂÊÀÌ ¹¹¾ß?"¶ó°í ¹°¾úÀ» ¶§ Ä£±¸¿¡°Ô ¼³¸íÇϵíÀÌ ÄÄÆÄÀÏ·¯¿¡°Ô ÂÊÀÇ Á¶°ÇÀ» ÄÚµå·Î ±â¼úÇÏ¿© °¡¸£ÃÄ ÁÖ´Â °ÍÀÌ´Ù. Á¶°ÇÀÌ ¸¸Á·ÇÏ¸é ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í »¯¾î¿Ã Ä«µå nSnatch¸¦ 1 Áõ°¡½ÃŲ´Ù.

³ª¸ÓÁö ÄÚµåµéµµ ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î Á¶°Ç½ÄÀ» ¸¸µç´Ù. µû´ÚÀº Ç÷¹À̾îÀÇ Ä«µå¿Í ÀÏÄ¡ÇÏ´Â Ä«µå°¡ ´ã¿ä¿¡ ÀÖ°í µ¥Å©¿¡¼­ µÚÁýÀº Ä«µå¿Í´Â µÎ ÀåÀÌ ÀÏÄ¡ÇÏ¿© ¾çÂÊ ´Ù ¹º°¡¸¦ ¸Ô±ä ¸Ô¾ú´Âµ¥ µÎ Ä«µåÀÇ ¼ýÀÚ°¡ ÀÏÄ¡ÇÒ ¶§ÀÌ´Ù. ±ÛÀ» ÀÐÀ¸¸é ±²ÀåÈ÷ º¹ÀâÇØ º¸ÀÌÁö¸¸ È­Åõ¸¦ ¼Õ¿¡ µé°í »ý°¢ÇØ º¸¸é ½±°Ô ÀÌÇØµÉ °ÍÀÌ´Ù. ½Ï¾µÀÌÀÇ Á¶°ÇÀº Á¦ÀÏ ½¬¿îµ¥ ´ã¿ä¿¡ ³²Àº Ä«µå°¡ Çϳªµµ ¾ø¾î¾ß ÇÑ´Ù. ÇѲ¨¹ø¿¡ ¼¼ ÀåÀ» ¸Ô´Â °æ¿ì´Â ¾Õ¿¡¼­ ÀÌ¹Ì Á¶°Ç Á¡°ËÀ» ¸¶ÃÆÀ¸¹Ç·Î UserTriple, DeckTriple º¯¼ö¸¸ »ìÆìº¸¸é µÈ´Ù. µÎ °æ¿ì °¢°¢¿¡ ´ëÇØ ÇÇ ÇÑÀ徿À» »¯¾î ¿Ã ¼ö ÀÖ´Ù.

´Ù¼¸ °¡Áö Á¶°ÇÀ» ¸ðµÎ Á¡°ËÇÏ¸é »¯¾î¿Ã ÇÇÀÇ ¼ýÀÚ°¡ nSnatch º¯¼ö¿¡ ´ëÀԵǾî ÀÖÀ» °ÍÀÌ´Ù. Á¶°ÇÀº ´Ù¼¸ °³ÀÌÁö¸¸ nSnatchÀÇ ÃÖ´ë°ªÀº 3ÀÌ´Ù. ¿Ö³ÄÇϸé Âʰú µû´Ú, ÇѲ¨¹ø¿¡ ¼¼ Àå ¸Ô±â´Â µ¿½Ã¿¡ ¸¸Á·µÉ ¼ö ¾ø´Â Á¶°ÇÀ̱⠶§¹®ÀÌ´Ù. UserTriple, DeckTripleÀÌ µ¿½Ã¿¡ ¹ß»ýÇϸ鼭 ½Ï¾µÀ̱îÁö ÇßÀ» ¶§ »ó´ë¹æÀÇ ÇÇ ¼¼ ÀåÀ» °¡Á®¿Ã ¼ö Àִµ¥ È®·üÀûÀ¸·Î ±¸°æÇϱ⠹«Ã´ Èûµç »óȲÀÌ´Ù.

ÇDZîÁö °¡Á® ¿ÔÀ¸¸é ¸¶Áö¸·À¸·Î Á¡¼ö¸¦ °è»êÇÑ´Ù. TurnPaeÀÇ CalcScore ÇÔ¼ö¸¦ È£ÃâÇϸé ÇöÀç Á¡¼ö°¡ ½Ç½Ã°£À¸·Î °è»êµÈ´Ù. ÀÌ Á¡¼ö°¡ ÀÌÀüÀÇ OldScoreº¸´Ù ´õ Ä¿Á³´Ù¸é °í, ½ºÅé Áú¹®À» ÇÑ´Ù. ½ºÅéÇÏ°Ú´Ù¸é ±×³É °ÔÀÓÀ» ³¡³»°í °è¼Ó Çϰڴٸé OldScore¸¦ °»½ÅÇÏ°í °í ȸ¼ö¸¦ 1Áõ°¡½ÃŲ ÈÄ ·çÇÁ ¼±µÎ·Î µ¹¾Æ°¡¸é µÈ´Ù. ´Ü, ¸·ÆÇ¿¡´Â ¾îÂ÷ÇÇ ³¡³ª´Â ÁßÀ̹ǷΠÀÌ Áú¹®À» ÇÒ Çʿ䰡 ¾øÀ¸¸ç ¹«Á¶°Ç ½ºÅéÀÌ´Ù.

À̻󿡼­ ¼³¸íÇÑ °úÁ¤ÀÌ µ¥Å©ÀÇ Ä«µå¸¦ ´Ù µÚÁý°Å³ª Ç÷¹À̾î Áß Çϳª°¡ ½ºÅéÀ» ¿ÜÄ¥ ¶§±îÁö ¹Ýº¹µÈ´Ù. for ·çÇÁÀÇ ¹Ù±ù¿¡´Â ¸¶Áö¸·À¸·Î È­¸éÀ» ÇÑ ¹ø ±×¸®°í °ÔÀÓÀÌ ³¡³µ´Ù´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â Äڵ常 ÀÖ´Ù.