14-2.½´ÆÃ °ÔÀÓ

14-1-°¡.ÆÄÀÌÅÍ

À̹ø¿¡ ¸¸µé¾î º¼ °ÔÀÓÀº ¾ÆÁÖ °£´ÜÇÑ ½´ÆÃ °ÔÀÓÀÌ´Ù. ÄÜ¼Ö È¯°æÀ̶ó ºñ·Ï ±×·¡ÇÈÀº Èæ¹éÀÌ°í »ç¿îµåµµ ¾øÁö¸¸ µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¹°Ã¼¸¦ ¿òÁ÷¿©¾ß ÇÏ´Â ³ª¸§´ë·Î ³­À̵µ°¡ ³ôÀº ¿¹Á¦¶ó°í ÇÒ ¼ö ÀÖ´Ù. ¾Õ Àý¿¡¼­ ½Ç½ÀÇß´ø Matrix ¿¹Á¦¸¦ ºÐ¼®Çß´Ù¸é ÀÌ ¿¹Á¦´Â ¾î·ÆÁö ¾Ê°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. °ÔÀÓÀÇ ÇÙ½ÉÀº µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¹°Ã¼¸¦ ´Ù¸¥ ¼Óµµ·Î ¿òÁ÷ÀÌ´Â °ÍÀε¥ ¾Õ¼­ ¸¸µé¾ú´ø ¿¹Á¦¿Í ºñ½ÁÇÑ ·çƾÀ» °øÀ¯Çϰí ÀÖ´Ù. Àüü ¼Ò½º´Â ´ÙÀ½°ú °°´Ù.

 

¿¹ Á¦ : Fighter

#include <Turboc.h>

 

#define ESC 27

#define MAXENEMY 10

#define MAXBALL 20

 

int fx;

int bx,by;

int Score;

struct tag_Enemy

{

     BOOL exist;

     int Type;

     int x,y;

     int Delta;

     int nFrame;

     int nStay;

} Enemy[MAXENEMY];

struct tag_Ball

{

     BOOL exist;

     int x,y;

     int nFrame;

     int nStay;

} Ball[MAXBALL];

char *arEnemy[]={" ;:^:; "," zZWZz ", " oO@Oo ", " <-=-> "};

 

BOOL IsKeyDown(int Key)

{

     return ((GetAsyncKeyState(Key) & 0x8000) != 0);

}

 

void main()

