|
아 ㅋㅋㅋ 제가 따로 과에서동아리로 하는게있는데
행님이 한번정하면 바꾸지말라고-_-... 멋도모르고했다가...
사정했는데도 안되네요 나중에도 그럴꺼냐면서... 하..
:
: 박태호 님이 쓰신 글 :
: : #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();
: : }
: : }
: :
: :
: : 이소스를 빌더로 돌려볼려고하는데 가능한건가요? 한번도 못써봐서요.. 꼭빌더로해야하는데.. 휴...
: :
: : 어디 강좌같은거없나요 빠르게 익혀야해서요..
|