14-4-¸¶.main ÇÔ¼ö

±×·³ ÀÌÁ¦ ¸¶Áö¸· ³²Àº °¡Àå Áß¿äÇÑ ÇÔ¼ö mainÀ» ºÐ¼®ÇØ º¸ÀÚ. InitGame, DrawScreen ÇÔ¼ö¿¡¼­ ¸¹Àº ÀÏÀ» ºÐ´ãÇÏ°í Àֱ⠶§¹®¿¡ Á¤ÀÛ main ÇÔ¼ö´Â µ¢Ä¡¸¸ ÄÇÁö ¸¹Àº ÀÏÀ» ÇÏÁö ¾Ê´Â´Ù. ¿ÏÀüÇÑ ³­¼ö »ý¼ºÀ» À§ÇØ ³­¼ö ·çƾÀ» ÃʱâÈ­ÇÏ°í InitGame ÇÔ¼ö¸¦ È£ÃâÇÏ¿© °ÔÀÓÆÇÀ» ¸¸µç´Ù. ±×¸®°í °ð¹Ù·Î for ¹«ÇÑ ·çÇÁ·Î µé¾î°¡¼­ °ÔÀÓÀ» ¹«ÇÑÈ÷ ¹Ýº¹ÇÑ´Ù.

¸Å ·çÇÁ´Â »ç¿ëÀÚ°¡ Å°¸¦ ´©¸¦ ¶§¸¶´Ù ÇÑ ¹ø¾¿ ½ÇÇàµÇ´Âµ¥ Esc¸¦ ´­·¯ °ÔÀÓÀ» Á¾·áÇÒ ¶§±îÁö ¹Ýº¹µÈ´Ù. ¾Ö´Ï¸ÞÀ̼ÇÀ̳ª ¿òÁ÷ÀÌ´Â ¹°Ã¼°¡ ÀÖ´Â µ¿ÀûÀÎ °ÔÀÓÀÌ ¾Æ´Ï±â ¶§¹®¿¡ Å°¸¦ ´©¸£±â Àü¿¡´Â ¾Æ¹« Àϵµ ÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ±×·¡¼­ for ·çÇÁÀÇ ¼±µÎ¿¡¼­ gotoxy¸¦ È£ÃâÇÏ¿© Ä¿¼­¸¦ nx, ny À§Ä¡·Î À̵¿½ÃÅ°°í °ð¹Ù·Î getch ÇÔ¼ö¸¦ È£ÃâÇϴµ¥ ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚ°¡ Å°¸¦ ´©¸¦ ¶§±îÁö ¹«ÇÑÈ÷ ´ë±âÇϴ Ư¼ºÀÌ ÀÖ´Ù. »ç¿ëÀÚ°¡ Å°¸¦ ´©¸£¸é ÀÔ·ÂµÈ Å°°ª¿¡ µû¶ó ºÐ±â ó¸®ÇÑ´Ù. Ä¿¼­ À̵¿Å°¸¦ ´©¸£¸é nx, ny°ªÀ» ÀûÀýÈ÷ Á¶Á¤ÇÏ¿© Ä¿¼­¸¦ À̵¿½ÃÅ°´Âµ¥ ÇÑÂÊ º®¿¡ ´êÀ¸¸é ´õ ÀÌ»ó À̵¿ÇÏÁö ¾Êµµ·Ï ÇÏ¿´´Ù. EscÅ°¸¦ ´©¸£¸é exit ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù. ¿©±â±îÁö´Â ºÐ¼®ÀÌ ÇÊ¿ä¾øÀ» Á¤µµ·Î ½±´Ù.

mainÀÌ ÇÏ´Â °¡Àå Áß¿äÇÑ ÀÏÀº °ø¹é Å°¸¦ ´­·¶À» ¶§ °ÔÀÓÀ» ÁøÇà½ÃÅ°´Â °ÍÀÌ´Ù. ¸¸¾à °ø¹éÅ°¸¦ ´©¸¥ ÀÚ¸®°¡ ÀÌ¹Ì Ã£Àº ÀÚ¸®À̰ųª Àӽ÷Π¿¬ ÀÚ¸®ÀÌ¸é ¾Æ¹« Àϵµ ÀϾÁö ¾Ê´Â´Ù. ÀÌ¹Ì Ã£Àº ¼ýÀÚ¸¦ ¼±ÅÃÇϰųª ¿­¾î ³õÀº Ä­À» ´Ù½Ã ¼±ÅÃÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î À̶§´Â ¾Æ¹« Àϵµ ÇÏÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù. St°¡ HIDDENÀÎ, Áï ÇöÀç ?·Î Ç¥½ÃµÈ ÀÚ¸®¿¡¼­ °ø¹éÅ°¸¦ ´­·¶À» ¶§¸¸ À¯È¿ÇÑ ÀÔ·ÂÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.

