[C++]°­ÁÂ(18)<--Ŭ·¡½º ¹è¿­ ¹× Æ÷ÀÎÅÍ





#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
class Position {                // Position classÀÇ Á¤ÀÇ
private:
 int px;
 int py;
 char ch;
public:
 Position();
 void outpos();
 void erasepos();
 };
Position::Position()       //  »ý¼ºÀÚ . data ¸â¹ö¸¦ ³­¼ö·Î Á¤ÀÇÇÑ´Ù.
 {
 px=random(80)+1;
 py=random(25)+1;
 ch=random('Z'-'A')+'A';
 }
void Position::outpos()         // Position class¸¦ Ãâ·Â
 {
 gotoxy(px,py);
 putch(ch);
 }
void Position::erasepos()           // Position class¸¦ Áö¿ò
 {
 gotoxy(px,py);
 putch(' ');
 }
void main()
{
clrscr();
randomize();
Position HERE[100];             // PositionÇüÀÇ ¹è¿­À» ¸¸µê
Position *THERE;                // PositionÇüÀÇ Æ÷ÀÎÅ͸¦ ¸¸µê
for (int i=0;i<100;i++)
{
delay(50);
HERE[i].outpos();
}
getch();
THERE=HERE;
for (int j=0;j<100;j++)
{
THERE -> erasepos();            // Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇØ ¸â¹ö ÇÔ¼ö¸¦ È£Ãâ
delay(50);
THERE++;
}
getch();
}