{

     int ch;

     int i,j;

     BOOL bFound;

     int count;

 

     randomize();

     clrscr();

     setcursortype(NOCURSOR);

     fx=40;

     bx=-1;

     Score=0;

 

     for (count=0;;count++) {

          // Á¿ì À̵¿ ó¸®

          if (count % 5 == 0) {

              if (IsKeyDown(VK_LEFT)) {

                   if (fx > 6) fx--;

              }

              if (IsKeyDown(VK_RIGHT)) {

                   if (fx < 72) fx++;

              }

          }

          // Ű ÀԷ ó¸®

          if (kbhit()) {

              ch=getch();

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

                   getch();

              } else {

                   switch (ch) {

                   case ' ':

                        if (bx == -1) {

                             bx=fx;

                             by=23;

                        }

                        break;

                   case ESC:

                        goto end;

                   }

              }

          }

 

          // Àû±º »ý¼º

          if (random(100) == 0) {

              for (i=0;i<MAXENEMY && Enemy[i].exist==TRUE;i++) {;}

              if (i != MAXENEMY) {

                   if (random(2)==1) {

                        Enemy[i].x=5;

                        Enemy[i].Delta=1;

                   } else {

                        Enemy[i].x=75;

                        Enemy[i].Delta=-1;

                   }

                   for (;;) {

                        Enemy[i].y=random(10)+1;

                        for (bFound=FALSE,j=0;j<MAXENEMY;j++) {

                             if (Enemy[j].exist==TRUE && Enemy[j].y == Enemy[i].y) {

                                 bFound=TRUE;

                                 break;

                             }

                        }

                        if (bFound==FALSE) {

                             break;

                        }

                   }

                   Enemy[i].nFrame=Enemy[i].nStay=random(6)+1;

                   Enemy[i].Type=random(sizeof(arEnemy)/sizeof(arEnemy[0]));

                   Enemy[i].exist=TRUE;

              }

          }

         

          // ¾Æ±º ÃÑ¾Ë À̵¿ ¹× Ãâ·Â

          if (bx != -1) {

              gotoxy(bx,by);putch(' ');

              if (by == 0) {

                   bx=-1;

              } else {

                   by--;

                   gotoxy(bx,by);putch('i');

              }

          }

 

          // Àû±º°ú ¾Æ±º ÃѾËÀÇ Ãæµ¹ ÆÇÁ¤

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

              if (Enemy[i].exist==FALSE) continue;

              if (Enemy[i].y==by && abs(Enemy[i].x-bx) <= 2) {

                   gotoxy(bx,by);putch(' ');

                   bx=-1;

                   Enemy[i].exist=FALSE;

                   gotoxy(Enemy[i].x-3,Enemy[i].y);

                   puts("       ");

                    Score+=7-Enemy[i].nFrame;

                   break;

              }

          }

 

          // Àû±º ÃÑ¾Ë À̵¿

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

              if (Ball[i].exist==FALSE) continue;

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

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

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

                   if (Ball[i].y >= 23) {

                        Ball[i].exist=FALSE;

                   } else {

                        Ball[i].y++;

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

                   }

              }

          }

 

          // Àû±º ÃѾ˰ú ¾Æ±ºÀÇ Ãæµ¹ ÆÇÁ¤

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

              if (Ball[i].exist==FALSE) continue;

              if (Ball[i].y==23 && abs(Ball[i].x-fx) <= 2) {

                   gotoxy(fx-3,21);puts("   .   ");

                   gotoxy(fx-3,22);puts(" .  . .");

                   gotoxy(fx-3,23);puts("..:V:..");

                   delay(2000);

                   goto end;

              }

          }

 

          // Àû±º À̵¿ ¹× Ãâ·Â

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

              if (Enemy[i].exist==FALSE) continue;

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

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

                   if (Enemy[i].x >= 76 || Enemy[i].x <= 4) {

                        Enemy[i].exist=FALSE;

                        gotoxy(Enemy[i].x-3,Enemy[i].y);

                        puts("       ");

                   } else {

                        Enemy[i].x += Enemy[i].Delta;

                        gotoxy(Enemy[i].x-3,Enemy[i].y);

                        puts(arEnemy[Enemy[i].Type]);

 

                        // ÃÑ¾Ë ¹ß»ç

                        if (random(40)==0) {

                             for (j=0;j<MAXBALL && Ball[j].exist==TRUE;j++) {;}

                             if (j != MAXBALL) {

                                 Ball[j].x=Enemy[i].x+2;

                                 Ball[j].y=Enemy[i].y+1;

                                 Ball[j].nFrame=Ball[j].nStay=Enemy[i].nFrame*6;

                                 Ball[j].exist=TRUE;

                             }

                        }

                   }

              }

          }

 

          // ÆÄÀÌÅÍ ¹× Á¡¼ö Ãâ·Â

          gotoxy(fx-3,23);

          puts(" <<A>> ");

          gotoxy(0,24);

          printf("Á¡¼ö=%d",Score);

 

          // ÃÊ´ç 100 ÇÁ·¹ÀÓ

          delay(10);

     }

end:

     setcursortype(NORMALCURSOR);

}

 

°ÔÀÓÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

