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





*»ý¼ºÀÚ
Score °´Ã¼°¡ ¸¸µé¾îÁú ¶§ È£ÃâµÇ´Â »ý¼ºÀÚ¿¡¼­´Â µ¥ÀÌÅÍ ÆÄÀÏÀÌ ÀÖ´ÂÁö¸¦ º¸
°í ¾øÀ¸¸é Á÷Á¢ ¸¸µé¾îÁØ´Ù. Á¡¼ö°¡ µ¥ÀÌÅÍ ÆÄÀÏ¿¡ ±â·ÏµÇ°í µ¥ÀÌÅÍ ÆÄÀÏÀÇ ³»
¿ëÀ» ±Ù°Å·Î Score °´Ã¼°¡ µ¿ÀÛÇϹǷΠµ¥ÀÌÅÍ ÆÄÀÏÀº Score °´Ã¼°¡ µ¿ÀÛÇϱâ
À§ÇÑ ±âº»ÀûÀÎ ÀüÁ¦ Á¶°ÇÀÌ µÈ´Ù. ±×·¯³ª µ¥ÀÌÅÍ ÆÄÀÏÀÌ Ç×»ó Á¸ÀçÇÑ´Ù°í´Â ÇÒ
¼ö ¾ø´Ù. »ç¿ëÀÚ°¡ °íÀÇµç ½Ç¼öµç ÀÌ ÆÄÀÏÀ» »èÁ¦ÇÒ ¼öµµ ÀÖÀ¸¸ç ¶Ç´Â ½ÇÇà ÆÄ
Àϸ¸ ´Ù¸¥ µð·ºÅ丮¿¡ º¹»ç¸¦ ÇѴٵ簡 ÇÏ´Â °æ¿ì¸¦ °í·ÁÇÏ¸é µ¥ÀÌÅÍ ÆÄÀÏÀÌ
¾ø´Â °æ¿ìµµ »ý°¢ÇÒ ¼ö ÀÖ´Ù. »ý¼ºÀÚ¿¡¼­ ÇÏ´Â ÀÏÀº ÀÏÁ¾ÀÇ ¿¡·¯ ó¸®ÀÌ´Ù. Áï,
¹Ýµå½Ã ÀÖ¾î¾ß ÇÒ µ¥ÀÌÅÍ ÆÄÀÏÀÌ °ú¿¬ ÀÖ´ÂÁö¸¦ °Ë»çÇغ¸´Â °ÍÀÌ´Ù. ¸¸¾à ÀÖ´Ù
¸é ¾Æ¹« Àϵµ ÇÏÁö ¾Ê°í ±×´ë·Î ¸®ÅÏÀ» Ç쵂 ¾ø´Ù¸é Á÷Á¢ ¸¸µé¾îÁØ´Ù. Á¡¼ö´Â
¸ðµÎ 100Á¡À¸·Î ÇÏ°í playerÀÇ À̸§Àº ÇÁ·Î±×·¡¸ÓÀÇ À̸§À¸·Î ÇÏ¿© µ¥ÀÌÅÍ ÆÄ
ÀÏÀ» ÃʱâÈ­ÇÏ¿© »ý¼º½ÃŲ´Ù.
»ý¼ºÀÚ¿¡¼­ µ¥ÀÌÅÍ ÆÄÀÏÀ» ã´Â ¹æ¹ýÀÌ ´Ù¼Ò µ¶Æ¯Çѵ¥ ½ÇÇà ÆÄÀÏÀ» ãÀº ÈÄ
½ÇÇà ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮ÀÇ À̸§À» ±×´ë·Î »ç¿ëÇÏ¿© ±× À§Ä¡¿¡ µ¥ÀÌÅÍ ÆÄÀÏ
À» ã°í »ý¼º½ÃŲ´Ù. µ¥ÀÌÅÍ ÆÄÀÏÀ» µÎ´Â À§Ä¡°¡ ÇöÀçÀÇ µð·ºÅ丮°¡ ¾Æ´Ï°í ½Ç
Çà ÆÄÀÏÀÌ ÀÖ´Â À§Ä¡°¡ µÊÀ¸·Î½á ¿©·¯ °¡Áö ÀÌÁ¡ÀÌ »ý±ä´Ù. ¿ì¼± Á¡¼ö¸¦ º¸°ü
ÇÏ´Â µ¥ÀÌÅÍ ÆÄÀÏÀÌ Çϳª¸¸ ÀÖÀ¸¹Ç·Î Á¡¼ö °ü¸®°¡ ÀÏ°ýÀûÀ̸ç path ÁöÁ¤¿¡ ÀÇ
ÇØ ´Ù¸¥ µð·ºÅ丮¿¡¼­ shtet2.exe¸¦ ½ÇÇàÇصµ Á¦´ë·Î µ¥ÀÌÅÍ ÆÄÀÏÀ» ãÀ» ¼ö
ÀÖ´Ù. Score Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öµéÀÇ µ¿ÀÛÀº ´ÙÀ½°ú °°´Ù.

