14-4-¶ó.È­¸é ±×¸®±â

È­¸éÀ» ±×¸®´Â ÀÛ¾÷Àº DrawScreen ÇÔ¼ö°¡ ´ã´çÇÑ´Ù. È­¸éÀ» ±×¸®´Â µ¿ÀÛµµ ¹Ýº¹ÀûÀ¸·Î È£ÃâµÇ¹Ç·Î ÇÔ¼ö·Î µû·Î ºÐ¸®Çß´Ù. ÀÌ ÇÔ¼ö´Â arCell Àü¿ª ¹è¿­À» ÂüÁ¶ÇÏ¿© ÇöÀç °ÔÀÓ »óȲÀ» È­¸éÀ¸·Î Ãâ·ÂÇÑ´Ù. St ¸â¹ö¸¦ ÂüÁ¶ÇÏ¿© ÀÌ¹Ì Ã£Àº Ä­(FLIP)Àº [¼ýÀÚ]¸¦ º¸¿© ÁÙ °ÍÀÌ°í ¾ÆÁ÷ ãÁö ¸øÇÑ Ä­(HIDDEN)Àº ?¸¦ Ãâ·ÂÇϸç Àӽ÷Π¿­¾îº» Ä­(TEMPFLIP)¿¡ ´ëÇؼ­´Â °ýÈ£¾øÀÌ ¼ýÀÚ¸¸ Ãâ·ÂÇÑ´Ù.

bHint¶ó´Â BOOLÇüÀÇ Àμö¸¦ Çϳª Àü´Þ¹Þ´Âµ¥ ÀÌ °ªÀÌ TRUEÀ̸é arNum ¹è¿­¿¡ ¼û¾î ÀÖ´Â ¸ðµç ¼ýÀÚ¸¦ ´Ù º¸¿©ÁÖ¶ó´Â ¶æÀÌ´Ù. InitGame¿¡¼­ ÃÖÃÊ °ÔÀÓÆÇÀ» ¸¸µç ÈÄ °ÔÀÓÆÇÀ» »ì¦ º¸¿©ÁÙ ¶§¸¸ bHint°¡ TRUEÀÌ¸ç °ÔÀÓÀÌ ÁøÇàÁßÀÏ ¶§´Â Ç×»ó FALSE°¡ Àü´ÞµÈ´Ù. ÈùÆ®¸¦ º¸¿©ÁÙ ¶§³ª ½ÇÁ¦ °ÔÀÓ ÁøÇà »óȲÀ» º¸¿© ÁÙ ¶§³ª 󸮰¡ ºñ½ÁÇϹǷΠÇÑ ÇÔ¼ö¿¡¼­ ¸ðµÎ ó¸®Ç쵂 bHint Àμö¸¦ »ç¿ëÇÏ¿© µÎ °æ¿ì¸¦ ±¸ºÐÇϵµ·Ï Çß´Ù. ÀÌó·³ ÇÑ ÇÔ¼ö°¡ °æ¿ì¿¡ µû¶ó ´Ù¸¥ µ¿ÀÛÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ÀåÄ¡°¡ ¹Ù·Î ÀμöÀÌ´Ù.

