C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64385] 제발.. ㅜㅜ
박태호 [sleh] 873 읽음    2011-05-19 15:57
#include<stdio.h>
: : : #include<conio.h>
: : : #include<stdlib.h>
: : : #include<windows.h>
: : :
: : : #define SCREEN_X 12
: : : #define SCREEN_Y 28
: : : #define MAX_EN 3
: : : #define MAX_SPEED 100
: : : #define MIN_SPEED 2000
: : :
: : : char arr[SCREEN_X][SCREEN_Y],
: : :         en_xy[2][MAX_EN],
: : :      frame, life, player_st;
: : :     
: : : int i, h, score, speed;
: : : char player_x, player_y;
: : :
: : : void clear_arr(){
: : :     for(i=0; i<SCREEN_Y; i++)
: : :     {
: : :         for(h=0; h<SCREEN_X; h++)
: : :         {
: : :             arr[h][i]='"';
: : :         }
: : :     }
: : : }
: : :
: : : void reset()
: : : {   
: : :     for(i = 0; i < MAX_EN; ++i){
: : :         en_xy[0][i] = 100;
: : :     }
: : :     clear_arr();
: : :     player_x=SCREEN_X /2;
: : :     player_y=SCREEN_Y-8;
: : :     arr[player_x][player_y]='A';
: : :     life = 5;
: : :     score = 0;
: : :     frame = 0;
: : :     player_st = 0;
: : :     speed = MIN_SPEED;
: : : }
: : :
: : :
: : : void key()
: : : {
: : :     switch(getch()){
: : :         case 'K' :
: : :             if(player_x != 0) player_x-=3;
: : :         break;
: : :         case 'M' :
: : :             if(player_x !=9) player_x+=3;
: : :         break;
: : :         case 'r' :
: : :             if(life == 0) reset();
: : :         break;
: : :    }
: : : }
: : :
: : : void drowscreen()
: : : {
: : :     if(life == 0 && player_st >0){
: : :         arr[player_x][player_y]= (i%2 == player_st%2)?' ' : 'X';
: : :         arr[player_x+1][player_y]= (i%2 == player_st%2)?'X' : 'N';
: : :         arr[player_x][player_y+1]= (i%2 == player_st%2)?'N' : 'X';
: : :         arr[player_x+1][player_y+1]=(i%2 == player_st%2)?' ' : 'M';
: : :         arr[player_x+2][player_y+1]=(i%2 == player_st%2)?'N' : 'X';
: : :         arr[player_x][player_y+2]=(i%2 == player_st%2)?'X' : ' ';
: : :         arr[player_x+1][player_y+2]=(i%2 == player_st%2)?'N' : 'X';
: : :         arr[player_x][player_y+3]=(i%2 == player_st%2)?'X' : 'M';
: : :         arr[player_x+1][player_y+3]=(i%2 == player_st%2)?'N' : 'M';
: : :         arr[player_x+2][player_y+3]=(i%2 == player_st%2)?'X' : ' ';
: : :         player_st--;
: : :     }
: : :     else if(!player_st && !life == 0){
: : :         arr[player_x+1][player_y]='A';
: : :         arr[player_x][player_y+1]= (i%2 == frame%2)?'Z' : 'E';
: : :         arr[player_x+1][player_y+1]='A';
: : :         arr[player_x+2][player_y+1]=(i%2 == frame%2)?'Z' : 'E';
: : :
: : :         arr[player_x+1][player_y+2]='A';
: : :         arr[player_x][player_y+3]=(i%2 == frame%2)?'Z' : 'E';
: : :         arr[player_x+1][player_y+3]='A';
: : :         arr[player_x+2][player_y+3]=(i%2 == frame%2)?'Z' : 'E';
: : :     }
: : :     else if(player_st >0){
: : :         arr[player_x+1][player_y]= (i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x][player_y+1]= (i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x+1][player_y+1]=(i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x+2][player_y+1]=(i%2 == frame%2)?'N' : 'M';
: : :        
: : :         arr[player_x+1][player_y+2]=(i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x][player_y+3]=(i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x+1][player_y+3]=(i%2 == frame%2)?'N' : 'M';
: : :         arr[player_x+2][player_y+3]=(i%2 == frame%2)?'N' : 'M';
: : :         player_st--;
: : :     }
: : :    
: : :    
: : :     for(i = 0; i < MAX_EN; ++i){
: : :     if(en_xy[0][i] != 100)
: : :     {
: : :         arr[en_xy[0][i]+1][en_xy[1][i]] = 'E';
: : :         arr[en_xy[0][i]][en_xy[1][i]+1] = (i%2 == frame%2)?'Z' : 'E';
: : :         arr[en_xy[0][i]+1][en_xy[1][i]+1] = 'E';
: : :         arr[en_xy[0][i]+2][en_xy[1][i]+1] = (i%2 == frame%2)?'Z' : 'E';
: : :
: : :         arr[en_xy[0][i]+1][en_xy[1][i]+2] = 'E';
: : :         arr[en_xy[0][i]][en_xy[1][i]+3] = (i%2 == frame%2)?'Z' : 'E';
: : :         arr[en_xy[0][i]+1][en_xy[1][i]+3] = 'E';
: : :         arr[en_xy[0][i]+2][en_xy[1][i]+3] = (i%2 == frame%2)?'Z' : 'E';
: : :     }
: : :     }
: : :
: : :      for(i=0; i<SCREEN_Y-4; i++)
: : :      {
: : :          for(h=0; h<SCREEN_X; h++)
: : :         {
: : :             if(!(h % 3))
: : :             {
: : :                 printf("%s", (i%2 == frame%2)?"┃" : "  ");
: : :             }       
: : :            
: : :             switch(arr[h][i]){
: : :                 case'A':
: : :                     printf("▣");
: : :                     break;
: : :                  case'E':
: : :                     printf("□");
: : :                     break;
: : :                 case'Z':
: : :                     printf("■");
: : :                     break;
: : :                  case'N':
: : :                     printf("△");
: : :                     break;
: : :                 case'M':
: : :                     printf("▽");
: : :                     break;
: : :                 case'X':
: : :                     printf("※");
: : :                     break;
: : :                  default:
: : :                     printf("  ");               
: : :             }
: : :             
: : :         }
: : :         printf("%s", (i%2 == frame%2)?"┃" : "  ");
: : :        
: : :      switch(i){
: : :         case 0:
: : :         case 1:
: : :         printf("▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒", score);
: : :         break;
: : :         case 2:
: : :         printf("▒     ☜ 자동차 게임 ☞    ▒", score);
: : :         break;
: : :         case 3:
: : :         case 4:
: : :         case 5:
: : :         printf("▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒", score);
: : :         break;  
: : :         case 6:
: : :         printf("▒  SPEED: %3dKm            ▒", ((MIN_SPEED+400) - speed) / 10);
: : :         break;  
: : :         case 7:
: : :         printf("▒  SCORE: %5d            ▒", score);
: : :         break;
: : :         case 8:
: : :         printf("▒   LIFE: %5d            ▒", life);
: : :         break;
: : :         case 12:
: : :         printf("%s", (life == 0)? "▒    OH~ SHIT! GAME OVER   ▒" : "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒");
: : :         break;
: : :         case 13:
: : :         printf("%s", (life == 0)? "▒R키를 누르시면 계속됩니다!▒" : "▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒");
: : :         break;
: : :         default:
: : :         printf("▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒", score);
: : :        
: : :      }
: : :    
: : :    
: : :      printf("\n");
: : :      }
: : :
: : : }
: : :
: : : void en(){
: : :     if(!frame){
: : :     for(i = 0; i < MAX_EN; ++i){
: : :         if(en_xy[0][i] == 100)
: : :         {
: : :             en_xy[0][i] = (rand()%4)*3;
: : :             en_xy[1][i] = 0;
: : :             break;
: : :         }
: : :     }
: : :     }
: : :
: : :     for(i = 0; i < MAX_EN; ++i){
: : :         if(en_xy[0][i] != 100)
: : :         {
: : :             en_xy[1][i]++;
: : :            
: : :             if(en_xy[1][i]+3 >= player_y && en_xy[0][i] == player_x){
: : :                 life--;
: : :                 player_st = 10;
: : :                 en_xy[0][i] = 100;
: : :                 speed = MIN_SPEED;
: : :             }
: : :
: : :             if(en_xy[1][i] >= SCREEN_Y-4){
: : :                 en_xy[0][i] = 100;
: : :                 score += 50;
: : :             }
: : :         }
: : :     }
: : : }
: : :
: : : void gotoxy(int x, int y)
: : : {
: : :     COORD Cur;
: : :     Cur.X=x;
: : :     Cur.Y=y;
: : :     SetConsoleCursorPosition (GetStdHandle ( STD_OUTPUT_HANDLE),Cur);
: : : }
: : :
: : : void main()
: : : {
: : :     reset();
: : :     while(1)
: : :     {       
: : :         if(life)
: : :         {
: : :             en();   
: : :             frame = frame > 10? 0 : frame+1;
: : :             speed = (speed > MAX_SPEED)? speed-=7 : MAX_SPEED;
: : :             score++;           
: : :        
: : :         }       
: : :         gotoxy(0,0);
: : :         drowscreen();          
: : :         clear_arr();
: : :         for(i=0; i<speed; i++) if(kbhit()) key();   
: : :     }
: : : }
: : :
: : :
: : : 이소스를 빌더로 돌려볼려고하는데 가능한건가요? 한번도 못써봐서요.. 꼭빌더로해야하는데.. 휴...
: : :
: : : 어디 강좌같은거없나요 빠르게 익혀야해서요..

+ -

관련 글 리스트
64385 제발.. ㅜㅜ 박태호 873 2011/05/19
64389     Re:제발.. ㅜㅜ 아훗 882 2011/05/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.