ÀÌ ¿¹Á¦¿¡¼­ GetAsyncKeyState¶ó´Â ¸ø º¸´ø ÇÔ¼ö°¡ Çϳª µîÀåÇߴµ¥ ÀÌ ÇÔ¼ö´Â ŰÀÇ ÇöÀç »óŸ¦ Á¶»çÇÑ´Ù. ۰¡ ´­·¯Á³À» ¶§ ´­·¯Áø ŰÀÇ °ªÀº getch ÇÔ¼ö·Î Á¶»çÇÒ ¼ö ÀÖÁö¸¸ ƯÁ¤ ŰÀÇ »óŸ¦ ¿øÇÏ´Â ¶§¿¡ Á¶»çÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼­ ۸¦ ´©¸¥ »óÅ¿¡¼­ ´Ù¸¥ ۸¦ ´­·¶À» ¶§ ¸ÕÀú ´©¸¥ ۸¦ ´Ù½Ã ´©¸£±â Àü¿¡´Â ÀÌ Å°¿¡ ´ëÇÑ ÀÔ·ÂÀÌ °ËÃâµÇÁö ¾Ê´Â´Ù. °ÔÀÓ¿¡¼­´Â µÎ °³ ÀÌ»óÀÇ Å°¸¦ µ¿½Ã¿¡ ´­·¯¾ß ÇÏ´Â °æ¿ì°¡ ¸¹Àºµ¥ ¿¹¸¦ µé¾î À§ÂÊ À̵¿°ú ¿À¸¥ÂÊ À̵¿À» °°ÀÌ ´©¸£¸é ¿À¸¥ÂÊ À§·Î ºñ½ºµëÈ÷ ¹°Ã¼¸¦ ¿òÁ÷¿©¾ß Çϸç À̵¿ Áß¿¡µµ ÃѾËÀ» ¹ß»çÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

ÀÌ·± Çö»óÀº ¸Þ¸ðÀå¿¡¼­µµ ½±°Ô È®ÀÎÇÒ ¼ö Àִµ¥ A۸¦ ´©¸£¸é A°¡ ¹Ýº¹ÀûÀ¸·Î ÀԷµǴٰ¡ °ø¹éÀ» ´­·¶´Ù ¶¼¸é A۸¦ °è¼Ó ´©¸£°í ÀÖ´Ù°í ÇÏ´õ¶óµµ A ¹®ÀÚ´Â ´õ ÀÌ»ó ÀԷµÇÁö ¾Ê´Â´Ù. ¿Ö³ÄÇÏ¸é ¸Þ¸ðÀåÀº ۰¡ ´­·¯Áú ¶§ ¹®ÀÚ¸¦ ÀÔ·ÂÇÑ °ÍÀ¸·Î ÇØ¼®ÇÏÁö ۸¦ ´©¸£°í ÀÖ´Ù°í ÇØ¼­ °è¼Ó ÀÔ·ÂÇÏ´Â °ÍÀ¸·Î ÇØ¼®ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù. ±×·¡¼­ getch°°Àº ÀÔ·Â ÇÔ¼ö´Â °ÔÀÓ°°ÀÌ µ¿ÀÛÀÌ º¹ÀâÇÑ °æ¿ì¿¡´Â ÀûÇÕÇÏÁö ¾ÊÀ¸¸ç ½Ç½Ã°£À¸·Î ŰÀÇ »óŸ¦ Á¶»çÇÒ ¼ö ÀÖ´Â ÇÔ¼ö°¡ ÇÊ¿äÇÏ´Ù.

C ¶óÀ̺귯¸® ÇÔ¼öÁß¿¡´Â ÀÌ·± ÇÔ¼ö°¡ ¾øÀ¸¹Ç·Î(Åͺ¸ C¿¡´Â bioskey¶ó´Â ÇÔ¼ö°¡ ÀÖ´Ù) ¿î¿µÃ¼Á¦°¡ Á¦°øÇÏ´Â API ÇÔ¼ö¸¦ µ¿¿øÇØ¾ß Çϴµ¥ GetAsyncKeyState¶ó´Â ÇÔ¼ö°¡ ¹Ù·Î ÀÌ·± ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â Á¶»çÇÒ Å°¸¦ Àü´Þ¹Þ¾Æ ŰÀÇ ÇöÀç »óŸ¦ ¸®ÅÏÇϴµ¥ ۰¡ ´­·¯Á® ÀÖ´Ù¸é ÃÖ»óÀ§ ºñÆ®(MSB)¸¦ 1·Î ¸¸µé°í Caps Lock, Scroll Lock °°Àº Åä±Û۰¡ On »óÅÂÀ̸é ÃÖÇÏÀ§ ºñÆ®(LSB)¸¦ 1·Î ¸¸µç´Ù. ±×·¡¼­ ƯÁ¤ ŰÀÇ ´­·¯Áü »óŸ¦ Á¶»çÇÏ°í ½Í´Ù¸é ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ ÈÄ ÃÖ»óÀ§ ºñÆ®¸¸ »ìÆìº¸¸é µÈ´Ù.

