ÀÌ ÀåºÎÅÍ´Â 2ºÎÀ̸ç 1ºÎÀÇ ±âº» ¹®¹ýº¸´Ù ´õ º¹ÀâÇÑ ¹®¹ý°ú ½ÇÁúÀûÀÎ ÇÁ·Î±×·¡¹Ö ±â¹ýµéÀ» ´Ù·é´Ù. 1ºÎ¿¡¼­ ¿©·¯ºÐµéÀº º¯¼ö, ·çÇÁ, ÇÔ¼ö, ¹è¿­, Æ÷ÀÎÅÍ, ±¸Á¶Ã¼ µî C¾ð¾îÀÇ ±âº»ÀûÀÎ ¹®¹ýÀ» ¸ðµÎ °øºÎÇß´Ù. ±×·¯³ª ±ÛÀ» ¾È´Ù°í ÇØ¼­ ÀÛ¹®À» Àß ÇÏ´Â °ÍÀÌ ¾Æ´Ñ °Íó·³ ¹®¹ýÀ» ¾È´Ù°í ÇØ¼­ °ð¹Ù·Î ÇÁ·Î±×·¥À» © ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. ¹®¹ýÀº ¾îµð±îÁö³ª ¾ð¾îÀÇ ¿î¿ë ±ÔÄ¢À» ¹è¿ì´Â °Í»ÓÀ̸ç ÇÁ·Î±×·¡¹ÖÀº ÀûÀç Àû¼Ò¿¡ ¿øÇÏ´Â ¹®¹ýÀ» Àû¿ëÇÏ´Â º°µµÀÇ ´É·ÂÀÌ´Ù.

ÀÌ Àå¿¡¼­´Â ¹®¹ýÀ» ¼³¸íÇÏ´Â Å丷 ¿¹Á¦°¡ ¾Æ´Ñ ¿Ï¼ºµÈ ÇÁ·Î±×·¥À» ºÐ¼®ÇØ º»´Ù. ÀÌ °úÁ¤¿¡¼­ ÀÌ¹Ì ¹è¿î ¹®¹ýÀ» º¹½ÀÇÏ°í ½ÇÁ¦ ¹®Á¦¿¡ ¾î¶² ½ÄÀ¸·Î Àû¿ëµÇ´ÂÁö °æÇèÀ¸·Î ±¸Ã¼È­ÇÏ´Â ±âȸ¸¦ °¡Áú °ÍÀÌ´Ù. ¶ÇÇÑ Á¦°øµÇ´Â ¿¹Á¦¸¦ ´õ ÁÁÀº ±¸Á¶·Î ¹Ù²Ù°í ±â´ÉÀ» Á÷Á¢ Ãß°¡ÇØ º¸´Â °³ÀÛ ½Ç½ÀÀ» ÇØ º½À¸·Î½á ½º½º·Î ¾Ë°í¸®ÁòÀ» °³¹ßÇÒ ¼ö ÀÖ´Â ÀÀ¿ë·ÂÀ» Ű¿ì±â ¹Ù¶õ´Ù.

