디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

심심해서 만들어본 슈팅게임

도딱는지수갤로그로 이동합니다. 2010.11.11 06:45:31
조회 130 추천 0 댓글 2

#include <turboc.h>
#define SMAX 12
#define BMAX 64

 


struct node{
 int x;
 int y;
 int direct;
 int flag;
 int speed;
 int speedTmp;
 char * shape;
};

 


struct bal{
 int x;
 int y;
 int flag;
 int life;
};


void printship(struct node tmp, int flag){
 int j;
 gotoxy(tmp.x,tmp.y);
 if(flag){
  puts(tmp.shape);
 }else{
  for(j=0;j<strlen(tmp.shape);j++){
   putchar(\' \');
  }
 }
}
void printball(struct bal tmp, int flag){
 gotoxy(tmp.x,tmp.y);
 if(flag){
  putchar(\'*\');
 }else{
  putchar(\' \');
 }
}
void printshot(struct bal tmp, int flag){
 gotoxy(tmp.x,tmp.y);
 if(flag){
  putchar(\'!\');
 }else{
  putchar(\' \');
 }
}
void printavatar(int x,int y, char * avatar,int flag){
 int j;
 gotoxy(x,y);
 if(flag){
  puts(avatar);
 }else{
  for(j=0;j<strlen(avatar);j++){
   putchar(\' \');
  }
 }
}

 


int main(void){
 char *enemy[5] = {"~m<..>m~","(--0--)","m<..>m","<==T==>","<@@.@@>"};
 char *avatar = "(--I--)";
 struct node ship[SMAX];
 struct bal ball[BMAX];
 struct bal shoot;
 int i,j;
 int shipCnt, ballCnt;
 int x,y;
 int cnt,score;
 int n,m;
 char key;

 


 for(i=0;i<SMAX;i++){
  ship[i].y = i;
  ship[i].flag = 0;
 }

 


 for(i=0;i<BMAX;i++){
  ball[i].flag = 0;
 }

 


 shipCnt = ballCnt = 0;
 x = 0;
 y = 20;
 shoot.flag = 0;

 


 cnt = score = 0;
 printavatar(x,y,avatar,1);
 gotoxy(40,21);
 printf("Score : %d",score);
 m = 2;
 j = 1;
 while(1){
  Sleep(10);
  //적 기체 출현!!
  m = 2 + score / 100;


  if(j && score == 100){
   j = 0;
   system("color a");
  }
  
  for(i=0;i<m;i++){
   cnt++;
   if(cnt > 100){
    cnt = 0;
    n = baserand(0,SMAX-1);
    if(ship[n].flag == 0){
     ship[n].flag = 1;


     if(baserand(0,1)){
      ship[n].x = 0;
      ship[n].direct = 1;
     }else{
      ship[n].x = 40;
      ship[n].direct = -1;
     }
     ship[n].speed = ship[n].speedTmp = baserand(2,10+score/20);
     ship[n].shape = enemy[baserand(0,4)];
     printship(ship[n],1);
    }
   }
  }
  
  //키보드 입력

 


  if(kbhit()){
   key = getch();
   if(key == -32){
    key = getch();
    switch(key){
     case LEFT:
      if(x !=0){
       printavatar(x,y,avatar,0);
       x--;
       printavatar(x,y,avatar,1);
      }
      break;
     case RIGHT:
      if(x != 40){
       printavatar(x,y,avatar,0);
       x++;
       printavatar(x,y,avatar,1);
      }
      break;
    }
   }else if(key == \'q\'){
    gotoxy(0,21);
    printf("프로그램 종료합니다.\\n");
    return 0;
   }else if(key == \' \'){
    if(shoot.flag == 0){
     shoot.flag = 1;
     shoot.x = x+3;
     shoot.y = 19;
     shoot.life = 3;
     printshot(shoot,1);
    }
   }
  }

 


  //이동 처리
  for(i=0;i<SMAX;i++){
   if(ship[i].flag){
    ship[i].speedTmp--;
    if(ship[i].speedTmp == 0){
     printship(ship[i],0); //삭제
     ship[i].speedTmp = ship[i].speed;
     ship[i].x += ship[i].direct;


     if(ship[i].x == -1 && ship[i].direct == -1){
      ship[i].flag = 0;
     }else if(ship[i].x == 41 && ship[i].direct == 1){
      ship[i].flag = 0;
     }else{
      printship(ship[i],1); //출력
     }


     if(baserand(0,10)==0){
      n = baserand(0,BMAX);


      if(ball[n].flag == 0){
       ball[n].flag = 1;
       ball[n].life = 10; //적 총알 속도
       ball[n].x = ship[i].x+3;
       ball[n].y = ship[i].y+1;
      }
     }
    }


    if((ship[i].x <= shoot.x) && ((strlen(ship[i].shape)+ship[i].x) > shoot.x) && (ship[i].y == shoot.y)){
     ship[i].flag = 0;
     printship(ship[i],0); //삭제
     gotoxy(40,21);
     printf("Score : %d",score);
     score++;
    }
   }
  }


  for(i<0;i<BMAX;i++){
   if(ball[i].flag){
    ball[i].life--;
    if(ball[i].life == 0){
     printball(ball[i],0); //삭제
     ball[i].y++;
     ball[i].life = 10;


     if(ball[i].y == 21){
      ball[i].flag = 0;
     }else{
      printball(ball[i],1); //출력
     }
    }

 

 


    if(ball[i].y == y && ball[i].x >= x && ball[i].x <= (strlen(avatar)+x-1)){
     gotoxy(x,y);
     printf("  펑!!   ");
     gotoxy(0,22);
     printf("끝..\\n");
     PAS;
     return 0;
    }
   }
  }

 


  if(shoot.flag){
   shoot.life--;
   if(shoot.life == 0){
    printshot(shoot,0);
    shoot.y--;
    if(shoot.y == -1){
     shoot.flag = 0;


    }else{
     printshot(shoot,1);
    }
    shoot.life = 1;
   }


  }


 }
 return 0;
}

문제점있으면 댓글로 알려줘요

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
229134 나 충격적인 소식을 들었어 [12] 넉넉한터갤로그로 이동합니다. 11.01.05 167 0
229133 mac 으로 django좀 공부해보려고하는데 진짜 ㅠㅠmysql부터 ㅠㅠ [5] ㅇㅇㅇ(219.241) 11.01.05 269 0
229132 8진 16진 표기법 짤수정했음. [21] 왁스맛치즈갤로그로 이동합니다. 11.01.05 167 0
229131 이유가 뭘까 mac osx 10.6에서 mac port 안깔리는이유가뭘까 [15] ㅇㅇㅇ(219.241) 11.01.05 86 0
229130 자판기커피마실때마다 궁금한게 [11] 르하소갤로그로 이동합니다. 11.01.05 186 0
229128 C언어 배우고 있는데요 [6] 히라링♪갤로그로 이동합니다. 11.01.05 174 0
229127 열혈강의 C언어 보는 초본데여 질문좀 해두될까여 ㅠ [5] (210.123) 11.01.05 193 0
229126 왜 더블 포인터는 그냥 포인터 선언과 다르게 하도록 한거죠? [25] 대시(123.143) 11.01.05 232 0
229124 푸하하하 [3] Finalizer갤로그로 이동합니다. 11.01.05 119 0
229123 21세기는 특급호텔 전산맨의 시대 [1] 분당살람갤로그로 이동합니다. 11.01.05 142 0
229122 방학이라 잠시 집에서 지내고 있는데 분당살람갤로그로 이동합니다. 11.01.05 85 0
229121 15 Useful Google Chrome Extensions for Web Designers and Developers [2] 갤러리갤로그로 이동합니다. 11.01.05 115 0
229120 이클립스 플러그인 까는게 왁스맛치즈갤로그로 이동합니다. 11.01.05 76 0
229118 쿡티비에 아즈망가대왕떳네 [4] 꿀레갤로그로 이동합니다. 11.01.05 103 0
229115 아.. BOF.. 십라.. [8] 넉넉한터갤로그로 이동합니다. 11.01.05 165 0
229114 arrTest[09] 가 컴파일 오류가 나는 이유. [12] nRESET갤로그로 이동합니다. 11.01.05 148 1
229113 실리콘 밸리에서 쓰는 45초 비즈니스 플랜 [2] Finalizer갤로그로 이동합니다. 11.01.05 169 0
229112 연봉 2800 준다는 자바 개발직을 거절했다. [2] Finalizer갤로그로 이동합니다. 11.01.05 479 0
229111 형들 나좀도와줘 [1] SGee갤로그로 이동합니다. 11.01.05 116 0
229110 으아으아으아응 [2] elwlwlwk갤로그로 이동합니다. 11.01.05 190 0
229109 ㅋㅋㅋㅋ이걸보고 더욱더 절망하라 [3] 꿀레갤로그로 이동합니다. 11.01.05 182 0
229108 내 여동생이 이렇게 귀여울 리 없어 [6] 유리한갤로그로 이동합니다. 11.01.05 270 0
229107 법사인채로 살기 vs 딴 남자랑 쎾쓰하는 여친이랑 살기 [5] 아주아슬갤로그로 이동합니다. 11.01.05 228 0
229106 신년맞이 달력.. [3] rntjr(121.190) 11.01.05 135 0
229105 싱글인채로 살기 vs 2시간반걸려도 원거리 연애 [12] 개쉛기갤로그로 이동합니다. 11.01.05 283 0
229104 횽들 안드로이드 말이야 TextView [5] 다소미럭키갤로그로 이동합니다. 11.01.05 162 0
229101 근데 아이폰 지금 터졌다는데 [8] 풋사과1갤로그로 이동합니다. 11.01.05 182 0
229100 님하들은 아이패드랑 갤탭중에 뭐가 더 좋다고봄? [12] 니카루갤로그로 이동합니다. 11.01.05 233 0
229099 아 씨바 올해 평가 개같이받았다 [1] ㅁㅁ(111.91) 11.01.05 147 0
229096 독학보다는 알바로라도 프로그래밍 일 하는게 낫지않나? [4] 니카루갤로그로 이동합니다. 11.01.05 204 0
229095 컴공가는 사람들은 몇살떄부터 배웠을까 [5] 풋사과1갤로그로 이동합니다. 11.01.05 275 0
229094 WSASend 질문입니다. [2] 카디군갤로그로 이동합니다. 11.01.05 197 0
229093 디씨가 성장할려면 VIP계정이 있어야해. [9] BTTTS!갤로그로 이동합니다. 11.01.05 178 0
229092 회사나 개인공부나 학교에서 무슨 프로그래밍하는지? [6] rails갤로그로 이동합니다. 11.01.05 206 0
229091 요즘에 웹하드에 디스크같은데에 자바 c 언어 같은 동영상 많던데 풋사과1갤로그로 이동합니다. 11.01.05 84 0
229089 나 1년 6개월 다녔는데 이번에 새로 들어온 신입이랑 연봉이 같아요 [33] ㅂㅂ(124.54) 11.01.05 502 0
229088 형들아 겁나 이상한게 하나있어 [4] 꿀레갤로그로 이동합니다. 11.01.05 150 0
229087 형님들, 자바 스트림으로 이미지 읽고 변환하기 질문합니다. [1] 에어로홍갤로그로 이동합니다. 11.01.05 196 0
229086 형들 취업에 대한 질문이있어 [1] 취업지망생(175.193) 11.01.05 132 0
229085 자바스크립트 말이여... [11] SODmaster갤로그로 이동합니다. 11.01.05 202 0
229084 뇌를 자극 하는 시리즈 좋음? [10] 이풍류(121.187) 11.01.05 236 0
229081 임베하는 횽들 내 기판 사진인데 [3] 116.44(116.44) 11.01.05 187 0
229080 뉴비들은 보세요. 배열 인덱싱 수준 검증 [7] nRESET갤로그로 이동합니다. 11.01.05 167 0
229079 사수라던가 상사는 중요한 것 같아. [17] 해일리갤로그로 이동합니다. 11.01.05 257 0
229078 아까글쓴이임.. [4] 컴공진학자(121.138) 11.01.05 166 0
229077 $this.nickName->look(); [3] 이바보닭(112.216) 11.01.05 89 0
229076 PATRAN 고수님들 제브랄 도와주세요. [4] LiHom갤로그로 이동합니다. 11.01.05 7797 0
229074 ㅅㅂ 자바 개발자 3명(하난 작년에 나랑 비슷하게 입사한)다 도망갔어 [9] ㅅㄱ(115.90) 11.01.05 342 0
229073 bit field 질문 하나 해봅니다. [6] nRESET갤로그로 이동합니다. 11.01.05 75 0
229072 오늘친구랑 놀러 야탑역갔는데 [8] 꿀레갤로그로 이동합니다. 11.01.05 144 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2