ÀÌÁß ·çÇÁ ±¸¼ºÀ» À§ÇØ x, y µÎ °³ÀÇ Áö¿ªº¯¼ö¸¦ ¼±¾ðÇÏ°í y¸¦ 0~3±îÁö µ¹¸é¼­ °¢ y¿¡ ´ëÇØ xµµ 0~3±îÁö ·çÇÁ¸¦ µ¹µµ·Ï Çß´Ù. µû¶ó¼­ ÃÑ ·çÇÁ ½ÇÇà Ƚ¼ö´Â 16¹øÀÌ µÇ¸ç 16°³ÀÇ Ä­¿¡ ´ëÇØ °³º°ÀûÀ¸·Î Ãâ·ÂÇÑ´Ù. ·çÇÁÀÇ ¹Ýº¹ ´ÜÀ§´Â ÁÖ¾îÁø x, yÄ­ÀÇ Á¤º¸¸¦ È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â °ÍÀÌ´Ù. ¸ÕÀúgotoxy ÇÔ¼ö·Î Ä¿¼­¸¦ Ãâ·Â À§Ä¡·Î ¿Å±â´Âµ¥ (x*5+2, y*3+2)¶ó´Â ÁÂÇ¥ °è»ê½ÄÀÌ Á¶±Ý º¹ÀâÇØ º¸ÀδÙ. ÀÌ ½ÄÀº Á¦¾î º¯¼ö¿Í ¸Å ¹Ýº¹¸¶´Ù À̵¿ÇØ¾ß ÇÒ ÁÂÇ¥°ª°úÀÇ 1Â÷ ÇÔ¼ö°ü°è¸¦ ³ªÅ¸³½´Ù.

x¿¡ 5¸¦ °öÇÏ´Â ÀÌÀ¯´Â °¢ Ä­³¢¸®ÀÇ ¼öÆò °Å¸®°¡ 5¶ó´Â ¶æÀ̸ç y¿¡ 3À» °öÇÏ´Â ÀÌÀ¯´Â °¢ Ä­³¢¸® ¼öÁ÷ °Å¸®°¡ 3À̶ó´Â ¶æÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÄܼÖÀÇ ±Û²ÃÀÌ ¼¼·Î·Î ±æÂßÇϱ⠶§¹®¿¡ °¡·Î·Î °Å¸®¸¦ ´õ ¶ç¿ö¾ß º¸±â¿¡ ÁÁ´Ù. ÁÂÇ¥°ª¿¡ +2¸¦ ÇØ ÁÖ´Â ÀÌÀ¯´Â Á»ó´ÜÀÌ ¾Æ´Ñ Ä­ÀÇ Áß¾Ó¿¡ ¼ýÀÚ¸¦ ¹èÄ¡Çϱâ À§Çؼ­ÀÌ´Ù. ÀÌ·± Ãâ·Â ÁÂÇ¥ °è»êÀº ¾Õ¼­ ±¸±¸´Ü ½Ç½À¿¡¼­µµ ÇØ º» ¹Ù°¡ ÀÖ´Ù.

°¢ Ä­ÀÇ »óÅ´ ´ÙÀ½ ¼Â Áß ÇϳªÀε¥ St ¸â¹ö°ªÀ» º¸¸é ¾î¶² »óÅÂÀÎÁö ½±°Ô ¾Ë ¼ö ÀÖ´Ù. if ¹®À¸·Î °¢ °æ¿ìÀÇ Á¶°ÇÀ» ÆÇ´ÜÇÏ¿© ÀûÀýÇÑ Ãâ·ÂÀ» ÇÏ¸é µÈ´Ù.

 

¨ç arCell ¹è¿­ÀÇ St ¸â¹ö°¡ FLIPÀ̸é ÀÌ Ä­Àº ÀÌ¹Ì »ç¿ëÀÚ°¡ ã¾Æ ³õÀº »óÅÂÀ̹ǷΠNum¿¡ ±â¾ïµÇ¾î ÀÖ´Â ¼ýÀÚ¸¦ º¸¿©ÁØ´Ù. Àӽ÷ΠÀá½Ã µÚÁý¾îÁ® ÀÖ´Â Ä­°ú ±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ¼ýÀÚ ¹Ù±ù¿¡ [ ] °ýÈ£¸¦ Ãâ·ÂÇϴµ¥ À̶§ Ãâ·Â ÁÂÇ¥¸¦ ¿ÞÂÊÀ¸·Î ÇÑÄ­ ¿Å°Ü¾ß ¾Æ·¡ À§ ¼ýÀÚ°¡ ¶È¹Ù·Î Á¤·ÄµÉ °ÍÀÌ´Ù. bHint Àμö°¡ TRUEÀÎ °æ¿ì´Â ¸ðµç Ä­ÀÌ ÀÌ »óÅÂÀÎ °ÍÀ¸·Î Ãë±ÞÇÏ¿© ¼ýÀÚ¸¦ ÀüºÎ ´Ù º¸¿©ÁØ´Ù.

