´ÙÀ½ ¿¹Á¦´Â Ä¿¼ À̵¿Å°·Î ȸé Áß¾Ó¿¡ ÀÖ´Â #¹®ÀÚ¸¦ À̵¿½ÃŲ´Ù. »óÇÏÁ¿ì Ä¿¼ À̵¿Å°¸¦ ´©¸£¸é #¹®ÀÚ°¡ À̵¿ÇÏ¸ç ½ºÆäÀ̽ºÅ°´Â ȸéÀ» Áö¿ì°í Q¸¦ ´©¸£¸é ÇÁ·Î±×·¥ÀÌ Á¾·áµÈ´Ù. »ç¿ëÀÚ°¡ ŰÁ¶ÀÛÀ» ÅëÇØ Á÷Á¢ ÇÁ·Î±×·¥À» ¿òÁ÷¿© º¼ ¼ö ÀÖ´Â Àç¹ÌÀÖ´Â ¿¹Á¦ÀÌ´Ù.
|
¿¹ Á¦ : movesharp |
#include <Turboc.h>
void main()
{
int x,y;
int ch;
x=40;
y=10;
clrscr();
for(;;) {
gotoxy(x,y);
putch('#');
ch=getch();
if (ch == 0xE0 || ch == 0) {
ch=getch();
switch (ch) {
case 75:
x=x-1;
break;
case 77:
x=x+1;
break;
case 72:
y=y-1;
break;
case 80:
y=y+1;
break;
}
} else {
switch (ch) {
case ' ':
clrscr();
break;
case 'q':
case 'Q':
exit(0);
}
}
}
}
¿¹Á¦¸¦ ÀÔ·ÂÇÑ ÈÄ ½ÇÇàÇØ º¸ÀÚ. Ä¿¼Å°¸¦ ´©¸£°í ÀÖÀ¸¸é ´©¸¥ ŰÀÇ ¹æÇâÀ¸·Î #¹®ÀÚ°¡ ¿òÁ÷ÀÏ °ÍÀÌ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

¼¼ °³ÀÇ º¯¼ö¸¦ »ç¿ëÇϴµ¥ x, y´Â #ÀÇ ÇöÀç ÁÂÇ¥À̸ç (40,10)À¸·Î ÃʱâÈÇßÀ¸¹Ç·Î ÃÖÃÊ #Àº ȸéÀÇ Áß¾ÓÂë¿¡ Ãâ·ÂµÈ´Ù. ch´Â getch ÇÔ¼ö·Î ÀԷ¹ÞÀº Ű Äڵ尪À» °¡Áö´Âµ¥ ÀÌ °ª¿¡ µû¶ó #ÀÇ À̵¿ ¹æÇâÀÌ °áÁ¤µÈ´Ù. getch ÇÔ¼ö´Â A, B, 1, 2 °°Àº ¹®ÀÚ۰¡ ´·¯Á³À» ¶§ ¹®ÀÚ¸¦ ¹Ù·Î µ¹·Á ÁÖÁö¸¸ Ä¿¼ À̵¿Å°³ª Æã¼Ç۰°ÀÌ ¹®ÀÚ°¡ ÇÒ´çµÇÁö ¾ÊÀº È®ÀåŰ¿¡ ´ëÇØ¼´Â 0xE0 ¶Ç´Â 0ÀÇ Æ¯À̰ªÀ» ¸®ÅÏÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÀÌ ¶§´Â getch¸¦ ÇÑ ¹ø ´õ È£ÃâÇØ¾ß È®ÀåŰÀÇ Äڵ带 ±¸ÇÒ ¼ö ÀÖ´Ù. 0xE0, 0Áß ¾î¶² ƯÀ̰ªÀÌ ¸®ÅϵǴ°¡´Â Ű¿¡ µû¶ó ´Ù¸¥µ¥ ±»ÀÌ ±¸ºÐÇÒ ÇÊ¿ä¾øÀÌ µÑ Áß Çϳª°¡ ¸®ÅϵǸé getch¸¦ ÇÑ ¹ø ´õ È£ÃâÇÏ¿© È®Àå۰ªÀ» ¾òÀ¸¸é µÈ´Ù.
getch°¡ ¸®ÅÏÇÏ´Â 0xE0°ªÀº ÀϹÝÀûÀÎ ¹®ÀÚ°¡ ¾Æ´Ñ È®Àå۶ó´Â ƯÀ̰ªÀε¥ ÀÌ °ªÀ» ch·Î ÀԷ¹ޱâ À§Çؼ ch´Â ¹Ýµå½Ã intÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÑ´Ù. char ŸÀÔÀº 0xE0¶ó´Â °ªÀ» ÀúÀåÇÒ ¼ö ÀÖ´Â Å©±â¸¦ °¡ÁöÁö ¸øÇϱ⠶§¹®ÀÌ´Ù. Ä¿¼ À̵¿Å°´Â getch ÇÔ¼ö¸¦ µÎ ¹ø È£ÃâÇØ¼ ÀԷ¹޴µ¥ À̶§ getch ÇÔ¼ö°¡ Àд Ŀ¼ À̵¿Å°ÀÇ È®ÀåŰ ÄÚµå´Â ´ÙÀ½°ú °°´Ù. ch º¯¼ö¿¡ ÀúÀåµÈ ۰ªÀ» ÀÌ Å°ÄÚµåµé°ú ºñ±³ÇØ º¸¸é »ç¿ëÀÚ°¡ ¾î¶² ¹æÇâÀ¸·Î À̵¿ÇÏ°í ½ÍÀºÁö¸¦ ¾Ë ¼ö ÀÖ´Ù.

