디시인사이드 갤러리

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

갤러리 본문 영역

횽들 c언어 소스짜는것좀 도와주셈 ㅠㅠ..

c언어(115.21) 2011.12.14 16:19:45
조회 50 추천 0 댓글 0

지금 학교에서 내가 c언어 소스짜서 발표해야하는데 너무 막막함 ㅠㅠ


일단 밑에있는 소스는 블록쌓기 게임 소스임
 
근데 거기서 내가 새롭게 소스를 추가해서 몇가지를 개선해야함


이게 그 개선사항임

 

1. 등장하는 블록의 개수를 직접 입력하여 조절 할 수 있다.

2. 기존에 한 개의 블록이 내려왔다면, 이번엔 다양한 크기와 모양의 블록이 출현하게 한다. (ex. 테트리스)

3. 폭탄 아이템이 등장한다. (떨어지면 좌우로 3칸씩 폭발)


c언어 잘하는 횽들 제발 도와주셈..



#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <windows.h>

#define box_length 15 //게임의 영역(좌우 길이)
#define box_height 15 //바닥의 높이(상하 길이)

void intro_game(void);
void game_control(void);
void gotoxy(int x, int y);
int left_right_move(void);
void move_down(int x);
void draw_rectangle(int c, int r);
int max_block(void);
int boom(void);
void viewtime(time_t start);

int block_stack[box_length*2+1]={0}; // 해당위치의 블록을 누적
time_t starttime;

int main(void)
{
    intro_game();
    game_control();
    gotoxy(1, box_height+3);
    printf("game이 종료되었습니다.                 \\n");
    return 0;
}

void intro_game(void)
{
    [...];
    printf("블록쌓기 \\n\\n");
    printf("블록이 좌우로 움직일때 스페이스키를 누르면\\n");
    printf("블록이 떨어져 바닥에 쌓입니다.\\n\\n");
    printf("아무키나 누르면 게임을 시작합니다. \\n");
    getch();
}

void game_control(void)
{
    int x, count=0;
    int ret, score=0;

    [...];

    starttime = time(0);


    draw_rectangle(box_length, box_height);
    gotoxy(box_length*2+5,3);
    printf("블록의 개수: %2d", box_height);
    gotoxy(1, box_height+3);
    printf("스페이스키를 누르면 블록이 떨어지고\\n");
    printf("바닥에 쌓입니다. \\n");
    while(count<box_height)
    {
        gotoxy(box_length*2+5,4);
        printf("시도한 횟수: %2d", count+1);
        gotoxy(box_length*2+5,5);
        printf("쌓인 블록수: %2d", max_block());
        gotoxy(box_length*2+5,6);
        printf("점수: %2d", score);

        viewtime(starttime);

        x=left_right_move();
        move_down(x);
        count++;
        ret = boom();
        if ( ret == 1) score++;

        getch();
    }
}


//시간 표시
void viewtime(time_t start)
{   
    gotoxy(box_length*2+5,2);
    //시간표시
    printf("게임시간 : %d", time(0) - start);
}


int max_block(void)
{
    int i, max=0;
    for(i=1;i<box_height*2+1;i++)
    {
        if (max<=block_stack[i])
            max=block_stack[i];
    }
    return max;
}


int left_right_move(void)
{
    int x=3, y=2, temp=2;

    do
    {
        x+=temp;
        if (x>(box_length*2)) //x방향 최대값 설정
            temp=-2;
        if (x<3)
        {
            x=3;
            temp=2;
        }

        gotoxy(x, y);
        printf("□");
        Sleep(50); //블록이 좌우로 움직이는 속도를 조절
       
        gotoxy(x, y);
        printf("  ");
       
        viewtime(starttime);

    }while(!kbhit());
    block_stack[x]+=1;
    return x;
}

void move_down(int x)
{
    int y;
    for(y=2;y<box_height+2-block_stack[x];y+=1)
    {
        gotoxy(x, y);
        printf("□");
        Sleep(20);
        gotoxy(x, y);
        printf("  ");
        Sleep(10);
    }
    gotoxy(x,box_height+2-block_stack[x]);
    printf("□");
}

void gotoxy(int x, int y)
{
   COORD Pos = {x - 1, y - 1};
   SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}