¨è St ¸â¹ö°¡ TEMPFLIPÀÌ¸é »ç¿ëÀÚ°¡ È®ÀÎÀ» À§ÇØ Àá½Ã ¿¬ Ä­ÀÌ´Ù. Àӽ÷Π¿­¸°Ä­Àº NumÀÇ ¼ýÀÚ°ªÀ» Ãâ·ÂÇÏ¿© È®ÀνÃÄÑ ÁÖµÇ »ç¿ëÀÚ°¡ ¿ÏÀüÈ÷ ãÀº ¼ýÀÚ¿Í´Â ´Ù¸¥ »óÅÂÀ̹ǷΠ[ ] °ýÈ£¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.

¨é ¾Õ¿¡¼­ StÀÇ µÎ ¸â¹ö¸¦ ó¸®ÇßÀ¸¹Ç·Î ³²Àº °æ¿ì´ÂSt ¸â¹ö°¡ HIDDENÀÎ °æ¿ì¹Û¿¡ ¾ø´Ù. ÀÌ Ä­Àº ¾ÆÁ÷ ãÁöµµ ¸øÇß°í È®ÀÎÀ» À§ÇØ ¿­¸° Ä­µµ ¾Æ´Ï´Ù. À̶§´Â ¼ýÀÚ ´ë½Å ?¸¸ Ãâ·ÂÇÑ´Ù.

 

16°³ÀÇ Ä­¿¡ ´ëÇØ ÀÌÁß ·çÇÁ¸¦ µ¹¸é¼­ °¢ Ä­ÀÇ »óŸ¦ Á¶»çÇÏ¿© Ãâ·ÂÇÏ¸é °ÔÀÓÆÇ Ãâ·ÂÀÌ ¿Ï·áµÈ´Ù. °ÔÀÓÆÇ ¿À¸¥ÂÊ¿¡´Â ÇÁ·Î±×·¥ ¼Ò°³, °£´ÜÇÑ »ç¿ë¹ý, ½Ãµµ ȸ¼ö, ³²Àº ȸ¼ö µîÀ» Ãâ·ÂÇÑ´Ù. gotoxy·Î Àû´çÇÑ À§Ä¡·Î Ä¿¼­¸¦ ¿Å±ä ÈÄ printf·Î ¹®ÀÚ¿­°ú º¯¼ö°ª¸¸ Ãâ·ÂÇÏ¸é µÈ´Ù. ¾ÆÁÖ ´Ü¼øÇÑ Ãâ·Â¹®Ã³·³ º¸ÀÌÁö¸¸ ¿©±â¿¡µµ Æ®¸¯ÀÌ ¼û¾î ÀÖ´Ù.

Á¦ÀÏ ¸¶Áö¸· Ãâ·Â¹®ÀÇ ¹®ÀÚ¿­À» º¸¸é %d ´ÙÀ½¿¡ °ø¹éÀÌ Çϳª ´õ Æ÷ÇԵǾî ÀÖ´Â °ÍÀ» º¼ ¼ö Àִµ¥ ÀÌ °ø¹éÀÇ ¿ªÇÒÀº ¾ÆÁÖ Å©´Ù. ÀÌ Ãâ·Â¹®Àº ¾ÆÁ÷ ãÁö ¸øÇÑ Ä­ÀÇ °³¼ö¸¦ Ãâ·ÂÇϴµ¥ °ÔÀÓÀÌ ÁøÇàµÇ¸é ÀÌ °ªÀº °¨¼ÒÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÀÌ °ªÀÌ 10ÀÎ »óÅ¿¡¼­ ÇÑ ½ÖÀÇ ¼ýÀÚ¸¦ ´õ ãÀ¸¸é 8ÀÌ µÉ °ÍÀÌ´Ù. À̶§ ¿ø·¡ Ãâ·ÂµÇ¾î ÀÖ´ø 10ÀÌ ´Ù Áö¿öÁöÁö ¾Ê°í µÚÂÊÀÇ 0ÀÌ ³²¾Æ ÀÖ°Ô µÇ¹Ç·Î 8ÀÌ 80ó·³ º¸ÀÌ°Ô µÈ´Ù.