?¸¦ ´©¸¥ °æ¿ì ÀÏ´Ü GetTempFlipÀ¸·Î Àӽ÷Π¿­·ÁÁø Ä­ÀÌ ÀÖ´ÂÁö, ÀÖ´Ù¸é ¾î´À À§Ä¡ÀÎÁö¸¦ tx, ty¿¡ Á¶»çÇÑ´Ù. ±×¸®°í Àӽ÷Π¿­·ÁÁø Ä­ÀÇ Á¸Àç À¯¹«¿Í ¼ýÀÚÀÇ ÀÏÄ¡ ¿©ºÎ¿¡  µû¶ó ´ÙÀ½ ¼¼ °¡Áö °æ¿ì¸¦ ó¸®ÇÑ´Ù.

 

¨ç tx°¡ -1ÀÏ ¶§ Áï, Àӽ÷Π¿¬ °÷ÀÌ Çϳªµµ ¾øÀ» ¶§´Â ÇöÀç À§Ä¡ÀÇ St¸¦ TEMPFLIPÀ¸·Î ¹Ù²Û´Ù. St ¸â¹öÀÇ °ªÀ» º¯°æÇØ ³õÀ¸¸é ¾Æ·¡ÂÊÀÇ DrawScreen ÇÔ¼ö¿¡ ÀÇÇØ ÀÌ À§Ä¡ÀÇ ¼ýÀÚ°¡ »ç¿ëÀÚ¿¡°Ô º¸ÀÌ°Ô µÈ´Ù. ¾ÆÁ÷ ãÀº °ÍÀº ¾Æ´Ï¸ç È®ÀÎÀ» À§ÇØ Àӽ÷ΠÀá½Ã ¿¬ Ä­À̹ǷΠ[ ] °ýÈ£¾øÀÌ ¼ýÀÚ¸¸ Ãâ·ÂÇÑ´Ù.

¨è Çϳª°¡ ¿­¸° »óÅ¿¡¼­ ´Ù½Ã Çϳª¸¦ ´õ ¿­¾úÀ» ¶§´Â ÀÏ´Ü µÎ ½ÖÀÇ ¼ýÀÚ¸¦ ã±â À§ÇÑ ½Ãµµ¸¦ ÇÑ °ÍÀ̹ǷΠcount¸¦ 1Áõ°¡½ÃŲ´Ù. ±×¸®°í µÎ À§Ä¡ÀÇ ¼ýÀÚ°¡ ÀÏÄ¡ÇÏ´ÂÁö °Ë»çÇϴµ¥ Àӽ÷Π¿­¸° Ä­ tx, ty À§Ä¡ÀÇ Num °ª°ú ¹æ±Ý °ø¹éÅ°·Î ¿­¾îº» nx, ny À§Ä¡ÀÇ Num°ªÀ» ºñ±³ÇÑ´Ù. µÎ À§Ä¡ÀÇ Num°ªÀÌ ¶È°°Àº ¼ýÀÚ¶ó¸é »ç¿ëÀÚ°¡ ¦À» Á¦´ë·Î ãÀº °ÍÀÌ´Ù. ¼û°ÜÁø ÇÑ ½ÖÀÇ ¼ýÀÚ¸¦ ã¾ÒÀ¸¹Ç·Î tx, ty ¿Í nx, nyÀÇ St¸¦ ¸ðµÎ FLIPÀ¸·Î ¹Ù²Ù¾î ã¾ÒÀ½À» ±â·ÏÇÑ´Ù. ÀÌ·¸°Ô °ªÀ» ¹Ù²Ù¾î ³õÀ¸¸é ´ÙÀ½ ¹ø DrawScreen ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ÀÌ µÎ ÀÚ¸®ÀÇ ¼ýÀÚ´Â [ ] °ýÈ£¸¦ ½Î¼­ º¸¿©ÁÙ °ÍÀÌ´Ù.