¹®ÇÐ Áö¸Á»ýµé¿¡°Ô ÁÁÀº ±ÛÀ» ÀÛ¼ºÇϱâ À§ÇÑ ¹æ¹ýÀ¸·Î ÈçÈ÷ »ï´Ù(ÒýÔÁ, ÒýíÂ, ÒýßÂÕá)¸¦ ±ÇÀ¯Çϴµ¥ ¸¹ÀÌ Àаí, ¸¹ÀÌ ¾²°í, ¸¹ÀÌ »ý°¢Ç϶ó´Â ¶æÀÌ´Ù. ÀÌ´Â ÇÁ·Î±×·¡¹Ö¿¡µµ ±×´ë·Î Àû¿ëµÇ´Âµ¥ ³²ÀÌ ¸¸µç ¼Ò½º¸¦ ¸¹ÀÌ ºÐ¼®ÇØ º¸°í, ´Ù¾çÇÑ ½ÀÀÛÀ» Á÷Á¢ ¸¸µé¾î º¼ °ÍÀ̸ç Ç×»ó ¾Ë°í¸®ÁòÀ» ±Ã¸®Ç϶ó´Â ¶æÀÌ´Ù. ÀÌ ÀåÀÌ ¸ñÇ¥ÇÏ´Â ¹Ù°¡ ¹Ù·Î ´Ùµ¶°ú ´ÙÀÛÀÌµÇ ´Ù»ó·®Àº µ¶ÀÚµéÀÌ Á÷Á¢ ¼º½ÇÈ÷ ¼öÇàÇÏ´Â ¼ö¹Û¿¡ ¾ø´Ù. ´Ùµ¶, ´ÙÀÛÀº ¼±»ý´ÔÀ̳ª ¼±¹è°¡ ¾ïÁö·Î¶óµµ ½ÃŰ°í °­Á¦ÇÒ ¼ö ÀÖÁö¸¸ ´Ù»ó·®Àº ½º½º·Î ³ë·ÂÇÏÁö ¾ÊÀ¸¸é ¸Ó¸®¼ÓÀ¸·Î ¿µÀÚ »ý°¢À» ÇÏ´ÂÁö, ö¼ö »ý°¢À» ÇÏ´ÂÁö ¾Ë ¼ö°¡ ¾ø´Ù. Å« ¿¹Á¦¸¦ º¼ ¶§´Â »ý°¢À» ¸¹ÀÌ ÇØ¾ß ±â¹ýµéÀ» Àû±ØÀûÀ¸·Î Èí¼öÇÒ ¼ö ÀÖ´Ù.

½Ç·Â Çâ»óÀ» À§Çؼ­´Â ½ÀÀÛÀ» ¸¹ÀÌ ¸¸µé¾î º¸¸é¼­ ½ÃÇàÂø¿À¸¦ °ÅÄ¡´Â °ÍÀÌ °¡Àå ÁÁÁö¸¸ ½Ã°£ ¼Ò¸ð°¡ ³Ê¹« ¸¹Àº °ÍÀÌ ´ÜÁ¡ÀÌ´Ù. ±×·¡¼­ ¿©±â¼­´Â ½Ã°£ Àý¾àÀ» À§ÇØ ÀÌ¹Ì ¸¸µé¾îÁø ¿Ï¼ºµÈ ¿¹Á¦¸¦ ºÐ¼®ÇØ º¸±â·Î Ç쵂 ÀÌ ÀåÀÇ ¿¹Á¦¸¦ °úÁ¦ÀÎµí »ý°¢Çϰí Á÷Á¢ ÀÌ·± ÇÁ·Î±×·¥À» ¸¸µé¾î¾ß ÇÑ´Ù¸é ¾î¶² ¹æ¹ýÀ» »ç¿ëÇÒ °ÍÀÎÁö¸¦ ¸ÕÀú »ý°¢ÇØ º¸µµ·Ï ÇÏÀÚ.