³²Àº °³¼ö°¡ µÎ ÀÚ¸® ¼ýÀÚ¿¡¼­ ÇÑ ÀÚ¸® ¼ýÀÚ·Î °¨¼ÒÇϸé Àüü Ãâ·Â ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ÁÙ¾î µé°Ô µÇ¹Ç·Î ¿ø·¡ Ãâ·ÂµÇ¾î ÀÖ´ø ¹®ÀÚ¿­À» ¿ÏÀüÈ÷ µ¤¾î ¾²Áö ¸øÇϸç ÀÌ °æ¿ì ºÒÇÊ¿äÇÑ ÀÜ»óÀÌ ³²´Â °ÍÀÌ´Ù. ±×·¡¼­ Ãâ·Â ¹®ÀÚ¿­ ³¡¿¡ °ø¹éÀ» Çϳª ´õ µÎ¾î Àüü ¹®ÀÚ¿­ÀÇ ±æÀÌ°¡ ª¾ÆÁö´õ¶óµµ µÚÂÊ¿¡ ³²¾ÆÀÖ´Â ¹®ÀÚµéÀ» Áö¿ìµµ·Ï Çß´Ù. µÚÂÊ¿¡ ¿©ºÐÀÇ °ø¹éÀ» Ãâ·ÂÇÏ´Â ´ë½Å printfÀÇ Á¤¼ö Ãâ·Â ¼­½ÄÀ» %2d·Î ÁöÁ¤ÇÏ¿© °­Á¦·Î 2Ä­À» Â÷ÁöÇϵµ·Ï ÇÏ´Â ¹æ¹ýµµ ¾µ¸¸ÇÏ´Ù.

±×·¸´Ù¸é ´Ù¸¥ Ãâ·Â¹®µéÀº ¾î¶²Áö º¸ÀÚ. °ÔÀÓ À̸§À̳ª »ç¿ë¹ýÀº »ó¼ö ¹®ÀÚ¿­ÀÌ¸ç ±æÀÌ°¡ Ç×»ó ÀÏÁ¤ÇϹǷΠ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. ½Ãµµ ȸ¼ö¿¡ ´ëÇÑ Ãâ·Â¹®Àº count º¯¼öÀÇ °ªÀ» Ãâ·ÂÇϴµ¥ ÀÌ °ªÀº ¹«Á¶°Ç Áõ°¡ÇϹǷΠ»õ·Î Ãâ·ÂµÇ´Â ¹®ÀÚ¿­ÀÌ ÀÌÀü ¹®ÀÚ¿­º¸´Ù ªÀº °æ¿ì°¡ ¾ø´Ù. °ÔÀÓÆÇÀÇ ¼ýÀÚµéÀº Àӽ÷Π¿­¸± ¶§ ?°¡ 1~8±îÁöÀÇ ¼ýÀÚ Áß Çϳª·Î º¯Çϴµ¥ ±æÀÌ°¡ °°À¸¹Ç·Î ¿ª½Ã ¹®Á¦µÇÁö ¾Ê´Â´Ù.