À̶§ ÀÌ ÇÔ¼ö·Î Àü´ÞµÇ´Â ۰ªÀº ¿î¿µÃ¼Á¦°¡ Á¤ÀÇÇÏ´Â °¡»ó Ű ÄÚµå¶ó´Â °ÍÀε¥ getch°¡ Á¶»çÇÏ´Â ¹®ÀÚ ÄÚµå¿Íµµ ´Ù¸£¸ç ½ºÄµ ÄÚµå¿Íµµ ´Ù¸£´Ù. °¡»ó Ű ÄÚµå ¸ñ·Ï¿¡ ´ëÇØ¼­´Â µµ¿ò¸»À» ÂüÁ¶Ç쵂 °ÔÀÓ¿¡¼­ ÁÖ·Î »ç¿ëµÇ´Â Ä¿¼­ À̵¿Å°´Â VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN µîÀ¸·Î Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ÀÌ °ª¸¸ Àß ¾Ë¾Æ µÎ¸é ÀÏ´ÜÀº ºÒÆíÇÔÀÌ ¾øÀ» °ÍÀÌ´Ù. ¿¹Á¦¿¡¼­´Â Ű »óŸ¦ Á» ´õ ½±°Ô Á¶»çÇϱâ À§ÇØ GetAsyncKeyState ÇÔ¼ö¸¦ ·¡ÇÎÇÏ´Â ´ÙÀ½ ÇÔ¼ö¸¦ Á¤ÀÇÇϰí ÀÖ´Ù.

 

BOOL IsKeyDown(int Key)

{

     return ((GetAsyncKeyState(Key) & 0x8000) != 0);

}

 

Àμö·Î °¡»ó Ű Äڵ带 Àü´ÞÇϸé ÀÌ Å°ÀÇ ´­·¯Áü ¿©ºÎ¸¦ ÆÇ´ÜÇØ¼­ ÁøÀ§°ªÀ» ¸®ÅÏÇÑ´Ù. ÀÚ¼¼ÇÑ »çÇ×Àº À©µµ¿ìÁî ÇÁ·Î±×·¡¹Ö °ü·Ã ¼­Àû¿¡¼­ ã¾Æ º¸±â ¹Ù¶ó¸ç ÀÌ ÇÔ¼ö´Â ´çºÐ°£ »ç¿ë¸¸À» ¸ñÀûÀ¸·Î ÇÏÀÚ. ÀÌ ÇÔ¼ö ¿Ü¿¡ Fighter ¿¹Á¦¿¡¼­ ±×´ÙÁö »õ·Î¿î °ÍÀº ¾ø´Ù. ¸ÅÅ©·Î¿Í Àü¿ªº¯¼öºÎÅÍ ºÐ¼®ÇØ º¸ÀÚ. ÀÌ °ÔÀÓ¿¡´Â Àû±º, Àû±º ÃѾË, ¾Æ±º, ¾Æ±º ÃѾËÀ̶ó´Â 4°³ÀÇ µîÀå Àι°(?)ÀÌ Àִµ¥ ¸ðµç º¯¼öµéÀº ÀÌ ¹°Ã¼µé¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÑ´Ù.