½ÇÇà½ÃÅ°¸é È­¸é»óÀÇ ÀÓÀÇÀÇ À§Ä¡¿¡ ¹®ÀÚµéÀÌ ¸¶±¸ Ãâ·ÂµÇ¾ú´Ù°¡ Àá½Ã ´ë±â ÈÄ
´Ù½Ã Â÷·Ê´ë·Î »ç¶óÁø´Ù. º°·Î º¼Ç°¾ø´Â °£´ÜÇÑ ¿¹Á¦ÀÌ´Ù. ÀÌ ¿¹Á¦¿¡¼­ »ç¿ëµÈ
Ŭ·¡½ºµµ ¿©ÀüÈ÷ Position Ŭ·¡½ºÀÌ´Ù. erasepos() ÇÔ¼ö°¡ Ãß°¡µÇ¾ú°í »ý¼ºÀÚ
ÀÇ ³»¿ëÀÌ Á¶±Ý ¹Ù²î¾ú´Ù.
erasepos´Â °´Ã¼°¡ ±â¾ïÇÏ°í ÀÖ´Â À§Ä¡¸¦ Áö¿ì´Â ÇÔ¼öÀÌ´Ù. »ý¼ºÀÚ´Â Àμö°¡
¾ø¾îÁ³´Âµ¥ »ý¼ºµÇ´Â °´Ã¼°¡ ¹è¿­ÀÏ °æ¿ì´Â Àμö°¡ ÀÖ´Â »ý¼ºÀڴ ȣÃâµÉ ¼ö
¾øÀ¸¸ç Ç×»ó Àμö°¡ ¾ø´Â »ý¼ºÀÚ°¡ È£ÃâµÈ´Ù. Ŭ·¡½º ¹è¿­À» ÃʱâÈ­½ÃÅ°±â À§
Çؼ­´Â »ý¼ºÀÚº¸´Ù´Â ÃʱâÈ­¸¦ Àü¹®ÀûÀ¸·Î ¼öÇàÇØÁÖ´Â ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â
ÆíÀÌ ´õ È¿À²ÀûÀÌ´Ù.
¸â¹ö ÇÔ¼ö´Â °¢ÀÚ°¡ ºÐ¼®Çغ¸µµ·Ï ÇÏ°í main ÇÔ¼ö¸¦ ºÐ¼®Çغ¸ÀÚ. ÀÏ´Ü main¿¡
¼­ PositionÇüÀÇ °´Ã¼ ¹è¿­ HERE¸¦ 100ÀÇ Å©±â·Î ¼±¾ðÇÏ¿© HERE[0]¿¡¼­ºÎÅÍ HE
RE[99]±îÁöÀÇ object 100°³°¡ ¸¸µé¾îÁ³´Ù. À̶§ °¢°¢ÀÇ °´Ã¼ ¹è¿­ ¿ä¼Ò¿¡ ´ëÇØ
»ý¼ºÀÚ Position::Position()ÀÌ È£ÃâµÇ¸ç »ý¼ºÀÚ¿¡¼­´Â px,py,ch¿¡ ³­¼ö·Î ÀÓ
ÀÇÀÇ °ªÀ» Áý¾î³Ö´Â´Ù. Ŭ·¡½º PositionÀÇ Àüü Å©±â(sizeof(Position))´Â 2+2
+1=5¹ÙÀÌÆ®À̹ǷΠHEREÀÇ Àüü Å©±â´Â 500¹ÙÀÌÆ®°¡ µÈ´Ù.
HERE ¹è¿­ÀÌ ¸¸µé¾îÁø ÈÄ PositionÇüÀÇ Æ÷ÀÎÅÍ º¯¼ö THERE°¡ ¸¸µé¾îÁø´Ù. Ŭ
·¡½º¸¦ Æ÷ÀÎÆ®ÇÑ´Ù »ÓÀÌÁö THERE´Â ÀÏ¹Ý Æ÷ÀÎÅÍ º¯¼ö¿Í Ưº°³ª°Ô ´Ù¸¥ °ÍÀÌ ¾Æ
´Ï¸ç Å©±â´Â 2¹ÙÀÌÆ®ÀÌ´Ù. THERE´Â ÀÌÁ¦ PositionÇüÀÇ °´Ã¼¸¦ Æ÷ÀÎÆ®ÇÒ ¼ö ÀÖ
°Ô µÇ¾úÀ¸¸ç °ð¹Ù·Î ´ÙÀ½ Çà¿¡¼­ HERE °´Ã¼ÀÇ ½ÃÀÛ ¹øÁö¸¦ ´ëÀÔ¹Þ¾Æ ÃʱâÈ­µÇ
¾ú´Ù.

    There
   ¦£¦¡¦¡¦¡¦¤
 ¦£¦©      ¦¢
 ¦¢¦¦¦¡¦¡¦¡¦¥
 ¦¢
 ¦¢      here[1]
 ¦¦ here[0]    here[2]                             here[99]         
                              
   ¦£¦¡¦¡¦¨¦¡¦¡¦¨¦¡¦¡¦¤                            ¦£¦¡¦¡¦¤
   ¦¢ px ¦¢ px ¦¢ px ¦¢                            ¦¢ px ¦¢
   ¦§¦¡¦¡¦«¦¡¦¡¦«¦¡¦¡¦©                            ¦§¦¡¦¡¦©
   ¦¢ py ¦¢ py ¦¢ py ¦¢ .......................... ¦¢ py ¦¢
   ¦§¦¡¦¡¦«¦¡¦¡¦«¦¡¦¡¦©                            ¦§¦¡¦¡¦©
   ¦¢ ch ¦¢ ch ¦¢ ch ¦¢                            ¦¢ ch ¦¢
   ¦¦¦¡¦¡¦ª¦¡¦¡¦ª¦¡¦¡¦¥                            ¦¦¦¡¦¡¦¥