»ç¿ëÀÚ°¡ ¼ýÀÚ¸¦ ã¾ÒÀ» ¶§´Â ÇÑ ÀÚ¸®ÀÇ ¼ýÀÚ°¡ [ ] °ýÈ£·Î ½Î¿© ¼¼ ÀÚ¸®°¡ µÈ´Ù. ¿¹¸¦ µé¾î 3ÀÌ [3]ÀÌ µÇ´Âµ¥ ±æÀÌ°¡ ´õ ±æ¾îÁö¹Ç·Î ¿ÏÀüÈ÷ µ¤¾î ¾µ ¼ö ÀÖ´Ù. ÀÌ¹Ì Ã£Àº ¼ýÀÚ°¡ Ãë¼ÒµÇ´Â °æ¿ì´Â ¾øÀ¸¹Ç·Î ºÒÇÊ¿äÇÑ ¹®ÀÚ¿­ÀÌ ³²¾Æ ÀÖÀ» À§ÇèÀÌ ÀüÇô ¾ø´Ù°í ÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­ ³²Àº °³¼ö Ãâ·Â¹®¸¸ µÚ¿¡ °ø¹éÀ» Çϳª ´õ °¡Áö°í ÀÖÀ¸¸é µÈ´Ù.

DrawScreen ÇÔ¼ö´Â clrscr ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾ÊÀ¸¸ç Ç×»ó ÀÌÀü Ãâ·ÂÀ» ¿ÏÀüÈ÷ µ¤¾î ¾²µµ·Ï µÇ¾î ÀÖ´Ù. ¸Å¹ø clrscr ÇÔ¼ö¸¦ È£ÃâÇÏ¿© È­¸éÀ» ±ò²ûÇÏ°Ô Áö¿î ÈÄ ´Ù½Ã Ãâ·ÂÇϵµ·Ï Çϸé ÀÜ»óÀÌ ³²À» ¿°·Áµµ ¾ø°í ÅؽºÆ® ȯ°æÀ̹ǷΠ¼Óµµ°¡ ´À·ÁÁö´Â °ÍÀ» °ÆÁ¤ÇÒ ÇÊ¿äµµ ¾ø´Ù. ±×·¯³ª Å°¸¦ ÇÑ ¹ø ´©¸¦ ¶§¸¶´Ù È­¸éÀ» Áö¿ì¸é ±ô¹Ú°Å¸²ÀÌ ¹ß»ýÇÏ¿© º¸±â¿¡ ÁÁÁö ¾Ê´Ù. ±×·¡¼­ È­¸éÀ» ÃÖ´ëÇÑ ±ò²ûÇÏ°Ô À¯ÁöÇϱâ À§ÇØ clrscr È£ÃâÀ» ÀÚÀçÇßÀ¸¸ç ±×·¯´Ù º¸´Ï ³²Àº °³¼ö Ãâ·Â ¹® ³¡¿¡ °ø¹éÀÌ ÇÊ¿äÇØÁø °ÍÀÌ´Ù.

ÀÌ °ÔÀÓÀÌ È­¸éÀ» ¿ÏÀüÈ÷ Áö¿ì´Â °æ¿ì´Â µü ÇÑ ¹ø¹Û¿¡ ¾ø´Ù. InitGame¿¡¼­ 2ÃÊ°£ ÈùÆ®¸¦ ÁÖ°í ³­ ´ÙÀ½¿¡´Â È­¸éÀ» Áö¿ì´Âµ¥ ÀÌ ¶§´Â "[¼ýÀÚ]"°¡ "¼ýÀÚ"·Î ±æÀÌ°¡ ª¾ÆÁö±â ¶§¹®¿¡ µ¤¾î¾²±â¸¸ Çϸé [ ] °ýÈ£ÀÇ ÀÜ»óÀÌ ³²À» °ÍÀÌ´Ù. ±×·¡¼­ InitGame ÇÔ¼öÀÇ ³¡¿¡¼­ ÈùÆ®¸¦ º¸¿©ÁÖ°í ³­ ´ÙÀ½¿¡ clrscr ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀÌ´Ù. ²À ÇÊ¿äÇÑ °æ¿ì¸¸ Áö¿ì±â¸¦ ÇÏ°í ±× ¿ÜÀÇ °æ¿ì¿¡´Â °¡±ÞÀû µ¤¾î¾¸À¸·Î½á ±ô¹ÚÀÓÀ» ÁÙ¿´À¸¸ç ÀÌ·¸°Ô Çϸé ÇÁ·Î±×·¥ÀÇ Ç°ÁúÀÌ Çâ»óµÈ´Ù.