»ç¿ëÀÚ°¡ ¼ýÀÚ¸¦ ãÀ» ¶§¸¶´Ù °ÔÀÓ ³¡ Á¡°ËÀ» ÇØ¾ß Çϴµ¥ GetRemain()ÀÌ 0ÀÌ¸é ¼û°ÜÁø ¸ðµç ¼ýÀÚ¸¦ ´Ù ãÀº °ÍÀÌ°í À̶§´Â °ÔÀÓÀ» ´Ù½Ã ½ÃÀÛÇÏ¸é µÈ´Ù. ªÀº ÃàÇÏ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ°í 2ÃÊ°£ ´ë±âÇÑ ÈÄ InitGameÀ» È£ÃâÇÏ¿© °ÔÀÓÆÇÀ» »õ·Î ¸¸µé¾ú´Ù. InitGame ÇÔ¼ö°¡ Àü¿ªº¯¼öµéÀ» ¸ðµÎ ÃʱâÈ­ÇÏ°í arCell¿¡ »õ·Î¿î °ÔÀÓÆÇÀ» ¸¸µé¹Ç·Î ÀÌ »óÅ¿¡¼­ main ÇÔ¼öÀÇ for ·çÇÁ óÀ½À¸·Î µ¹¾Æ°¡±â¸¸ ÇÏ¸é »õ·Î¿î °ÔÀÓÀÌ °è¼Ó ÁøÇàµÈ´Ù.

¨é Çϳª°¡ ¿­¸° »óÅ¿¡¼­ Çϳª¸¦ ´õ ¿­¾ú´Âµ¥ µÎ Ä­ÀÇ ¼ýÀÚ°¡ ÀÏÄ¡ÇÏÁö ¾ÊÀº °æ¿ì´Â ÀÌ¹Ì ¿­·ÁÁø Ä­À» ´Ý°í °ÔÀÓÀ» °è¼Ó ÁøÇàÇÑ´Ù. ´Ü, »ç¿ëÀÚ¿¡°Ô µÎ ¹ø° ¿¬ ¼ýÀÚ°¡ ¹«¾ùÀ̾ú´ÂÁö´Â È®ÀνÃÄÑ ÁÙ ÇÊ¿ä°¡ ÀÖÀ¸¹Ç·Î nx, nyÀÇ Stµµ TEMPFLIPÀ¸·Î ¹Ù²Û ÈÄ DrawScreenÀ» È£ÃâÇÏ¿© 1ÃÊ°£ Àӽ÷Π¿­¸°Ä­À» º¸¿©ÁØ´Ù. ±×¸®°í tx, ty¿Í nx, nyÀÇ St¸¦ HIDDENÀ¸·Î ´Ù½Ã º¯°æÇØ ³õÀ¸¸é ¾Æ·¡ÂÊÀÇ DrawScreen¿¡¼­ Àӽ÷Π¿­¸°Ä­À» ´Ù½Ã ´ÝÀ» °ÍÀÌ´Ù.

 

°ø¹éÅ°¸¦ ´©¸¥ ¼¼ °æ¿ì ¸ðµÎ Àӽà ĭÀÌ ¿­¸®µç, ÀÏÄ¡µÈ ¼ýÀÚ¸¦ ã¾Ò°Ç, ¼ýÀÚ°¡ Ʋ·È°Ç ¸ðµç °æ¿ì¿¡ È­¸é¿¡ º¯È­°¡ »ý±â¹Ç·Î 󸮰¡ ³¡³­ ÈÄ¿¡ DrawScreen ÇÔ¼ö¸¦ È£ÃâÇؼ­ º¯°æµÈ È­¸éÀ» ´Ù½Ã ±×·Á¾ß ÇÑ´Ù. °ø¹éÅ°¸¦ ´­·¶À» ¶§ °ÔÀÓÀÌ ÁøÇàµÇ¹Ç·Î ÀÌ °ÔÀÓÀÇ ¸ðµç ±ÔÄ¢Àº main ÇÔ¼öÀÇ case ' ': ¾È¿¡ ÀÛ¼ºµÇ¾î ÀÖ´Ù°í ÇÒ ¼ö ÀÖ´Ù. º°·Î ±ä ÄÚµå´Â ¾Æ´ÏÁö¸¸ ±×·¡µµ ³ª¸§´ë·Î È帧ÀÌ Á¶±Ý º¹ÀâÇϹǷΠ¼ø¼­µµ¸¦ ±×·Á º¸µµ·Ï ÇÏÀÚ.

