[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>>
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------
´ÙÀ½