ÇÁ·Î±×·¥ Àüü´Â for ¹«ÇÑ·çÇÁ·Î ½Î¿©Á® ÀÖ¾î Q¸¦ ÀÔ·ÂÇÒ ¶§±îÁö °°Àº ·çƾÀ» °è¼Ó ¹Ýº¹ÇÑ´Ù. °¢ ·çÇÁ¿¡¼ ÇöÀç À§Ä¡ (x, y)¿¡ #¹®ÀÚ¸¦ Ãâ·ÂÇϸç Ű ÀÔ·ÂÀ» ¹Þ¾Æ ÀÌ Å°°ª¿¡ µû¶ó x, y º¯¼öÀÇ ÁÂÇ¥¸¦ Á¶Á¤ÇÑ´Ù. ¿ÞÂÊ À̵¿Å°ÀÎ 75¸¦ ´©¸£¸é x¸¦ 1 °¨¼Ò½ÃÄÑ #À» ÇÑÄ ¿ÞÂÊÀ¸·Î À̵¿½ÃŰ¸ç ¾Æ·¡ÂÊ À̵¿Å°ÀÎ 80À» ´©¸£¸é y¸¦ 1Áõ°¡½ÃÄÑ #ÀÌ ¾Æ·¡ÂÊÀ¸·Î À̵¿Çϵµ·Ï ÇÑ´Ù. Ä¿¼ À̵¿Å° ¿Ü¿¡ µÎ °³ÀÇ Å°¸¦ ´õ ó¸®Çϰí Àִµ¥ ½ºÆäÀ̽º ۸¦ ´©¸£¸é clrscr ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ȸéÀ» ±ò²ûÇÏ°Ô Áö¿ì¸ç Q Ű(¶Ç´Â qŰ)¸¦ ´©¸£¸é ÇÁ·Î±×·¥À» Á¾·áÇÑ´Ù.
ch¿¡ ÀԷ¹ÞÀº ۰ª¿¡ µû¶ó ¿©¼¸ °¡Áö ´Ù¸¥ 󸮸¦ °¢°¢ Çϰí ÀÖÀ¸¹Ç·Î ´ÙÁß ¼±Åù®ÀÎ switch¹®ÀÌ »ç¿ëµÇ¾ú´Ù. switch¹®Àº ÀԷ¹ÞÀº Ű °ª¿¡ µû¶ó ÁÂÇ¥¸¦ ¿Å±â°Å³ª ȸéÀ» Áö¿ì°Å³ª ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â ´ÙÁß ºÐ±â 󸮸¦ Çϸç ÀÌ Äڵ尡 for ¹«ÇÑ ·çÇÁ·Î µÑ·¯ ½Î¿© ÀÖÀ¸¹Ç·Î »ç¿ëÀÚ°¡ Q۸¦ ´©¸¦ ¶§±îÁö ¹«ÇÑÈ÷ ¹Ýº¹ÇÒ °ÍÀÌ´Ù.
Áö±Ý±îÁö ÀÛ¼ºÇß´ø ªÀº ¿¹Á¦µé¿¡ ºñÇØ ±æÀ̰¡ Á¶±Ý ±æ±â´Â ÇÏÁö¸¸ ±¸Á¶°¡ ´Ü¼øÇϱ⠶§¹®¿¡ ¾î·ÆÁö´Â ¾Ê´Ù. ÀÌ ¿¹Á¦¸¦ ¿ÏÀüÈ÷ ÀÌÇØÇÑ ÈÄ ´ÙÀ½ ½Ç½ÀÀ» ÇØ º¸ÀÚ. ÀÏÁ¾ÀÇ ÆÐÅÏ ¿¬½ÀÀÌ´Ù. ÀÌ Áß ¸î °¡Áö´Â ½º½º·Î Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ·± ¹®Á¦¸¦ °¡±ÞÀû ¸¹ÀÌ Ç®¾î ºÁ¾ß ÇÑ´Ù.
Ä¿¼ À̵¿Å°³ª °ø¹éŰ, Q°¡ ¾Æ´Ñ ۸¦ ´©¸£¸é À߸ø ´·¶´Ù´Â Àǹ̷Π»à»à
¼Ò¸®¸¦ ³» º¸ÀÚ. È®Àå¿ \a¸¦ Ãâ·ÂÇÏ¸é ½ºÇÇÄ¿·Î »à ¼Ò¸®°¡ ³´Ù. switch ¹®ÀÇ case¿¡ ÁöÁ¤µÈ ¿©¼¸ °¡Áö ¿ÜÀÇ ´Ù¸¥ Ű¿¡ ´ëÇÑ Ã³¸®¸¦
default·Î ó¸®ÇÏ¸é µÈ´Ù. µÎ °³ÀÇ switch¹® ³¡¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÏÀÚ.
if (ch == 0xE0 || ch == 0) {
ch=getch();
switch (ch) {
....
default:
putch('\a');
break;
}
} else {
switch (ch) {
....
default:
putch('\a');
break;
}
}
ch°¡ case¿¡ ¾ø´Â ۰ªÀ» °¡Áú °æ¿ì, ¿¹¸¦ µé¾î A³ª 3°°Àº ۸¦ ´©¸£¸é default case°¡ ¼±ÅÃµÇ¾î »à ¼Ò¸®¸¦ ³»¸ç Åõ´ú°Å¸± °ÍÀÌ´Ù. Á¦ÀÏ ³¡¿¡ ÀÖ´Â break¹®Àº µÚÂÊ¿¡ ´Ù¸¥ case°¡ ¾ø±â ¶§¹®¿¡ »ç½Ç ±»ÀÌ ÇÊ¿äÇÏÁö´Â ¾Ê´Ù. ±×·¯³ª Àϰü¼º°ú È®À强À» À§ÇØ ¸ðµç case¿¡ break¹®À» ³Ö´Â °ÍÀÌ ÁÁÀºµ¥ default ´ÙÀ½¿¡ ´Ù¸¥ case°¡ ÇÊ¿äÇØÁú ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. ¿¹Á¦¿¡¼ case 'Q'¿¡´Â break°¡ ¾ø´Âµ¥ ¿©±â¿¡µµ break¸¦ ³Ö´Â °ÍÀÌ ¿øÄ¢À̱â´Â ÇÏ´Ù. ±×·¯³ª exit ÇÔ¼ö´Â ÇÁ·Î±×·¥À» Áï½Ã Á¾·áÇÏ´Â ¿ö³« Ư¼öÇÑ ¸í·ÉÀ̶ó break¸¦ ³ÖÁö ¾Ê¾Ò´Ù.
Ä¿¼ À̵¿Å°¸¦ ´©¸§¿¡ µû¶ó x, y ÁÂÇ¥¸¦ Á¶Á¤ÇÔÀ¸·Î½á #¹®ÀÚ°¡ À̵¿Çϴµ¥
ÀÌ º¯¼öµéÀÇ °ªÀÌ ¹«Á¶°Ç Áõ°¡, °¨¼ÒÇϵµ·Ï µÇ¾î ÀÖ¾î ¿ÞÂÊ ³¡¿¡¼ ´õ ¿ÞÂÊÀ¸·Î °¥ ¼ö ÀÖ°í ¾Æ·¡Âʺ¸´Ù ´õ ¹ØÀ¸·Î ³»·Á°¥ ¼öµµ ÀÖ´Ù. ÀÌ·¸°Ô µÇ¸é
#ÀÌ È¸é¿¡¼ »ç¶óÁö´Â °æ¿ìµµ Àִµ¥ x, y ÁÂÇ¥°¡ ȸéÀ» ¹þ¾î³ªÁö ¾Êµµ·Ï ÇØº¸ÀÚ.
ȸéÀÇ ¿ÞÂÊ À§ ÁÂÇ¥´Â (0,0)ÀÌ°í ¿À¸¥ÂÊ ¾Æ·¡ ÁÂÇ¥´Â (79,24)À̹ǷΠx, yº¯¼ö°¡ ÀÌ ¿µ¿ªÀ» ¹þ¾î³ªÁö ¾Êµµ·Ï ÇÏ¸é µÈ´Ù. °¢ Ä¿¼ À̵¿Å°¸¦ ó¸®ÇÏ´Â case¿¡ if Á¶°ÇÀ» ³Ö¾î ÇØ´ç ¹æÇâÀ¸·Î À̵¿ °¡´ÉÇÒ ¶§¸¸ x, y º¯¼ö°ªÀ» Á¶Á¤Çϵµ·Ï ÇÏÀÚ.
switch (ch) {
case 75:
if (x > 0) x=x-1;
break;
case 77:
if (x < 79) x=x+1;
break;
case 72:
if (y > 0) y=y-1;
break;
case 80:
if (y < 24) y=y+1;
break;
....
¿ÞÂÊÀ¸·Î À̵¿Çϱâ Àü¿¡ x°¡ 0º¸´Ù Å«Áö¸¦ Á¡°ËÇØ º¸°í 0º¸´Ù Å« °æ¿ì¿¡¸¸ x¸¦ 1 °¨¼Ò½ÃÄ×´Ù. ¸¸¾à x°¡ 0À̶ó¸é Áï ¿ÞÂÊ º®¿¡ ´ê¾Æ ÀÖ´Ù¸é x°ªÀ» ±×´ë·Î À¯ÁöÇÏ¿© #ÀÌ È¸é ¿ÞÂÊ ¹ÛÀ¸·Î ³ª°¡Áö ¾Êµµ·Ï Çß´Ù. ³ª¸ÓÁö ¹æÇâµµ ºñ±³ÇÏ´Â °ª¸¸ ´Ù¸¦ »Ó ³í¸®´Â µ¿ÀÏÇÏ´Ù.
À̹ø¿¡´Â È¸é ¹ÛÀ» ¹þ¾î³ª¸é ¹Ý´ëÂÊ¿¡ # ¹®ÀÚ°¡ ³ªÅ¸³ªµµ·Ï ÇØ º¸ÀÚ. Áï,
¿ÞÂÊ ³¡¿¡¼ ´õ ¿ÞÂÊÀ¸·Î °¡¸é ¿À¸¥ÂÊ ³¡¿¡ #ÀÌ ³ªÅ¸³ªµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. À̰͵µ Á¶°Ç¿¡ µû¶ó ÁÂÇ¥¸¸ Á¶ÀÛÇÏ¸é µÈ´Ù. ´ëÇ¥ÀûÀ¸·Î ¿ÞÂÊ À̵¿ÀÇ °æ¿ì¸¸
º¸ÀÚ.
switch (ch) {
case 75:
if (x > 0) {
x=x-1;
} else {
x=79;
}
break;
ÄÚµå ÀÚü°¡ ¼³¸íÀûÀ̹ǷΠ´õ ÀÌ»óÀÇ ÀܼҸ®´Â ºÒÇÊ¿äÇÒ °ÍÀÌ´Ù. 4¹æÇâ ¸ðµÎ ÀÌ·± Äڵ带 ÀÛ¼ºÇϸé #¹®ÀÚ°¡ È¸é ³¡À» Áö³ª ¸¶À½´ë·Î À̵¿ÇÒ ¼ö ÀÖ´Ù.
À̵¿ÇÏ´Â ¹®ÀÚ°¡ #À¸·Î °íÁ¤µÇ¾î Àִµ¥ »ç¿ëÀÚÀÇ ±âÈ£¿¡ µû¶ó ÀÌ ¹®ÀÚ¸¦ º¯°æÇÒ
¼ö ÀÖµµ·Ï ÇØ º¸ÀÚ. 1À» ´©¸£¸é $, 2´Â @ , 3Àº #,
4´Â °ø¹éÀ¸·Î ¹®ÀÚ¸¦ º¯°æÇϵµ·Ï ÇÑ´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é putch('#')¹®¿¡ »ç¿ëµÈ '#' ¹®ÀÚ »ó¼ö¸¦ º¯¼ö·Î ¹Ù²Ù¾î¾ß ÇÑ´Ù.
char munja='#';
for(;;) {
gotoxy(x,y);
putch(munja);
munja¶ó´Â À̸§À¸·Î ¹®ÀÚÇü º¯¼ö¸¦ ¼±¾ðÇϰí '#'À¸·Î ÃʱâÈÇÑ ÈÄ putch ÇÔ¼ö·Î ÀÌ ¹®ÀÚ¸¦ Ãâ·ÂÇϵµ·Ï Çß´Ù. ¿©±â±îÁö´Â ¾ÕÀÇ ¿¹Á¦¿Í µ¿ÀÏÇÏÁö¸¸ putch°¡ Ãâ·ÂÇÏ´Â ´ë»óÀÌ ¹®ÀÚ »ó¼ö¿¡¼ ¹®ÀÚ º¯¼ö·Î ¹Ù²î¾úÀ¸¹Ç·Î ÀÌ º¯¼ö°ª¸¸ ¹Ù²Ù¸é Ãâ·ÂµÇ´Â ¹®ÀÚ°¡ ´Þ¶óÁú °ÍÀÌ´Ù. ¹®ÀÚ¸¦ ó¸®ÇÏ´Â ¾Æ·¡ÂÊ switch ¹®¿¡ ´ÙÀ½ case¸¦ Ãß°¡ÇÑ´Ù.
} else {
switch (ch) {
case ' ':
clrscr();
break;
case 'q':
case 'Q':
exit(0);
case '1':
munja='$';
break;
case '2':
munja='@';
break;
case '3':
munja='#';
break;
case '4':
munja=' ';
break;
}
}
1, 2, 3, 4 ۸¦ ´©¸¦ ¶§ munja º¯¼ö¸¦ ÀûÀýÇÑ ´Ù¸¥ ¹®ÀÚ·Î ¹Ù²Ù±â¸¸ ÇÏ¸é µÈ´Ù. ¹«¾ùÀΰ¡ º¯ÇÒ ¼ö ÀÖ´Â Á¤º¸¸¦ ÀúÀåÇÒ ¶§ ¾²´Â °ÍÀÌ ¹Ù·Î º¯¼öÀÌ´Ù.
Ä¿¼ À̵¿Å°¸¦ ÀԷ¹ޱâ À§ÇØ È®ÀåŰ¿¡ ´ëÇØ °£·«ÇÏ°Ô ¼Ò°³Çߴµ¥ ±×·¸´Ù¸é ±â´ÉŰ³ª Ins, Del °°Àº ³ª¸ÓÁö È®ÀåŰÀÇ ÄÚµå´Â ¾îµð¸¦ º¸¸é ¾Ë ¼ö ÀÖÀ»±î? È®ÀåŰ´Â Űº¸µåÀÇ ½ºÄµ ÄÚµå·Î Á¤ÀǵǴµ¥ ÀÌ Á¤º¸¸¦ ¾Ë°í ½ÍÀ¸¸é ½ºÄµ ÄÚµåÇ¥¸¦ º¸¸é µÈ´Ù. ±×·¯³ª Áö±ÝÀº ±¸Çϱ⵵ Èûµç ½ºÄµ ÄÚµåÇ¥¸¦ º¸´Â °Íº¸´Ù ´õ ÁÁÀº ¹æ¹ýÀº ÇÁ·Î±×·¥À» Â¥¼ ½ÇÇàÇØ º¸´Â °ÍÀÌ´Ù.
|
¿¹ Á¦ : scancode |
#include <Turboc.h>
void main()
{
int ch;
for(;;) {
ch=getch();
if (ch == 0xE0 || ch == 0) {
ch=getch();
printf("È®Àå Ű ÀÔ·Â, ÄÚµå = %d\n",ch);
} else {
printf("ÀÏ¹Ý ¹®ÀÚ ÀÔ·Â, ¹®ÀÚ = %c, ÄÚµå = %d\n",ch,ch);
if (ch == 'q') exit(0);
}
}
}
ÀÌ ¿¹Á¦´Â ´©¸£´Â ŰÀÇ Á¾·ù¸¦ ÆÇº°Çؼ ¹®ÀÚ, È®ÀåŰ Äڵ带 Ãâ·ÂÇÑ´Ù. ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇØ ³õ°í ¾Ë°í ½ÍÀº È®Àå۸¦ ´·¯º¸¸é È®ÀåŰ ¹øÈ£¸¦ ½±°Ô ¾Ë ¼ö ÀÖ´Ù.