ÀÌ ÀåÀ» ¾Æ¹« »ý°¢¾øÀÌ ÀÐÀ¸¸é ±×¾ß¸»·Î ¾Æ¹« °Íµµ ¾òÀ» ¼ö ¾ø´Ù. ¹®¹ýÀÇ »ç¿ë¿¹¸¦ Àû±ØÀûÀ¸·Î ÀÍÈ÷°í Àß ¸ð¸£´Â ¹®¹ýÀº ¾ÕÂÊÀ¸·Î µ¹¾Æ°¡ º¹½ÀÇÏ°í ´õ ³ª¾Æ°¡ ±â´É Ãß°¡µµ ½ÃµµÇØ º¸µµ·Ï ÇÏÀÚ. "¾Æ! Àú·¸°Ô ÄÚµùÇß±¸³ª"¶ó°í ±¸°æ¸¸ ÇÏÁö ¸»°í °á°ú Äڵ尡 ³ª¿À±â Àü±îÁö °³¹ßÀÚÀÇ »ç°í È帧°ú °í³ú¸¦ ÆÄ¾ÇÇÏ·Á°í ¾Ö¾²±â ¹Ù¶õ´Ù. ´Ü, ÀÇ¿åÀûÀ¸·Î ÀÓÇÏ´Â °ÍÀº ÁÁÁö¸¸ ³Ê¹« ¿å½ÉÀ» ³»Áö´Â ¸»µµ·Ï ÇÏÀÚ. ¿©±â±îÁö °øºÎÇÑ ÈÄ ±×·²µíÇÑ ¿Ï¼ºÀÛÀ» ±âȹ, ¼³°èÇÏ´Â ´É·Â±îÁö °®Ãß±â´Â Çö½ÇÀûÀ¸·Î ¾î·Á¿ì¹Ç·Î ¿¹Á¦¸¦ ÀÌÇØÇÏ°í ±â¹ýÀ» Å͵æÇÏ´Â Á¤µµ·Î ¸¸Á·ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¼º±ÞÇÑ °á°ú¸¦ ¹Ù¶ó°í ¿å½ÉÀ» ³½´Ù¸é ½º½º·Î¿¡°Ô ½Ç¸Á¸¸ ÇÏ°Ô µÈ´Ù.

14-1.Matrix

14-1-°¡.Matrix ¿¹Á¦

ÀÌ ¿¹Á¦´Â ¿µÈ­ ¸ÅÆ®¸¯½ºÀÇ ·Î°í È­¸éÀ» Èä³»³»´Âµ¥ È­¸é¿¡ ¿©·¯ °¡Áö ½ÅÈ£µéÀÌ À§¿¡¼­ ¾Æ·¡·Î ÁÖ·ç·ç·è ²÷ÀÓ¾øÀÌ ³»·Á ¿À¸é¼­ »ç¶óÁø´Ù. ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.

 

¿¹ Á¦ : Matrix

#include <Turboc.h>

 

#define MAX 1024

#define LEFT 75

#define RIGHT 77

#define UP 72

#define DOWN 80

#define ESC 27

 

struct Signal

{

     BOOL exist;                // ½ÅÈ£ÀÇ Á¸Àç ¿©ºÎ

     char ch;                 // Ãâ·ÂÇÒ ¹®ÀÚ

     int x,y;                   // ÇöÀç ÁÂÇ¥

     int distance;           // À̵¿ÇÒ °Å¸®

     int nFrame;                 // ¼Óµµ

     int nStay;               // ¼Óµµ¿¡ ´ëÇÑ Ä«¿îÆ®

};

Signal S[MAX];

 

void main()

{

     int i;

     int ch;

     int freq=15;

     int frame=200;

 

     clrscr();

     gotoxy(0,23);

     printf("¸ÅÆ®¸¯½º Èä³»³»±â. »óÇÏ:¼Óµµ Áõ°¨, Á¿ì:ºóµµ Áõ°¨, ESC:Á¾·á");

     randomize();

     for (;;) {

          gotoxy(60,23);

          printf("¼Óµµ:%d, ºóµµ:%d    ",frame,freq);

 

          // Ű ÀԷ ó¸®

          if (kbhit()) {

              ch=getch();

              if (ch == 0xE0) {

                   ch=getch();

                   switch (ch) {

                   case UP:

                        frame=min(frame+10,1000);

                        break;

                   case DOWN:

                        frame=max(frame-10,10);

                        break;

                   case RIGHT:

                        freq=max(freq-1,1);

                        break;

                   case LEFT:

                        freq=min(freq+1,30);

                        break;

                   }

              } else {

                   if (ch == ESC) {

                        return;

                   }

              }

          }

 

          // »õ·Î¿î ½ÅÈ£ »ý¼º

          if (random(freq) == 0) {

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

                   if (S[i].exist == FALSE) {

                        S[i].exist=TRUE;

                        S[i].ch=random('Z'-'A'+1)+'A';

                        S[i].x=random(80);

                        S[i].y=0;

                        S[i].distance=random(14)+9;

                        S[i].nFrame=S[i].nStay=random(15)+5;

                        break;

                   }

              }

          }

 

          // ÁֱⰡ ´Ù µÈ ½ÅÈ£ À̵¿ ¹× Á¦°Å ó¸®

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

              if (S[i].exist == FALSE)

                   continue;

              if (--S[i].nStay == 0) {

                   S[i].nStay=S[i].nFrame;

                   gotoxy(S[i].x,S[i].y);putch(' ');

                   if (++S[i].y < S[i].distance) {

                        gotoxy(S[i].x,S[i].y);putch(S[i].ch);

                   } else {

                        S[i].exist=FALSE;

                   }

              }

          }

 

          delay(1000/frame);

     }

}

 