*load
µ¥ÀÌÅÍ ÆÄÀϷκÎÅÍ º¸°üµÇ¾î ÀÖ´Â Á¡¼ö¿Í playerÀÇ À̸§À» Àоî¿Í Score °´Ã¼
ÀÇ scorestruct ±¸Á¶Ã¼¿¡ º¹»çÇÑ´Ù. ÀÌ·¸°Ô º¹»çµÈ Á¤º¸´Â ´Ù¸¥ ¸â¹ö ÇÔ¼ö¿¡
ÀÇÇØ »ç¿ëµÈ´Ù. load ÇÔ¼ö¿¡¼­´Â ÆÄÀÏ ÀÔ·ÂÀ» À§ÇØ fstream.h¿¡ Á¤ÀǵǾî ÀÖ´Â
ifstream °´Ã¼¸¦ »ç¿ëÇÑ´Ù. iostreamÀ» »ç¿ëÇÑ ÆÄÀÏ ÀÔÃâ·ÂÀº µÚ¿¡¼­ ´Ù·é´Ù.

*save
load¿Í ¹Ý´ë·Î scorestruct¿¡ ÀÖ´Â Á¤º¸¸¦ µ¥ÀÌÅÍ ÆÄÀÏ·Î Ãâ·ÂÇÑ´Ù. °ÔÀÓÀÌ
Çѹø ³¡³­ ÈÄ¿¡´Â Á¡¼ö°¡ °»½ÅµÇ¹Ç·Î ³¡³»±â Àü¿¡ °»½ÅµÈ Á¡¼ö¸¦ µ¥ÀÌÅÍ ÆÄÀÏ
·Î Ãâ·ÂÀ» ÇØÁÖ¾î¾ß µ¥ÀÌÅÍ ÆÄÀÏÀÌ Á¤È®ÇÑ Á¡¼ö¸¦ Ç×»ó °¡Áú ¼ö ÀÖ´Ù. ÆÄÀÏ Ãâ
·ÂÀ» À§ÇØ ofstream °´Ã¼¸¦ »ç¿ëÇÏ°í ÀÖ´Ù.

*soonwi
ƯÁ¤ Á¡¼ö°¡ ¸îµîÀÎÁö scorestruct ±¸Á¶Ã¼¸¦ Á¶»çÇؼ­ °¡·Á³½´Ù. ÀÌ ÇÔ¼ö´Â
Á¡¼ö¸¦ °»½ÅÇÒ °ÍÀΰ¡, °ÔÀÓ Á¾·á ÈÄ »ç¿ëÀڷκÎÅÍ À̸§À» ÀԷ¹ÞÀ» °ÍÀΰ¡,
µî¿¡ ´ëÇÑ Á¶°Ç ÆÇ´Ü¿¡ »ç¿ëµÈ´Ù. 10µî ¾ÈÂÊ¿¡ µé¾ú´Ù¸é Á¡¼ö¸¦ °»½ÅÇØ¾ß ÇÏÁö
¸¸ 10µî ¹ÛÀÇ Á¡¼ö¶ó¸é µ¥ÀÌÅÍ ÆÄÀÏÀ» °»½ÅÇÒ ÇÊ¿äµµ ¾ø°í À̸§À» ÀԷ¹ÞÀ» ÇÊ
¿äµµ ¾ø´Ù.