DrawScreen ÇÔ¼ö´Â arCell ¹è¿­¿¡ ÀúÀåµÈ ¼ýÀÚ¿Í »óÅ Á¤º¸, Àμö·Î Àü´ÞµÈ bHint°ª¿¡ µû¶ó È­¸éÀ» ±×¸®´Â ÀÛ¾÷À» ºÐ´ãÇÏ°í ÀÖ´Ù. ÀÌ ÇÔ¼ö¸¸ È£ÃâÇϸé ÇöÀç »óŸ¦ È­¸é¿¡ Á¤È®ÇÏ°Ô Ãâ·ÂÇÑ´Ù. main¿¡¼­´Â °ÔÀÓÀ» ½ÃÀÛÇÒ ¶§ InitGame ÇÔ¼ö¸¦ È£ÃâÇÏ°í °ÔÀÓÆÇ¿¡ Á¶±ÝÀÌ¶óµµ º¯È­°¡ ÀÖÀ» ¶§¸¶´Ù DrawScreen ÇÔ¼ö¸¸ ºÎ¸£¸é µÈ´Ù. mainÀº °ÔÀÓ ÃʱâÈ­³ª È­¸é Ãâ·ÂÀ» ÀüÇô ½Å°æ¾µ ÇÊ¿ä¾øÀÌ ¿À·ÎÁö »ç¿ëÀÚÀÇ Å°ÀÔ·ÂÀ» ¹Þ¾Æ Á¤ÇØÁø ±ÔÄ¢´ë·Î arCell ¹è¿­¸¸ °ü¸®ÇÏ¸é µÇ´Â °ÍÀÌ´Ù. ÀÌ¿Ü¿¡ arCell ¹è¿­¿¡¼­ Á¤º¸¸¦ Á¶»çÇÏ´Â GetTempFlip, GetRemain ÇÔ¼ö°¡ ÀÖ´Ù.

°íÀÛ ´Ù¼¸ °³ÀÇ ÇÔ¼ö·Î ÀÌ·ç¾îÁø ÀÛÀº ÇÁ·Î±×·¥ÀÌÁö¸¸ ÇÔ¼ö°£ÀÇ ÀÛ¾÷ ºÐ´ãÀÌ ¾ó¸¶³ª Àß µÇ¾î Àִ°¡? ´©°¡ ¸¸µé¾ú´ÂÁö ¸ð¸£°ÚÁö¸¸ °¨ÅºÀ» ±ÝÇÒ ¼ö°¡ ¾ø´Ù. ÀÌ·± °É º¸°í "ÇÁ·Î±×·¥ÀÌ ±¸Á¶ÀûÀÌ´Ù" ¶ó°í Ç¥ÇöÇÏ¸ç ±¸Á¶ÀÇ Çٽɿ¡´Â ÇÔ¼ö°¡ ÀÖ´Ù. ¿Ö ÇÔ¼ö¸¦ ÇÁ·Î±×·¥ÀÇ ºÎÇ°À̶ó°í ÇÏ´ÂÁö ÀÌÇØ°¡ °¥ °ÍÀÌ´Ù. main ÇÔ¼ö¿¡¼­ °ø¹é ÀÔ·ÂÀ» ó¸®ÇÏ´Â ºÎºÐµµ ProcessSpaceKey µîÀÇ À̸§À¸·Î ºÐ¸®ÇÏ¸é ´õ¿í ´õ ÁÁÀº ±¸Á¶¸¦ ¸¸µé ¼ö ÀÖ´Ù.