void draw_rectangle(int r, int c)
{

    int i, j;
    unsigned char a=0xa6;
    unsigned char b[7];

    for(i=1;i<7;i++)
        b[i]=0xa0+i;

    printf("%c%c",a, b[3]);
    for(i=0;i<r;i++)
        printf("%c%c", a, b[1]);
    printf("%c%c", a, b[4]);
    printf("\\n");

    for(i=0;i<c;i++)
    {
        printf("%c%c", a, b[2]);
        for(j=0;j<r;j++)
            printf("  ");
        printf("%c%c",a, b[2]);
        printf("\\n");
    }
    printf("%c%c", a, b[6]);
    for(i=0;i<r;i++)
        printf("%c%c", a, b[1]);
    printf("%c%c", a, b[5]);
    printf("\\n");
}


//없앨 라인 확인.
int boom(void)
{
    int i, j, line;
    int flag1=0, flag2=0;
    int ret=0;
   
   
    for(i=3; i<=box_length*2+1; i+=2)
    {
        flag1 = 0;
        if ( block_stack[i] == 0 ) continue;
        if ( block_stack[i] >= 3 ) flag1 = 1;

        flag2 = 0;
        if ( i+4 <= box_length*2 )
        {
            if ( block_stack[i+0] > 0 &&
                 block_stack[i+2] > 0 &&
                 block_stack[i+4] > 0
                )
            {
                flag2 = 1;
                if ( flag1 == 1 ) block_stack[i+0]-=3;
else block_stack[i+0]--;

                block_stack[i+2]--;
                block_stack[i+4]--;
            }
        }
   
        if ( flag2 == 0 && flag1 == 1 ) block_stack[i] -= 3;
        if ( flag1 == 1 || flag2 == 1 ) ret = 1;

    }
   
    line = box_height-1;
    for( i=3; i<=box_height+1; i++)
    {
        gotoxy(1, i);
        printf("│");
        for( j=3; j<=box_length*2+1; j+=2)
        {
            if ( block_stack[j] >= line ) {
                printf("□");
            } else {
                printf("  ");
            }
        }
        printf("│");
        line--;
    }
   
    return ret;
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 해외에서 겪는 불합리한 대우에 대응 잘 할 것 같은 스타는? 운영자 25/11/03 - -
AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
294457 해이애들아태트리스 [4] 컴쏘갤로그로 이동합니다. 11.12.15 72 0
294456 연봉협상 [2] 천회장(14.52) 11.12.15 100 0
294455 이쯤에서 적절한 구호를 외치자 거칠게갤로그로 이동합니다. 11.12.15 52 0
294452 아스야 안뇽! y녀6디리(220.118) 11.12.15 60 0
294451 클래스 다이어그램을 그려야 하는데.. Lover♥갤로그로 이동합니다. 11.12.15 55 0
294450 동양미래대 인터넷정보과 2년제 졸업한놈 초봉이 [2] DMW(143.248) 11.12.15 193 0
294449 으하하 니들 이거는 보고 글싸냐 ㅋㅋㅋ 충격과 공포다 ㅋㅋㅋㅋㅋ [1] 쿄스케갤로그로 이동합니다. 11.12.15 222 0
294447 ㅅㅂ VC# 2010 Express할 때 [8] 영양아래(58.73) 11.12.15 73 0
294444 유동닉이지만 9m(203.236) 11.12.15 39 0
294442 횽들아 이거 다들 읽어봐라. [8] 거칠게갤로그로 이동합니다. 11.12.15 151 1
294440 근데 여기서 질문하는건 문제가 있지만 컴공과 가기 전 준비를 해도 되요? [1] 123(121.170) 11.12.15 71 0
294439 아주아주아주아주 간단한건데 질문 하나만 할게요 [3] 9m(203.236) 11.12.15 75 0
294435 [한탄]나이먹은 지잡대 프로그래머는 치킨집이나 해야 [5] 마이티가이갤로그로 이동합니다. 11.12.15 195 0
294434 공부 더해야 할 것 같다... 9m(203.236) 11.12.15 64 0
294433 프로그래머 vs 컴퓨터 수리기사 (210.106) 11.12.15 131 0
294432 한심한 4년제졸 놈들아 봐봐 ㅋㅋㅋ [6] chleotlr(222.239) 11.12.15 244 0
294429 뿌로줴에에에에에에에엨뜨 땡칠도사갤로그로 이동합니다. 11.12.15 53 0
294428 파견업체에 다니는 횽들 있나여??? [3] 거칠게갤로그로 이동합니다. 11.12.15 109 0
294426 칼퇴근이 죄인가염? 'ㅅ' [5] 거칠게갤로그로 이동합니다. 11.12.15 125 0
294423 프로그래밍 질문이요. [3] --(210.107) 11.12.15 75 0
294422 약빤듯 [1] McHello갤로그로 이동합니다. 11.12.15 100 0
294418 일주일 만에 여친 만들기 [2] 거칠게갤로그로 이동합니다. 11.12.15 111 0
294416 짱깨 개발자 몰려오네 어쩌네 했던거 어찌 된거냐?? [5] 거칠게갤로그로 이동합니다. 11.12.15 147 0
294415 wpe잘하는횽들 좀도와줘 ㅠㅠ [8] 용장어(119.148) 11.12.15 95 0
294414 헉 그러고 보니!!!! [2] 거칠게갤로그로 이동합니다. 11.12.15 58 0
294413 요즘 사장 쇼키들은 배가 불러 터졌다!!! [5] 거칠게갤로그로 이동합니다. 11.12.15 133 0
294411 횽들 이것좀 돠와 줘봐봐~~ 준영(211.233) 11.12.15 35 0
294410 아 진짜 그만둔다 말하는것도 엄청난 용기가 필요하구나.. [3] 므해?갤로그로 이동합니다. 11.12.15 137 0
294409 C언어 왕초보가 질문좀드릴게요... [10] ㄴㄴㄴ(121.170) 11.12.15 123 0
294407 요즘 대중소 기업 연봉이 얼마나 되냐?? 신입기준 [5] 거칠게갤로그로 이동합니다. 11.12.15 275 0
294406 아이폰 어플 개발하는 사람 없는가 ?? 어플 등록하는건데 오류가 난다!! [3] 아잉폰(203.244) 11.12.15 79 0
294405 맥미니가 있는데도 불구하고 맥북에어가 사고 싶으면 이상한가염?? [1] 거칠게갤로그로 이동합니다. 11.12.15 91 0
294402 프겔 형들 좀 도와주세요!! 아나(202.31) 11.12.15 37 0
294401 선배님들 질문이 잇슴다..ㅠㅠ [2] 후배ㅠㅠ(112.219) 11.12.15 46 0
294399 어셈 잘하는 형 있어? [1] 5678(118.33) 11.12.15 63 0
294398 그리고 XML 에서 xsi:schemaLocation 은 뭐임영?ㅇㅇ? ፨백왕፨갤로그로 이동합니다. 11.12.15 54 0
294397 맥북 에어 사기 vs 아이패드2 사기 [2] 거칠게갤로그로 이동합니다. 11.12.15 99 0
294394 판올림이 원래 있던 말인가? [2] -ㅂ-(210.90) 11.12.15 48 0
294392 회사들 연봉 질문좀 할께 [5] 무명씨(211.115) 11.12.15 164 0
294390 올만에 병원가서 주사맞앗는데 [4] 싴보이갤로그로 이동합니다. 11.12.15 112 0
294389 꿈의 1400 [3] 리눅슽(121.186) 11.12.15 149 0
294388 진지하게 학교선택 도와주세요! [1] demlon갤로그로 이동합니다. 11.12.15 84 0
294386 나보다 한가한 사람있냐? [11] 개심심(61.73) 11.12.15 160 0
294384 프로젝트 한번 하면 산출물 잔뜩 작성하는 이유가 뭐야 ?? [1] 야요이갤로그로 이동합니다. 11.12.15 85 0
294383 형들 1's complement랑 2's complement 차이좀 [2] 도와줘(110.13) 11.12.15 66 0
294381 민방위 교육 왔는데 [6] 분당살람갤로그로 이동합니다. 11.12.15 101 0
294380 후.. 출근 :) +어게인갤로그로 이동합니다. 11.12.15 60 0
294377 아 시발 책상 업어야 겠다 [1] Adelposs갤로그로 이동합니다. 11.12.15 74 0
294375 오오 트리도 보고 케롤도 들었다 [1] 쿄스케갤로그로 이동합니다. 11.12.15 53 0
294372 형들 이거 풀어줘 뻥안치고 진짜 풀어주면 3만원 바로입금해줌 [2] 시발.(110.13) 11.12.15 101 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2