*insert
»õ·Î ¸¸µé¾îÁø Á¡¼ö¸¦ scorestruct¿¡ »ðÀÔÇÑ´Ù. »ðÀÔÇϱâ Àü¿¡ soonwi ÇÔ¼ö¸¦
ºÒ·¯ °ú¿¬ »ðÀÔÇÒ ¸¸ÇÑ Á¡¼ö°¡ µÇ´ÂÁö¸¦ ¸ÕÀú Á¶»çÇغ¸°í 10µî ¾È¿¡ µé¾î¾ß »ð
ÀÔÇÑ´Ù. ¸¸¾à 10µî ¾ÈÀÇ Á¡¼ö°¡ µÇ¾î ÀÌ Á¡¼ö°¡ scorestruct ±¸Á¶Ã¼¿¡ »ðÀÔµÉ
°æ¿ì´Â ¹Ýµå½Ã ±¸Á¶Ã¼ ³»ÀÇ ÀÌ Á¡¼öº¸´Ù ¸øÇÑ Á¡¼ö´Â ¹Ð·Á³ª¾ß ÇÑ´Ù. ÇÑ Á¡¼ö
°¡ 10µî ¹üÀ§ ¾È¿¡ µé°Ô µÇ¸é Á¦ÀÏ ²ÃÂîÀÎ Á¡¼ö°¡ ¹Ð·Á³ª°Ô µÉ °ÍÀÌ´Ù.
±×·¡¼­ »ðÀÔÇÏ´Â ¾Ù°Å¸®µëÀº ¹Ð·Á³ª¾ß ÇÒ Á¡¼ö¸¦ ã¾Æ ±× Á¡¼ö°¡ ±â·ÏµÇ¾î ÀÖ
´ø ÀÚ¸®¿¡ »õ·Î¿î Á¡¼ö¸¦ µ¤¾î¾²´Â °£´ÜÇÑ ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. À̶§ Á¤·Ä¿¡ °üÇØ
¼­´Â ÀüÇô °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. scorestruct´Â »óÀ§ 10µîÀÇ Á¡¼ö¸¦ º¸°üÇϱâ
¸¸ ÇÏ¸é µÇ¸ç ²À Á¡¼ö°¡ ³ôÀº ¼ø¼­´ë·Î Á¤·ÄµÇ¾î ÀÖ¾î¾ß ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
¿Ö³ÄÇϸé Á¡¼öÀÇ Á¤·ÄÀº Á¡¼ö¸¦ Ãâ·ÂÇÒ ¶§ Çϵµ·Ï ¼³°è°¡ µÇ¾ú±â ¶§¹®ÀÌ´Ù.
¾îÂ÷ÇÇ Á¡¼ö°¡ Ãâ·ÂµÇ´Â ½ÃÁ¡¿¡¼­¸¸ Á¤·ÄµÇ±â¸¸ ÇÏ¸é µÇÁö ³»ºÎÀûÀ¸·Î ¾î¶»°Ô
ÀúÀåµÇ¾î Àִ°¡°¡ Áß¿äÇÑ °ÍÀº ¾Æ´Ï´Ù.

*out
È­¸é¿¡ Á¡¼ö¸¦ Ãâ·ÂÇÑ´Ù. scorestructÀÇ ³»¿ëÀ» ÀÐ¾î ¼ø¼­´ë·Î È­¸éÀ¸·Î Ãâ·Â
ÇØÁֱ⸸ Ç쵂 ÀÌ¿ÕÀ̸é Á¡¼ö°¡ ³ôÀº ¼ø¼­´ë·Î Á¤·ÄÇؼ­ º¸¿©ÁÖ´Â °ÍÀÌ ´õ ÁÁ
´Ù. ±×·¡¼­ Ãâ·ÂÇϱâ Àü¿¡ scorestruct¿¡ ±â·ÏµÇ¾î ÀÖ´Â Á¡¼öµéÀ» Á¤·ÄÇÑ´Ù.
Á¤·Ä¿¡ »ç¿ëµÈ ¾Ù°Å¸®µëÀº °¡Àå °£´ÜÇÑ, ±×·¡¼­ °¡Àå È¿À²ÀÌ ³ª»Û bubble sort
¸¦ »ç¿ëÇÑ´Ù.  °Ü¿ì 10°³ÀÇ ÀڷḦ Á¤·ÄÇϴµ¥ µ¢Ä¡ Å« Á¤·Ä ¾Ù°Å¸®µëÀ» ¾²´Â
°Íº¸´Ù´Â ´ëÃæ Á¤·ÄÇÏ´õ¶óµµ ±Ý¹æ ¸¸µé ¼ö ÀÖ´Â °ÍÀÌ ´õ ÁÁ´Ù.
bubble sort°¡ ¾Æ¹«¸® ´À¸®´Ù°í Çصµ ÀÌ °æ¿ì´Â ÀÚ·á°¡ Àû¾î¼­ Á¤·ÄÇÏ´Â ½Ã°£
ÀÌ °ÅÀÇ »ç¶÷ÀÌ ´À³¥ ¼ö ¾øÀ» Á¤µµ·Î ºü¸£±â ¶§¹®¿¡ ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. È­¸é
À¸·Î Ãâ·ÂÇÏ´Â ¹®ÀåÀº ¾ÆÁÖ °£´ÜÇÑ iostream Ãâ·Â¹®ÀÌ´Ù. ´ÙÀ½ ¸®½ºÆ®°¡ ÀÌ ¿¹
Á¦ÀÇ main ÆÄÀÏÀÌ´Ù. Áß¿äÇÑ ÄÚµåÀÇ ´ëºÎºÐÀÌ Å¬·¡½º·Î ³Ñ¾î°¬À¸¹Ç·Î ºñ±³Àû
Å©±â°¡ ÀÛ´Ù.


