¿©·¯ °³ÀÇ ¹°Ã¼°¡ µ¿½Ã¿¡ ¿òÁ÷ÀÌ´Â Matrix ¿¹Á¦ÀÇ ÇÙ½ÉÀº for ·çÇÁ¿¡ ÀÇÇÑ ½Ã°£ ºÐÇÒ, nFrame°ú nStay¿¡ ÀÇÇÑ ¹°Ã¼ÀÇ À̵¿ ÁÖ±â ÅëÁ¦ ¹æ¹ýÀÌ´Ù. óÀ½¿¡´Â Á¶±Ý ¾î·Á¿ö º¸ÀÌÁö¸¸ ÇÑ ¹ø ÆÐÅÏÀ» ÀÍÈ÷¸é ºñ½ÁÇÑ À¯ÇüÀÇ ¹®Á¦¸¦ Ç® ¶§ ³í¸®¸¦ Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾ÕÀÇ ¿¹Á¦´Â ¹°Ã¼º°·Î Áֱ⸦ Ä«¿îÆÃÇϱâ À§ÇØ °¢°¢ÀÌ nStay¶ó´Â ¸â¹ö¸¦ À¯ÁöÇϴµ¥ ÀÌ ¹æ¹ý ´ë½Å Àüü Ä«¿îÆ®¸¦ Çϳª¸¸ À¯ÁöÇϰí ÀÌ Ä«¿îÆ®·Î ¹°Ã¼ÀÇ À̵¿ ¼Óµµ¸¦ Á¶Á¤ÇÒ ¼öµµ ÀÖ´Ù. ¿¹Á¦¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ º¸ÀÚ.
struct Signal
{
BOOL exist; // ½ÅÈ£ÀÇ Á¸Àç ¿©ºÎ
char ch; // Ãâ·ÂÇÒ ¹®ÀÚ
int x,y; // ÇöÀç ÁÂÇ¥
int distance; // À̵¿ÇÒ °Å¸®
int nFrame; // ¼Óµµ
// int nStay; // ¼Óµµ¿¡ ´ëÇÑ Ä«¿îÆ®
};
void main()
{
int i;
int ch;
int freq=15;
int frame=200;
int count;
clrscr();
gotoxy(0,23);
printf("¸ÅÆ®¸¯½º Èä³»³»±â. »óÇÏ:¼Óµµ Áõ°¨, Á¿ì:ºóµµ Áõ°¨, ESC:Á¾·á");
randomize();
for (count=0;;count++) {
....
// »õ·Î¿î ½ÅÈ£ »ý¼º
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=random(15)+5;
break;
}
}
}
// ÁֱⰡ ´Ù µÈ ½ÅÈ£ À̵¿ ¹× Á¦°Å ó¸®
for (i=0;i<MAX;i++) {
if (S[i].exist == FALSE)
continue;
if (count % S[i].nFrame == 0) {
gotoxy(S[i].x,S[i].y);putch(' ');
....
Signal ±¸Á¶Ã¼ÀÇ nStay ¸â¹ö´Â »èÁ¦Çϰí nFrame¸¸ ³²±ä´Ù. ÀÌ·¸°Ô µÇ¸é ½ÅÈ£µéÀº ÀÚ½ÅÀÇ À̵¿ Áֱ⸦ ±â¾ï¸¸ ÇÒ »ÓÀÌ¸ç ½º½º·Î Ä«¿îÆ®¸¦ À¯ÁöÇÏÁö´Â ¾Ê´Â´Ù. ´ë½Å Àüü ¸ÞÀÎ ·çÇÁ°¡ ¸Å ÇÁ·¹ÀÓ¸¶´Ù 1¾¿ Áõ°¡ÇÏ´Â count¶ó´Â º¯¼ö¸¦ °¡Áö°í ÀÌ º¯¼ö°ª°ú nFrameÀÇ °ü°è¿¡¼ ½ÅÈ£ÀÇ À̵¿ ½ÃÁ¡À» °áÁ¤ÇÒ ¼ö ÀÖ´Ù. count°¡ nFrameÀ¸·Î ³ª´©¾î ¶³¾îÁú ¶§ ÀÌ ¹°Ã¼¸¦ ÇÑ ¹ø¾¿ ¿òÁ÷ÀÌ¸é °á±¹ °¢ ½ÅÈ£´Â ¸Å nFrame¸¶´Ù ¿òÁ÷ÀÌ°Ô µÉ °ÍÀÌ´Ù.
°¡·É nFrameÀÌ 5ÀÎ ½ÅÈ£´Â count°¡ 0, 5, 10, 15ÀÏ ¶§ ÇÑ ¹ø¾¿ À̵¿µÉ °ÍÀ̸ç nFrameÀÌ 8ÀÎ ½ÅÈ£´Â 0, 8, 16, 24ÀÏ ¶§ ÇÑ ¹ø¾¿ À̵¿ÇÏ°Ô µÈ´Ù. Áï, Àü¿ª Ä«¿îÆ®´Â Çϳª¸¸ ¾²°í °¢ ½ÅÈ£´Â ÀÚ½ÅÀÌ ÀÌ Ä«¿îÆ®ÀÇ ¸Å ¸î ¹øÂ°¸¶´Ù À̵¿ÇÒ °ÍÀΰ¡¸¸ ±â¾ïÇÏ´Â ¹æ½ÄÀÌ¸ç ¸ðµç ½ÅÈ£°¡ °³º°ÀûÀ¸·Î Ä«¿îÆ®¸¦ °¡Áö´Â ¹æ¹ý¿¡ ºñÇØ Á¶±Ý ´õ °£´ÜÇÑ´Ù. ÀÌ ¿¹Á¦ÀÇ °æ¿ì´Â ÀÌ·¸°Ô ¹Ù²ãµµ ºñ½ÁÇÑ µ¿ÀÛÀ» ÇÑ´Ù.
±×·¯³ª ÀÚ¼¼È÷ »ý°¢ÇØ º¸¸é Á¶±Ý ´Ù¸¥ ¸éÀÌ Àִµ¥ °¢ ½ÅÈ£°¡ Àü¿ª Ä«¿îÆ®¿¡ ÀÇÁ¸ÇϹǷΠÃÖÃÊ »ý¼ºµÈ ½ÅÈ£°¡ óÀ½ ¿òÁ÷ÀÏ ½ÃÁ¡ÀÌ ¼øÀüÈ÷ ¿î¿¡ µû¶ó °áÁ¤µÈ´Ù´Â ¹®Á¦°¡ ÀÖ´Ù. nFrameÀÌ 24ÀÎ ½ÅÈ£°¡ »ý¼ºµÇ´Â ½ÃÁ¡ÀÇ count°¡ 239¿´´Ù¸é ¹Ù·Î ´ÙÀ½ ÇÁ·¹ÀÓ¿¡¼ ÀÌ ½ÅÈ£°¡ óÀ½ ¿òÁ÷ÀÌ°Ô µÉ °ÍÀÌ´Ù. ¹°·Ð ÀÌÈĺÎÅÍ´Â ¸Å 24ÇÁ·¹ÀÓ¸¶´Ù ¿òÁ÷À̰ÚÁö¸¸ ù ÁֱⰡ ´Ù¼Ò ºÎÁ¤È®ÇØÁø´Ù. ¶ÇÇÑ °³º° ½ÅÈ£ÀÇ nStay¸¦ Á¶ÀÛÇÔÀ¸·Î½á ÀϽÃÀûÀ¸·Î ¼Óµµ¸¦ Áõ°¨½ÃŰ´Â ±â¹ýÀ» ¾µ ¼ö ¾øÀ» °ÍÀÌ´Ù.
ÀÌ µÎ ¹æ¹ý ¿Ü¿¡µµ º¹¼ö °³ÀÇ ¹°Ã¼¸¦ µ¿½Ã¿¡ ¿òÁ÷ÀÌ´Â ¿©·¯ °¡Áö ¹æ¹ýµéÀ» »ý°¢ÇØ º¼ ¼ö Àִµ¥ ¾î¶² ¹æ¹ýÀ» ¾µ °ÍÀΰ¡´Â ¿òÁ÷ÀÓÀÇ Á¤¹Ð¼º°ú °³º° ¹°Ã¼ÀÇ ÅëÁ¦ Çʿ伺 µî¿¡ µû¶ó °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿¹Á¦ÀÇ °æ¿ì´Â Àüü Ä«¿îÆ®¸¦ ¾²´Â ¹æ¹ýÀÌ º° ¹®Á¦°¡ ¾øÁö¸¸ ¹°Ã¼º°·Î Ä«¿îÆ®¸¦ µû·Î À¯ÁöÇÏ´Â ¹æ¹ýÀÌ Á» ´õ ÀϹÝÀûÀÌ°í ºÎ¸± ¼ö ÀÖ´Â ±â±³µµ ¸¹Àº ¼ÀÀÌ´Ù.