디시인사이드 갤러리

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

갤러리 본문 영역

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

도딱는지수갤로그로 이동합니다. 2010.11.11 06:45:31
조회 128 추천 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 - -
228943 형들 다 퇴근했나보네 [1] 르하소갤로그로 이동합니다. 11.01.04 60 0
228942 Hello, World! [1] 미분방정싴갤로그로 이동합니다. 11.01.04 69 0
228941 ㅠㅠ...알고리즘은 지루해.... [1] ㄴㄴ(119.196) 11.01.04 91 0
228939 후 계속 모니터만봤더니 머리아프다 [2] 꿀레갤로그로 이동합니다. 11.01.04 74 0
228937 형들 이제 대학 입학하는데 학원은 갈 필요가 있어? [4] 맨쉽갤로그로 이동합니다. 11.01.04 79 0
228936 C하나로 자그만한게임만들수잇음? [5] 555(119.203) 11.01.04 168 0
228935 c,c언어,c++ 차이점이머임?? [5] 555(119.203) 11.01.04 345 0
228934 변덕이 심해서 한때는 꿈이 그래픽디자이너 였지 말입니다. [3] 기적의 길(111.65) 11.01.04 126 0
228933 자기전 노래 한곡. PoIU(123.213) 11.01.04 46 0
228931 요즘 구제역이 난린데... 르하소갤로그로 이동합니다. 11.01.04 57 0
228930 대학 가기전에 하면 좋을게 뭐가 있을지 알려주세요! [3] 미분방정싴갤로그로 이동합니다. 11.01.04 86 0
228929 자바스크립트로 웹에서 XML 불러와서 파싱할 수 있음? [4] 써니덕후갤로그로 이동합니다. 11.01.04 248 0
228928 근데 문과애들은 프로그래밍같은거 공부할대 어떠케함? [3] a(119.64) 11.01.04 137 0
228922 c언어같은거 독학할수 있어? [8] w(119.64) 11.01.04 200 0
228921 긔엽긔는 거꾸로 해도 긔엽긔 [2] Rei@디씨갤로그로 이동합니다. 11.01.04 139 0
228920 덕짤 싸고 학교로 고 [2] 땡칠도사갤로그로 이동합니다. 11.01.04 120 0
228918 횽들. 웹플머 단기알바 얼마받는게 적당함요? [15] 꾸루룽갤로그로 이동합니다. 11.01.04 220 0
228917 문자배열이름 (첫번째 포인터) 랑 배열자체의 주소 이게 해깔린데 [4] 두사늬(210.107) 11.01.04 84 0
228916 안녕하세요 고등학생이 앞으로 진로에 관해 질문드려요(안묻혔으면...ㅠ) [20] bob(118.46) 11.01.04 240 0
228915 이거보고 3D찬양이나 하시죠 [3] 꿀레갤로그로 이동합니다. 11.01.04 183 0
228914 IT보안쪽에서도 오프라인의 세스코나 에스원같은 [1] Finalizer갤로그로 이동합니다. 11.01.04 143 0
228913 감동입니다. [3] 우분투짱(174.21) 11.01.04 129 0
228912 횽들 JUnit 이거 어떻게 써야 잘썼다고 소문날까연 [2] 온순한감자갤로그로 이동합니다. 11.01.04 114 0
228911 ㅄ같은 해커대학 이런데 교과과정이 [3] 왁스맛치즈갤로그로 이동합니다. 11.01.04 200 0
228910 내가 뉴비라서 잘모르긴하는데 [3] 두사늬(210.107) 11.01.04 113 0
228908 내가 이놈 얼굴을 밝혀내고 싶은데.. [4] BTTTS!갤로그로 이동합니다. 11.01.04 207 0
228907 와.. 힐버스갤로그로 이동합니다. 11.01.04 45 0
228906 요새 복학준비 한답시고 수학땜에 스트레스 받는데 돌겠네요.. [2] ㅇㅇㅇㅇ(219.250) 11.01.04 120 0
228905 봇은 왜돌리는걸까요 [2] 풋사과1갤로그로 이동합니다. 11.01.04 100 0
228904 웹봇 뭐지.. [2] SODmaster갤로그로 이동합니다. 11.01.04 139 0
228902 님들의 대학교시절 하루 평균 공부 시간은?? [9] 컴돌이(58.77) 11.01.04 219 0
228901 랩톱은 목 건강에 안 좋은 것 같네요. [4] 우분투짱(174.21) 11.01.04 111 0
228900 일그만둔거 조금은 후회된다 ㅠㅠ [2] 꿀레갤로그로 이동합니다. 11.01.04 119 0
228899 [IT취업희망자 ] 정보보안전문가 진로컨설팅 진로상담 [7] 중앙인(211.183) 11.01.04 165 0
228898 [정보보안세미나] 2011년도를 강타할 해킹기법 [16] 중앙인(211.183) 11.01.04 232 0
228897 심심한데 우리 봇이나 할까? [18] 르하소갤로그로 이동합니다. 11.01.04 228 0
228896 라이브러리 의존성을 보니 기가 죽네요 [2] 우분투짱(174.21) 11.01.04 128 0
228895 형들중에 봇짐장수 해본형들 있어? [3] 꿀레갤로그로 이동합니다. 11.01.04 115 0
228894 오늘의 생산적인 일과, 질문 두가지만 답변 부탁드려요 [15] 기적의 길(111.65) 11.01.04 169 0
228893 전산 영어사전 사이트 없슴미콰? [3] ㅎㅋㅍㅋ냥(123.215) 11.01.04 89 0
228892 이런건 어느정도의 실력을 요구하는걸까? [12] 12324갤로그로 이동합니다. 11.01.04 320 0
228891 형들... 스탑워치...어플... [8] 다소미럭키갤로그로 이동합니다. 11.01.04 106 0
228888 오빠야 짱 멋있어 분당살람갤로그로 이동합니다. 11.01.04 90 0
228887 봇이다! [10] elwlwlwk갤로그로 이동합니다. 11.01.04 130 0
228886 빅뱅이론에 나오는 애들 [3] 분당살람갤로그로 이동합니다. 11.01.04 159 0
228885 이렇게 잠 많이 자도 괜찮은지... [3] 컴돌이(58.77) 11.01.04 131 0
228880 이 책이 땡긴다.. [12] Finalizer갤로그로 이동합니다. 11.01.04 264 0
228879 외계인갤 [2] elwlwlwk갤로그로 이동합니다. 11.01.04 107 0
228878 학교에서 애들끼리 농담하기를 [3] 할리의본링갤로그로 이동합니다. 11.01.04 137 0
228877 이런 시방 다음웹툰 브이 다봤더니 [1] 꿀레갤로그로 이동합니다. 11.01.04 130 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2