/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/* SHTET2.CPP                                                 */
/* TEXT»ó¿¡¼­ ±¸ÇöµÇ´Â °£´ÜÇÑ TETRIS °ÔÀÓ.±³À°¿ëÀ¸·Î Á¦ÀÛ     */
/* ¿ø·¡ C¿ëÀ¸·Î ¸¸µé¾ú´ø shtet1.c¸¦ versionÇÑ °ÍÀÓ            */
/* PROGRAMMER:±è »óÇü. 1994.7.14                              */
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
#include <graphics.h>
#include "brick.h"
#include "score.h"

int inkey();
void printstage();
void textline(int type,int x1,int y1,int x2,int y2);
void gameover();

#define LEFT 75         /* Å°º¸µåÀÇ ÄÚµå Á¤ÀÇ. ÀÌ·¸°Ô Á¤ÀÇ */
#define RIGHT 77        /* ÇØµÎ¸é ´ÙÀ½¿¡ ¾µ ¶§ Æí¸®ÇÏ´Ù.   */
#define UP 72
#define DOWN 80
#define SPACE 32
#define ESC 27

int tet[14][25];        /* °ÔÀÓÆÇ ¹è¿­ */
/* °¢ º®µ¹ÀÇ ÆÐÅÏ ¹è¿­. ÇÑ  º®µ¹´ç 8¹ÙÀÌÆ®¾¿À̸ç ȸÀü
  ¸ð¾çÀÇ °³¼ö¿¡ µû¶ó      */
/* º®µ¹´ç dataÀÇ °³¼ö°¡ ´Ù¸£´Ù.  °¢ °ªÀº Áß½ÉÁ¡¿¡¼­ÀÇ
  »ó´ëÀûÀÎ °Å¸®ÀÌ´Ù.      */
/* È­¸é ÁÂÇ¥»óÀÇ  °ªÀÌ´Ù.  */
/* ¸ðµÎ 9°³ÀÇ º®µ¹ÀÌ Á¤ÀǵǾî ÀÖ´Ù.              */
int pat[9][32]={
 {0,0,2,0,4,0,-2,0,0,0,0,1,0,-1,0,-2,},
 {0,0,2,0,0,1,2,1,},
 {0,0,-2,0,0,-1,2,-1,0,0,0,1,-2,0,-2,-1,},
 {0,0,-2,-1,0,-1,2,0,0,0,-2,0,-2,1,0,-1,},
{0,0,0,-1,2,0,4,0,0,0,-2,0,0,-1,0,-2,0,0,
-2,0,-4,0,0,1,0,0,2,0,0,1,0,2},
{0,0,-2,0,-4,0,0,-1,0,0,-2,0,0,1,0,2,0,0,
0,1,2,0,4,0,0,0,2,0,0,-1,0,-2},
{0,0,-2,0,2,0,0,1,0,0,0,-1,0,1,2,0,0,0,-2,
0,2,0,0,-1,0,0,-2,0,0,-1,0,1},
 {0,0,0,0,0,-1,2,0,0,0,0,0,-2,0,0,-1,0,0,
 0,0,0,1,-2,0,0,0,0,0,0,1,2,0},
 {0,0,0,0,0,0,0,0}
 };
int brickpatnum[9]={2,1,2,2,4,4,4,4,1};  /* °¢ º®µ¹ÀÇ ÆÐÅÏ °³¼ö*/

int score=0;
int preload;            // ¹Ì¸® ½×¾Æ³õÀ» º®µ¹ÀÇ °³¼ö
int gd,gm;
int de,nowdelay;        // ´ÊÃãÀ» ÁÖ±â À§ÇÑ ·çÇÁÀÇ Á¦¾î º¯¼ö
Score SCORE;
char name[128];

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


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