100ÁÙµµ µÇÁö ¾Ê´Â ªÀº ¿¹Á¦´Ù. µ¤¾î ³õ°í ½ÇÇàºÎÅÍ ÇØ º¸ÀÚ.

°á°ú´Â ¾ÆÁÖ ´Ü¼øÇÏÁö¸¸ ÀÌ ¿¹Á¦´Â Áö±Ý±îÁö ¸¸µé¾î ¿Ô´ø ¿¹Á¦µé°ú´Â ÁúÀûÀ¸·Î ´Ù¸¥ ¸éÀÌ ÀÖ´Ù. »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹ÞÀ» ¶§±îÁö °¡¸¸È÷ ´ë±âÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ²÷ÀÓ¾øÀÌ ¿òÁ÷ÀδÙ. ±ÛÀÚ Çϳª°¡ ¿òÁ÷ÀÌ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿©·¯ °³ÀÇ ±ÛÀÚµéÀÌ µ¿½Ã¿¡ ±×°Íµµ Á¦°¢±â ´Ù¸¥ ¼Óµµ·Î À̵¿ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·± µ¿ÀÛÀº ¿ì¸®°¡ ¾Ë°í ÀÖ´Â »ó½ÄÀûÀÎ ·çÇÁ¿Í´Â ´Ù¸£´Ù. ÇϳªÀÇ ·çÇÁ¾È¿¡¼­ ¹®ÀÚµéÀ» °°ÀÌ À̵¿½ÃŰ¸é ¸ðµç ¹®ÀÚµéÀÌ °°Àº ¼Óµµ·Î ¿òÁ÷ÀÏ °ÍÀÌ¸ç ´ÙÁß ·çÇÁ¸¦ ¾´´Ù¸é ÇÑ ±ÛÀÚ°¡ ¿ÏÀüÈ÷ ¿òÁ÷ÀÎ ÈÄ¿¡ ´ÙÀ½ ±ÛÀÚ°¡ ¿òÁ÷ÀÏ °ÍÀÌ´Ù. ´Ü¼øÇÑ ·çÇÁ¿¡ ºñÇØ ¹º°¡ ÁúÀûÀ¸·Î ´Ù¸¥ ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. ÀÌ·± ½ÄÀÇ ¿òÁ÷ÀÓÀº °ú¿¬ ¾î¶»°Ô ±¸ÇöÇÏ´ÂÁö ¸ÕÀú »ý°¢ÇØ º¸¾Æ¶ó. ´Ùµ¶, ´ÙÀÛµµ Áß¿äÇÏÁö¸¸ ´Ù»ó·®ÀÌ ¸ÕÀú µÇÁö ¾ÊÀ¸¸é È¿°ú°¡ ¶³¾îÁö¹Ç·Î ÃæºÐÇÑ °í¹ÎÀ» ÇÑ ÈÄ ¼Ò½º¸¦ º¸µµ·Ï ÇÏÀÚ.