±×¸®°í nÇà¿¡¼­ºÎÅÍ µÎ °³ÀÇ ·çÇÁ°¡ ¿¬¼ÓÇØ Àִµ¥ ù¹ø° i ·çÇÁ¿¡¼­´Â HERE
°´Ã¼ ¹è¿­ ¿ä¼Ò Àüü¸¦ ¼øȸÇϸç Â÷·Ê´ë·Î outpos ÇÔ¼ö¸¦ È£ÃâÇÏ¿© °´Ã¼ÀÇ ³»
¿ëÀ» È­¸é¿¡ Ãâ·Â½ÃŲ´Ù. ¾ÆÁÖ ½±°Ô ºÐ¼®µÇ´Â ½¬¿î ¹®ÀåÀÌ´Ù. ´ÙÀ½ j ·çÇÁ¿¡¼­
Ãâ·ÂµÈ ¹®ÀÚ¸¦ ´Ù½Ã ¹è¿­ ¿ä¼Ò 0¿¡¼­ºÎÅÍ 99±îÁö ¼øȸÇϸ鼭 Â÷·Ê´ë·Î Áö¿ì´Â
µ¥ ¹Ù·Î ¹è¿­ ¿ä¼Ò¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó Æ÷ÀÎÅ͸¦ »ç¿ëÇØ °£Á¢ÀûÀ¸·Î ÂüÁ¶
ÇÑ´Ù.
THERE -> erasepos();ÀÇ Àǹ̴ THERE Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â °´Ã¼¿¡ ¼ÓÇÑ ¸â¹ö
ÇÔ¼ö erasepos()¸¦ È£ÃâÇÑ´Ù´Â ÀǹÌÀÌ´Ù. -> ¿¬»êÀÚÀÇ Àǹ̸¦ ¾È´Ù¸é ÀÚ¿¬½º·´
°Ô ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù. À§ ¹®ÀåÀº (*THERE).outpos()°¡ µÇ¸ç ÃÖÃÊÀÇ THERE°¡ HE
RE[0]À̹ǷΠÀ§ ¹®ÀåÀº HERE[0].erasepos()ÀÌ´Ù. ·çÇÁ°¡ ÁøÇàµÊ¿¡ µû¶ó THERE
´Â °è¼Ó Áõ°¡ÇÑ´Ù. Æ÷ÀÎÅÍ ¿¬»êÀÇ Á¤ÀÇ¿¡ ÀÇÇØ THERE´Â ÀڱⰡ Æ÷ÀÎÆ®ÇÏ´Â ´ë
»óÀÇ Å©±â ¸¸Å­ Áõ°¡ÇÏ°Ô µÇ¸ç PositionÇüÀÌ 5¹ÙÀÌÆ®À̹ǷΠ5¹ÙÀÌÆ®¾¿ Áõ°¡ÇÒ
°ÍÀÌ´Ù. ÃÖÃÊ HERE[0]¸¦ Æ÷ÀÎÆ®ÇÏ´Ù°¡ THERE++;¿¡ ÀÇÇØ HERE[1]À» Æ÷ÀÎÆ®ÇÏ°í
·çÇÁ¸¦ µ¹¸é¼­ HERE[99]±îÁö °¡°Ô µÈ´Ù.


**********************************************
**********************************************
2-7 shtet2 ºÐ¼®