fx´Â ÆÄÀÌÅÍÀÇ xÁÂÇ¥À̸ç bx, by´Â ¾Æ±º ÃѾËÀÇ ÁÂÇ¥, Score´Â ÇöÀç Á¡¼öÀÌ´Ù. MAXENEMY´Â ÃÖ´ë µîÀåÇÒ ¼ö ÀÖ´Â Àû±ºÀÇ °³¼öÀ̸ç MAXBALLÀº ÃÖ´ë Àû±º ÃѾËÀÇ °³¼öÀÌ´Ù. Enemy ¹è¿­°ú Ball ¹è¿­¿¡ Àû±º°ú Àû±º ÃѾ˵éÀÇ Á¤º¸°¡ ÀúÀåµÇ´Âµ¥ ÀÌ ¹è¿­ÀÇ Å©±â°¡ °¢ ´ë»óÀÇ ÃÖ´ë °³¼ö¸¸Å­À¸·Î ¼³Á¤µÇ¾î ÀÖ´Ù. µÎ ±¸Á¶Ã¼ÀÇ exist, nFrame, nStay ¸â¹ö´Â ÀÌ¹Ì ¾Õ ¿¹Á¦¿¡¼­ ºÐ¼®ÇØ º» °ÍµéÀÌ´Ù. Àû±ºÀº ¸ð¾ç¿¡ µû¶ó 4°¡Áö ŸÀÔÀ» °¡Áö¸ç °¢ ŸÀÔÀÇ ¸ð¾çÀº arEnemy ¹è¿­¿¡ Á¤ÀÇÇØ µÎ¾ú´Ù. x, y´Â Àû±ºÀÇ ÇöÀç ÁÂÇ¥À̸ç Delta´Â Àû±ºÀÌ À̵¿ÇÒ ¹æÇâÀ» ÁöÁ¤Çϴµ¥ 1 ¶Ç´Â -1ÀÇ °ªÀ¸·Î Á¤ÀǵȴÙ. ¸Å ·çÇÁ¸¦ µ¹ ¶§¸¶´Ù xÁÂÇ¥¿¡ Delta¸¦ ´õÇϴµ¥ Delta°¡ 1ÀÌ¸é ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î À̵¿Çϰí -1ÀÌ¸é ¹Ý´ë ¹æÇâÀ¸·Î À̵¿ÇÑ´Ù. Àû±º ÃÑ¾Ë ±¸Á¶Ã¼¿¡´Â ÁÂÇ¥¿¡ ÇØ´çÇÏ´Â x, y¸¸ Á¤ÀǵǾî ÀÖ´Ù.

ÀÌ ÇÁ·Î±×·¥Àº Àü¿ªº¯¼ö¿¡ ¸ðµç °³Ã¼ÀÇ Á¤º¸¸¦ ÀúÀåÇØ µÎ°í ¸ÞÀÎ ·çÇÁ´Â ÀÌ Á¤º¸¸¦ ¹ÙÅÁÀ¸·Î ¹°Ã¼¸¦ ¿òÁ÷À̰ųª Á¶ÀÛÇÑ´Ù. ¹°·Ð ¹°Ã¼ÀÇ »ý¼º, À̵¿, ¼Ò¸ê »ç°ÇÀÌ ¹ß»ýÇÒ ¶§ °ü·Ã Á¤º¸µµ Àü¿ªº¯¼ö¿¡ ±â·ÏµÈ´Ù. ¸ðµç Äڵ尡 main¿¡ ÀÛ¼ºµÇ¾î ÀÖÀ¸¹Ç·Î mainÀÇ ±¸Á¶ºÎÅÍ ºÐ¼®ÇØ º¸ÀÚ. Àüü¸¦ °¨½Î´Â for ·çÇÁ Çϳª¿Í »óÈ£ µ¶¸³ÀûÀÎ ·çƾµé·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

 

void main()

{

     ÃʱâÈ­ ÄÚµå

     for (count=0;;count++) {

          Ű ÀԷ ó¸®

          Àû±º »ý¼º

          ¾Æ±º ÃÑ¾Ë Ã³¸®

          ¾Æ±º ÃѾ˰ú Àû±ºÀÇ Ãæµ¹ ÆÇÁ¤

          Àû±º ÃÑ¾Ë À̵¿

          Àû±º ÃѾ˰ú ¾Æ±ºÀÇ Ãæµ¹ ÆÇÁ¤

          Àû±º À̵¿ ¹× ÃÑ¾Ë ¹ß»ç

          ÆÄÀÌÅÍ ¹× Á¡¼ö Ãâ·Â

          delay(10);

     }

     ³¡Ã³¸®

}

 

