[C++]°ÁÂ(22)<--º®µ¹°ÔÀÓ ¸¸µé±â
/* ÇÁ·Î±×·¥ÀÌ ½ÃÀ۵Ǵ ºÎºÐ */
void main()
{
int key,quitflag; /* Å°º¸µå¿¡¼ ¹Þ¾ÆµéÀÎ °ª, Å»Ãâ º¯¼ö */
nowdelay=1500;
detectgraph(&gd,&gm);
randomize();
textattr(0x07);
clrscr();
gotoxy(20,10);
cout << "input preload brick numer(0~9) : ";
gotoxy(25,12);
cout << "Press Enter for None ";
preload=getche(); // ¹Ì¸® ½×¾Æ³õÀ» º®µ¹ ¼ö ÀԷ¹ÞÀ½
if (isdigit(preload)) preload-='0'; // ¼ýÀÚ¸¸ ÀÔ·Â
else preload=0; // ÀÔ·Â error½Ã preload´Â ¹«È¿
clrscr();
_setcursortype(_NOCURSOR);
printstage(); /* È¸é ±×¸² */
brick BR; /* º®µ¹ °´Ã¼¸¦ ¸¸µê */
SCORE.load(); /* Á¡¼ö ÀоîµéÀÓ */
brick nextBR; /* ´ÙÀ½ º®µ¹ °´Ã¼ */
brick nextBR2;
nextBR.make(); /* ´ÙÀ½ º®µ¹À» ¹Ì¸® ¸¸µé¾î µÒ */
nextBR2=nextBR;
for (;;){ /* ù¹ø° ·çÇÁÀÇ ½ÃÀÛ. Àüü °ÔÀÓ ·çÇÁ */
nextBR2.outbrick(0);
if (nowdelay>500) nowdelay-=4;
BR=nextBR; // ÀÌÀü¿¡ ¸¸µé¾î µÎ¾ú´ø º®µ¹À» Àоî¿Â´Ù.
nextBR.make(); // ´ÙÀ½ º®µ¹ ¸¸µê
nextBR2=nextBR; // ´ÙÀ½ º®µ¹À» È¸é ¿·¿¡ Ãâ·ÂÇØÁÜ
nextBR2.Setx(67);
nextBR2.Sety(18);
nextBR2.outbrick(1);
BR.outbrick(1);
if (BR.whataround((BR.Getx()-30)/2,BR.Gety()-2)!=0)
/* °ÔÀÓ ³¡ ó¸®.*/
gameover();
for (;;){ /* µÎ ¹ø° ·çÇÁÀÇ ½ÃÀÛ. ÇϳªÀÇ º®µ¹ÀÌ ¶³¾îÁö´Â ·çÇÁ */
if (BR.downmove()==0) break; /* ÇÑ Ä ¾Æ·¡·Î ¶³¾î¶ß¸² */
quitflag=0;
for (de=0;de<nowdelay;de++){ /* delay·çÇÁdelayÁß¿¡µµÅ°°ªÀº*/
key=inkey(); /* °è¼Ó ÀоîµéÀδÙ. */
switch (key){ /* ÀÔ·ÂµÈ Å°°ª¿¡ µû¸¥ ´ÙÁß ¼±Åà */
case LEFT:BR.leftmove();break;
case UP:BR.rotate();break;
case RIGHT:BR.rightmove();break;
case DOWN: while (BR.downmove());
quitflag=1;de=nowdelay;
break;
case SPACE:if (BR.downmove()==0)
// space-ÇÑ Ä °Á¦·Î ¶³¾î¶ß¸²
{
quitflag=1;
de=nowdelay;
}
break;
case ESC:gameover();
}
} /* ¸¸µé±â À§ÇØ Å»Ãâ */
if (quitflag) break;/* down Å°¸¦ ´·¶À» ¶§ »õ·Î¿î º®µ¹À»*/
} /* µÎ ¹ø° ·çÇÁÀÇ ³¡ */
} /* ù¹ø° ·çÇÁÀÇ ³¡ */
}
/* È¸é ±¸¼º ¹× tet ¹è¿ÀÇ ÃʱâÈ */
void printstage()
{
int i,j;
textline(1,31,1,56,25);
textline(0,62,15,75,20);
for (i=0;i<25;i++) for(j=0;j<14;j++)
/* ¹è¿ Á¤ÀÇ º®ÀÎ ºÎºÐÀº 2 */
if (i==23 || j==0 || j==13) tet[j][i]=2; /* ºó °ø°£Àº 0 */
else tet[j][i]=0;
for (;preload;preload--) // ¹Ì¸® ½×¾Æ³õÀº º®µ¹À» ¹è¿¿¡ ±â·Ï
for(i=0;i<10;i++)
tet[random(12)+1][23-preload]=1;
for (i=0;i<23;i++) // ȸ鿡 º®µ¹À» ±×¸²
for (j=1;j<13;j++)
{
gotoxy(j*2+30,i+2);
if (tet[j][i]==0)
{
putch(' ');
putch(' ');
}
else
{
putch(178);
putch(178);
}
}
textcolor(15);
gotoxy(3,5);cprintf("Sang Hyung i Tetris"); /* ¹®ÀÚ¿ Ãâ·Â */
gotoxy(13,6);cprintf("Ver 2.0");
gotoxy(3,8);printf("This program made for");
gotoxy(3,9);printf("Programming education");
gotoxy(3,10);printf("1994 Nyun 7 Wol 14 il");
textcolor(2);
gotoxy(3,15);cprintf("now score :");
gotoxy(5,16);printf("%d jum",score);
gotoxy(3,20);printf("Kyung Hee Daehakkyo");
gotoxy(3,21);printf("Computer Yunguhoi");
gotoxy(3,22);cprintf("COM.COM");
gotoxy(63,5);printf("use arrow key");
gotoxy(63,7);printf("left:move left");
gotoxy(63,8);printf("right:move right");
gotoxy(63,9);printf("up:turn");
gotoxy(63,10);printf("down:all down");
gotoxy(63,11);printf("space:down one");
gotoxy(63,12);printf("ESC:quit");
textcolor(14); /*ÄÞÄÞ ±ÛÀÚ*/
gotoxy(63,22);cprintf("\xb8 \xc1 \xdc . \xb8 \xc1 \xdc");
}
/* ´ë±â¾øÀÌ Å°°ª ÀÐÀ½ */
int inkey(void)
{
if (kbhit()) return getch();
return 0;
}
// text»ó¿¡¼ ÁÙÀ» ±ß´Â ÇÔ¼ö, ¼±¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù.
void textline(int type,int x1,int y1,int x2,int y2)
{
int i;
char jool[][6]={
{0xc4,0xb3,0xda,0xbf,0xd9,0xc0},
{0xcd,0xba,0xc9,0xbb,0xbc,0xc8},
{0xcd,0xb3,0xd5,0xb8,0xbe,0xd4},
{0xc4,0xba,0xd6,0xb7,0xbd,0xd3}};
for (i=x1;i<x2;i++)
{
gotoxy(i,y1);
putch(jool[type][0]);
gotoxy(i,y2);
putch(jool[type][0]);
}
for (i=y1;i<y2;i++)
{
gotoxy(x1,i);
putch(jool[type][1]);
gotoxy(x2,i);
putch(jool[type][1]);
}
gotoxy(x1,y1);putch(jool[type][2]);
gotoxy(x2,y1);putch(jool[type][3]);
gotoxy(x2,y2);putch(jool[type][4]);
gotoxy(x1,y2);putch(jool[type][5]);
}
// °ÔÀÓÀÇ ³¡ ó¸®
void gameover()
{
gotoxy(35,15);
printf("G A M E O V E R");
delay(500);
_setcursortype(_NORMALCURSOR);
textattr(0x07);
clrscr();
if (SCORE.soonwi(score)<=10) // Á¡¼ö°¡ ¼øÀ§¿¡ µé¾úÀ¸¸é
{ // À̸§À» ÀÔ·Â¹Þ¾Æ data ÆÄÀÏ
gotoxy(30,10); // À» °»½ÅÇÑ´Ù.
cout << "Best player";
gotoxy(25,12);
cout << "input your name : ";
gets(name);
SCORE.insert(score,name);
SCORE.save();
}
SCORE.out(); // Á¡¼ö Ãâ·Â
printf("Press any key");
getch();
exit(0); // program Á¾·á
}
<<shtet2.cpp>>
shtet1.c¿¡ ºñÇØ ±¸Á¶»ó º°·Î ¹Ù²ï °ÍÀÌ ¾øÀ¸¸ç »ç¿ëÇÏ´ø ¾Ù°Å¸®µëÀ» ±×´ë·Î
¼öÁ¤¾øÀÌ »ç¿ëÇÑ´Ù. ÇÏÁö¸¸ ¸î °¡Áö ±â´ÉÀÌ ´õ Ãß°¡µÇ¾î ÀÖ´Â °ÍÀÌ º¸ÀδÙ.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------