ÀÌ °ÔÀÓÀÇ °¡Àå ÇÙ½É ·çƾÀ̶ó°í ÇÒ ¼ö Àִµ¥ ÀÌ ·çƾ¸¸ ÀÌÇØÇÏ¸é °ÔÀÓ ÀüüÀÇ È帧À» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¸¾à Àß ÀÌÇØ°¡ µÇÁö ¾Ê´Â´Ù¸é µð¹ö°Å·Î ½ÇÁ¦ °ÔÀÓÀ» ½ÇÇàÇϸ鼭 º¯¼öµéÀÌ ¾î¶»°Ô °ü¸®µÇ´ÂÁö »ìÆ캸¸é µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

ÇÁ·Î±×·¥À̶õ Çö½ÇÀÇ ¹®Á¦¸¦ Ç®±â À§ÇØ ÀÛ¼ºÇϴµ¥ ±× ¹æ¹ýÀÌ ¹Ýµå½Ã ÇÑ°¡Áö »ÓÀ̶ó°í ÇÒ ¼ö´Â ¾ø´Ù. ¹®Á¦¿¡ Á¢±ÙÇÏ´Â ¹æ½Ä¿¡ µû¶ó ÇعýÀÌ ´Þ¶óÁú ¼ö Àֱ⠶§¹®¿¡ ¶È°°Àº ¹®Á¦¶óµµ »ç¶÷¿¡ µû¶ó ÇØ°á ¹æ¹ýÀÌ ´Ù¸¦ ¼ö ÀÖ´Ù. ¼³»ç °°Àº ¹æ¹ýÀ» »ç¿ëÇÑ´Ù ÇÏ´õ¶óµµ ¹æ¹ýÀ» ±¸ÇöÇÏ´Â ÀýÂ÷°¡ ´Ù¸¦ ¼ö ÀÖÀ¸¸ç ½ÉÁö¾î ÇÑ »ç¶÷ÀÌ °°Àº ¹®Á¦¸¦ µÎ ¹ø Ç®¾îµµ °á°ú°¡ ´Þ¶óÁö±âµµ ÇÑ´Ù.

ÀÌ ¿¹Á¦´Â ½Ç½ÀÀ» ¸ñÀûÀ¸·Î ÀÛ¼ºÇßÀ¸¸ç ·çÇÁ, ±¸Á¶Ã¼, ¹è¿­, ÇÔ¼ö µîÀ» Àû´çÈ÷ °ñ°í·ç ½á º¸´Âµ¥ ÁÖ¾ÈÁ¡À» µÎ¾ú´Ù. ±×·¯´Ù º¸´Ï ¼Óµµ³ª ÇÁ·Î±×·¥ÀÇ Å©±â°°Àº °ÍÀº °í·ÁÇÏÁö ¾Ê¾Ò´Ù. ÃÖ´ëÇÑ °£°áÇÏ°í È¿À²ÀûÀ¸·Î ÀÛ¼ºÇÏ´Â °ÍÀ» ¸ñÀûÀ¸·Î ÇÑ´Ù¸é ´ç¿¬È÷ °á°ú°¡ ´Þ¶óÁú ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½¿¡ ¿©·¯ºÐµéÀÌ Á» ´õ ½Ç·ÂÀÌ ´Ã¸é ÀÌ ¿¹Á¦ÀÇ ±¸Á¶¸¦ °íÃÄ º¸°í ´õ Àç¹ÌÀÖ´Â °ÔÀÓÀ» ¸¸µé¾î º¸±â ¹Ù¶õ´Ù. ÀÌ ¿¹Á¦ÀÇ ±¸Á¶ÀûÀÎ ¹®Á¦¸¦ ½º½º·Î ÆľÇÇÒ ¼ö ÀÖ´Ù¸é ´õ ¸¹Àº ±ÔÄ¢À» ±¸ÇöÇÏ¿© °ÔÀÓÀÇ ÁúÀ» ³ôÀÏ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½Àº ¸î °¡Áö °³ÀÛ ÈùÆ®µéÀÌ´Ù.

 

¨ç ÇöÀç Ä¿¼­°¡ ÇÑÂÊ º®¿¡ ´êÀ¸¸é ´õ ÀÌ»ó À̵¿ÇÏÁö ¾Êµµ·Ï µÇ¾î Àִµ¥ ÀÌ·± À̵¿ ¹æ½ÄÀ» ¹Ù²Ù¸é Á» ´õ °ÔÀÓÀ» ÇϱⰡ Æí¸®ÇÒ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î ¿À¸¥ÂÊ ³¡¿¡ ´êÀ¸¸é ´ÙÀ½ ÁÙ ¿ÞÂÊ ¾Æ·¡·Î ¿Å±â´Â ½ÄÀÌ´Ù.