for ¹«ÇÑ ·çÇÁÀÇ ³¡¿¡ delay(10)ÀÌ ÀÖÀ¸¹Ç·Î ÀÌ ·çÇÁ´Â ÃÊ´ç 100¹ø ½ÇÇàµÈ´Ù. Áï ÃÊ´ç 100ÇÁ·¹ÀÓÀÇ ¼Óµµ·Î °ÔÀÓÀÌ ÁøÇàµÇ¸ç °¢ ¹°Ã¼´Â ÀÚ½ÅÀÇ ÇÁ·¹ÀÓ Áֱ⸦ °¡Áö°í ¸Å Áֱ⸶´Ù ÇÑ ¹ø¾¿ À̵¿ÇÑ´Ù. ÇÁ·¹ÀÓ ÁֱⰡ ªÀº ¹°Ã¼´Â »¡¸® À̵¿ÇÒ °ÍÀÌ°í ´À¸° ¹°Ã¼´Â »ó´ëÀûÀ¸·Î õõÈ÷ ¿òÁ÷ÀÏ °ÍÀÌ´Ù. Ű ÀԷ ó¸® ºÎºÐÀ» Á¦¿ÜÇÏ°í ³ª¸ÓÁö ¹°Ã¼ À̵¿ ·çƾÀ̳ª Ãæµ¹ ÆÇÁ¤ ·çƾÀº ´ëü·Î ºñ½ÁÇÑ ±¸Á¶¸¦ °¡Áö°í ÀÖ¾î ¸Å ÇÁ·¹ÀÓ¸¶´Ù ÀÚ±â Â÷·Ê°¡ µÈ ¹°Ã¼µéÀ» À̵¿½ÃŲ´Ù.

Ű ÀÔ·Â ·çƾÀº ¸Å 5 ÇÁ·¹ÀÓ¸¶´Ù ½ÇÇàµÇ´Âµ¥ ÃÊ´ç ÆÄÀÌÅͰ¡ 100Ä­¾¿ ¿òÁ÷ÀÌ¸é ³Ê¹« ºü¸£±â ¶§¹®¿¡ count º¯¼ö·Î ÀÔ·Â Áֱ⸦ Àû´çÈ÷ Á¶ÀýÇß´Ù. count´Â °è¼Ó Áõ°¡ÇÏ´Â °ªÀ̸ç ÀÌ °ªÀÌ 5ÀÇ ¹è¼öÀÏ ¶§¸¸ Ű ÀÔ·ÂÀ» ¹ÞÀ½À¸·Î½á ÆÄÀÌÅÍ´Â ÃÊ´ç ÃÖ´ë 20¹ø ¿òÁ÷ÀδÙ. IsKeyDown ÇÔ¼ö·Î ´­·¯Áø ۸¦ Á¶»çÇϰí Ű ¹æÇâÀ¸·Î ÆÄÀÌÅÍÀÇ xÁÂÇ¥¸¦ Á¶Á¤Çß´Ù. °ø¹é ۸¦ ´©¸£¸é ÃѾËÀÌ ¹ß»çµÇ´Âµ¥ ÃѾËÀÇ xÁÂÇ¥ÀÎ bx°¡ -1À̸é ÃѾËÀÌ ¹ß»çµÇÁö ¾Ê¾Ò´Ù´Â ¶æÀÌ´Ù. ÀÌ »óÅÂÀÏ ¶§ bx¿¡ ÆÄÀÌÅÍÀÇ xÁÂÇ¥ÀÎ fx¸¦ ´ëÀÔÇÏ¸é ÆÄÀÌÅͰ¡ ÀÖ´Â À§Ä¡¿¡¼­ ÃѾËÀÌ »ý¼ºµÉ °ÍÀ̸ç ÀÌÈÄ ÃÑ¾Ë À̵¿ ·çƾÀÌ ¸Å ÇÁ·¹ÀÓ¸¶´Ù ÃѾËÀ» À̵¿½ÃŰ°Ô µÈ´Ù.