C¸¦ óÀ½ ¹è¿ï ¶§ ½Ç½À ¿¹Á¦·Î »ç¿ëÇß´ø shtet1.c(ÀÚ·á½ÇÀ» Àß µÚÁ®º¼ °Í. ÀÚ
·á½Ç¿¡ ¼Ò½º¿Í ¼³¸í¼­°¡ °°ÀÌ µé¾î ÀÖ´Ù.)¸¦ C++ ¹öÀüÀ¸·Î ¸¸µé¾î º¸¾Ò´Ù. ±â
º» ¾Ù°Å¸®µëÀÌ µ¿ÀÏÇϰųª, ¹Ù²î´õ¶óµµ Å©°Ô ¹Ù²îÁö ¾Ê¾Ò±â ¶§¹®¿¡ shtet1.c¸¦
´Ù ºÐ¼®ÇÑ »ç¶÷Àº ¾î·ÆÁö ¾Ê°Ô ÀÌ ¿¹Á¦µµ ºÐ¼®ÇÒ ¼ö ÀÖ´Ù. »õ·Î Ãß°¡µÈ ±â´ÉÀº
»ö»óÀ» »ç¿ëÇÑ´Ù´Â °Í°ú, º®µ¹ ¸ð¾çÀÌ Áõ°¡µÇ¾ú°í °ÔÀÓÀÌ ³¡³­ ÈÄ¿¡´Â Á¡¼ö¸¦
±â·ÏÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ ÀÖÀ» »ÓÀÌ´Ù. ¼ÖÁ÷È÷ ªÀº ½Ã°£¿¡ Ã˹ÚÇÏ°Ô ¸¸µç ÇÁ·Î
±×·¥À̶ó ±×·¸°Ô Àß ¸¸µé¾ú´Ù°í´Â ÇÒ ¼ö ¾ø´Â ÀÛÇ°ÀÌÁö¸¸ C++ ÇÁ·Î±×·¥ÀÇ Çü½Ä
ÀÌ ¾î¶»´Ù´Â °ÍÀ» º¸±â¿¡´Â Å« ºÎÁ·ÇÔÀÌ ¾øÀ¸¸®¶ó »ý°¢ÇÑ´Ù. °ÔÀÓ ½ÇÇà È­¸éÀº
´ÙÀ½°ú °°´Ù.

*)°ÔÀÓ ½ÇÇà È­¸éÀº Á÷Á¢ °ÔÀÓÀ» ½ÇÇàÇØ º¸½Ã¿Í¿ä.
µµÀúÈ÷ ÅؽºÆ® ȯ°æ¿¡¼­ ±×¸²À» º¸¿©ÁÙ ¼ö ¾øÀ½

¸ðµÎ 5°³ÀÇ ÆÄÀÏ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç ÇÑ µð·ºÅ丮¿¡ ¸ðµÎ ¸ð¾Æ³õÀº ÈÄ shtet2.
prj¸¦ ¸¸µé°í ´ÙÀ½ ÆÄÀϵéÀ» ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½ÃÄÑ ÁÖ¸é µÈ´Ù.

shtet2.cpp
brick.cpp
score.cpp

¿¹Á¦¸¦ ºÐ¼®ÇÏ´Â ¼ø¼­´Â ¿ì¼± µÎ °³ÀÇ Å¬·¡½º¸¦ ¸ÕÀú ºÐ¼®ÇÏ¿© Ŭ·¡½ºÀÇ ¼Ó¼º
¿¡ °üÇÏ¿© ¸ÕÀú ÆľÇÇÑ ÈÄ main ÆÄÀÏÀÎ shtet2.cpp¸¦ ºÐ¼®ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¸Õ
Àú °¡Àå ÇÙ½ÉÀÌ µÇ´Â brick Ŭ·¡½º¸¦ ºÐ¼®Çغ¸ÀÚ.

Âü°í:¿©±â¿¡ ÀÖ´Â ¼Ò½ºµéµµ ¸ðµÎ ÀÚ·á½Ç¿¡ ÀÖÀ½. Àß µÚÁ®º¸±â ¹Ù¶÷

// BRICK.H - brick class ¼±¾ð
class brick {
 private:
   int nowbrick,nowrot;   // ÇöÀçÀÇ º®µ¹ ¸ð¾ç, ȸÀü ¸ð¾ç
   int nowx,nowy;         // ÇöÀç À§Ä¡
   int nowcolor;          // ÇöÀç »ö»ó
 public:
   brick() {};
   void make();
   void outbrick(int);
   void rightmove();
   void leftmove();
   void rotate();
   int whataround(int,int);
   int downmove();
   void isfull();
   int Getx() {return nowx;}
   int Gety() {return nowy;}
   void Setx(int xx) {nowx=xx;}
   void Sety(int yy) {nowy=yy;}
 };
                   <<brick.h>>


À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------

    

 ´ÙÀ½