¨è ¾ÆÁ÷ ãÁö ¸øÇÑ Ä­ÀÇ °³¼ö´Â GetRemain ÇÔ¼ö·Î ÀÏÀÏÀÌ Á¶»çÇϴµ¥ nRemain µîÀÇ Àü¿ªº¯¼ö¸¦ À¯ÁöÇϸé ÇÔ¼ö¸¦ µû·Î ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾ø´Ù. ´ë½Å main ÇÔ¼ö°¡ °ÔÀÓÆÇÀÇ º¯È­°¡ »ý±æ ¶§¸¶´Ù ÀÌ º¯¼ö¸¦ ÀûÀýÈ÷ Àß °ü¸®ÇØ¾ß ÇÑ´Ù. Àü¿ªº¯¼ö´Â °ªÀ» Àбâ ÆíÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖÁö¸¸ °ü¸®ÀÇ Çʿ伺ÀÌ ÀÖ°í °ªÀ» Á¶»çÇÏ´Â ÇÔ¼ö´Â Ç×»ó Á¤È®ÇÑ °ª(Live Data)À» Á¶»çÇÑ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù.

¨é °ÔÀÓÆÇÀÇ Å©±â°¡ 4*4·Î °íÁ¤µÇ¾î Àִµ¥ ³­À̵µ¿¡ µû¶ó °ÔÀÓÆÇÀÇ Å©±â¸¦ »ç¿ëÀÚ°¡ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Çϸé ÁÁÀ» °ÍÀÌ´Ù. ´Ü °ÔÀÓÀÇ ±ÔÄ¢»ó ÃÑ Ä­ÀÇ °³¼ö´Â ¹Ýµå½Ã ¦¼ö¿©¾ß ÇÑ´Ù.

¨ê ¼ýÀÚ µÎ °³¸¦ ÇϳªÀÇ ½ÖÀ¸·Î Ãë±ÞÇϴµ¥ ¼¼ °³¸¦ ÇϳªÀÇ ½ÖÀ¸·Î Ãë±ÞÇÏ¸é °ÔÀÓÀÌ ÈξÀ ´õ ¾î·Á¿öÁú °ÍÀÌ´Ù.

¨ë ÄÜ¼Ö ±â¹ÝÀ̱⠶§¹®¿¡ È­¸éÀÌ ±×´ÙÁö ¿¹»ÚÁö ¸øÇѵ¥ ±×·¡ÇÈ ±â¹ÝÀ¸·Î ÀÛ¼ºÇÏ¸é ¼ýÀÚ ´ë½Å ¿¹»Û ºñÆ®¸ÊÀ» ¾µ ¼öµµ ÀÖ´Ù. ¸¶¿ì½º·Î ÄÛÄÛ Âï¾î °¡¸é¼­ °ÔÀÓÀ» ÁøÇàÇÏ¸ç ´õ Àç¹ÌÀÖ´Ù.

 

 puzzle

°¡·Î 4Ä­, ¼¼·Î 4Ä­ÀÇ Æò¸é¿¡ 1~15±îÁöÀÇ ¼ýÀÚ¸¦ ¼¯¾î ³õ°í Ä¿¼­ À̵¿Å°·Î ÀÌ ¼ýÀÚµéÀ» À̵¿½ÃÄÑ ¼ø¼­´ë·Î ¸ÂÃß´Â ÆÛÁñ °ÔÀÓÀ» ¸¸µé¾î º¸¾Æ¶ó. Couple ¿¹Á¦¿Í ºñ½ÁÇÑ ÀÚ·á ±¸Á¶¸¦ »ç¿ëÇÏ¿© °ÔÀÓÀ» ¸¸µé ¼ö ÀÖ´Ù. ¹«ÀÛÀ§·Î ¼ýÀÚ¸¦ ¼¯¾î ¹ö¸®¸é ÆÛÁñÀ» ¸ÂÃâ ¼ö ¾ø´Â °æ¿ì°¡ ¹ß»ýÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÆÛÁñÀ» ¸ÂÃá »óÅ·ΠÃʱâÈ­ÇÑ ÈÄ ÄÄÇ»ÅÍ°¡ ¼¯µµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ´Ù.