ÀÌ °ÔÀÓ¿¡¼­ ¸ðµç ¹°Ã¼ÀÇ ¿òÁ÷ÀÓÀº ÀÌ·± ½ÄÀ¸·Î ÅëÁ¦µÈ´Ù. ¹°Ã¼¸¦ »ý¼ºÇÏ´Â ·çƾ¿¡¼­´Â ¹°Ã¼ÀÇ Á¸À縸 ¸¸µé°í À̵¿À̳ª Ãæµ¹ ÆÇÁ¤Àº º°µµÀÇ ·çƾ¿¡¼­ µû·Î °ü¸®ÇÏ´Â °ÍÀÌ´Ù. °ø¹é ۸¦ ´­·¶À» ¶§ bx°¡ -1ÀÌ ¾Æ´Ñ »óÅ·Π¸¸µé±â¸¸ Çϸé ÀÌ ÃѾËÀÌ »ç¶óÁö°Å³ª Àû±º°ú Ãæµ¹ÇÒ ¶§±îÁöÀÇ Ã³¸®´Â ¾Æ·¡ÂÊÀÇ ´Ù¸¥ ·çƾÀÌ Ã³¸®ÇÑ´Ù. ´Ü ÃѾËÀÌ ÀÌ¹Ì ¹ß»çµÇ¾î ÀÖÀ» ¶§´Â »õ·Î ÃѾËÀ» »ý¼ºÇÒ Çʿ䰡 ¾ø´Ù. Àû±ºÀ̳ª Àû±º ÃѾ˵µ ¸¶Âù°¡Áö·Î »ý¼ºÇÏ´Â ºÎºÐ°ú ó¸®ÇÏ´Â ºÎºÐÀÌ ºÐ¸®µÇ¾î ÀÖ´Ù. °¢ ·çƾÀº ¼­·Î µ¶¸³ÀûÀÎ µ¿ÀÛÀ» Ç쵂 Àü¿ªº¯¼ö¿Í ±¸Á¶Ã¼ ¹è¿­·Î ¼­·Î¿¡°Ô ½ÅÈ£¸¦ º¸³¾ »ÓÀÌ´Ù.

´ÙÀ½Àº Àû±ºÀ» »ý¼ºÇÏ´Â Äڵ带 º¸ÀÚ. 1/100ÀÇ È®·ü·Î Àû±ºÀ» »ý¼ºÇϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î È®·üÀûÀ¸·Î Àû±ºÀº ÃÊ´ç ÇÑ ¹ø¾¿ µîÀåÇÒ °ÍÀÌ´Ù. ¸ÕÀú Enemy ¹è¿­¿¡¼­ ºóÄ­À» ã°í ºóÄ­ÀÌ ÀÖÀ» ¶§¸¸ Àû±ºÀ» »õ·Î ¸¸µç´Ù. Àû±ºÀ» »õ·Î ¸¸µå´Â 󸮴 ±²ÀåÈ÷ ½¬¿îµ¥ Àý¹ÝÀÇ È®·ü·Î ÁÂ, ¿ì À̵¿ ¹æÇâÀ» ¼±ÅÃÇϰí x¿Í Delta¸¦ ÃʱâÈ­ÇÏ¸ç ¼Óµµ, ŸÀÔ µîµµ ³­¼ö·Î ÀûÀýÇÑ ¹üÀ§¿¡¼­ ¼±ÅÃÇÑ´Ù. y ÁÂÇ¥ÀÇ °æ¿ìµµ ¹°·Ð ³­¼ö·Î ¼±ÅÃÇ쵂 ´Ü °ÔÀÓ ±ÔÄ¢»ó ÇÑ ÁÙ¿¡ Àû±º µÑÀÌ ÀÖÀ» ¼ö ¾øÀ¸¹Ç·Î ÀÌ¹Ì ¸¸µé¾îÁ® ÀÖ´Â Àû±º°ú yÁÂÇ¥°¡ Áߺ¹µÇ´ÂÁö¸¦ °Ë»çÇÏ´Â Äڵ尡 Ãß°¡µÇ¾î ÀÖ´Ù. ÀÌ ·çƾ¿¡¼­ Àû±ºÀ» »ý¼ºÇϰí exist ¸â¹ö¸¦ TRUE·Î ¹Ù²ã ³õ±â¸¸ Çϸé À̵¿ 󸮳ª Ãæµ¹ ÆÇÁ¤µµ ¿ª½Ã ´Ù¸¥ ·çƾ¿¡¼­ µû·Î ´ã´çÇÑ´Ù.

¾Æ±º ÃÑ¾Ë À̵¿ ·çƾÀº bx°¡ -1ÀÌ ¾Æ´Ò ¶§ bx¸¦ 1°¨¼Ò½ÃÄÑ ÃѾËÀ» ÇÑ Ä­ À§·Î ¿Ã¸®µÇ ´Ü õÁ¤¿¡ ´ê¾ÒÀ¸¸é bx¸¦ -1·Î ¸¸µé¾î »ç¶óÁöµµ·Ï ÇÑ´Ù. Àû±º°ú ¾Æ±ºÀÇ Ãæµ¹ ÆÇÁ¤µµ ºñ±³Àû ½±´Ù. Á¸ÀçÇÏ´Â ¸ðµç Àû±º¿¡ ´ëÇØ ÃѾ˰ú yÁÂÇ¥°¡ ÀÏÄ¡Çϰí xÁÂÇ¥³¢¸®ÀÇ Â÷À̰¡ 2 ÀÌÇÏÀÏ ¶§ Ãæµ¹Çß´Ù°í ÆÇ´ÜÇÑ´Ù.

Àû±ºÀÇ ¸öü ÆøÀÌ 5Ä­À̹ǷΠÀÌ·¸°Ô ÆÇ´ÜÇϸé Á¤È®ÇÏ´Ù. ÀÏ´Ü Ãæµ¹µÇ¾ú´Ù°í ÆÇ´ÜµÇ¸é ÃѾ˰ú Àû±ºÀ» ¸ðµÎ Á¦°ÅÇϰí Á¡¼ö¸¦ Áõ°¡½ÃŲ´Ù. Àû±ºÀÇ ¼Óµµ°¡ ºü¸¦¼ö·Ï Á¡¼öµµ ³ô´Ù. ¹è¿­°ú Àü¿ªº¯¼ö¿¡ ÀÌ ¹°Ã¼µéÀÌ »ç¶óÁ³´Ù°í Ç¥½Ã¸¸ ÇØ ³õÀ¸¸é ÀÌÈÄ °ü·Ã ·çƾ¿¡¼­´Â ÀÌ ¹°Ã¼µé¿¡ ´õ ÀÌ»ó °ü½ÉÀ» º¸ÀÌÁö ¾ÊÀ» °ÍÀÌ´Ù.

Àû±ºÀÇ ÃѾËÀ̳ª Àû±ºÀ» À̵¿½ÃŰ´Â Äڵ嵵 ±¸Á¶´Â °ÅÀÇ ºñ½ÁÇÏ´Ù. ·çÇÁ¸¦ µ¹¸é¼­ Á¸ÀçÇÏ´Â ¹°Ã¼¿¡ ´ëÇØ ÇÁ·¹ÀÓ Ä«¿îÆ®¸¦ °ü¸®Çϸ鼭 Ä«¿îÆ®°¡ 0ÀÌ µÇ¾úÀ» ¶§ ÇÑ ¹ø¾¿ À̵¿½Ã۱⸸ ÇÏ¸é µÈ´Ù. Àû±ºµéÀº ÇÑ ¹ø À̵¿ÇÒ ¶§ 1/40ÀÇ È®·ü·Î ÃѾËÀ» ¹ß»çÇϵµ·Ï µÇ¾î ÀÖÀ¸¸ç Àû±º ÃѾ˰ú ÆÄÀÌÅͰ¡ Ãæµ¹ÇÏ¸é °ÔÀÓÀÌ Á¾·áµÈ´Ù.