亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言怎么實現打磚塊游戲

發布時間:2022-05-11 15:29:14 來源:億速云 閱讀:136 作者:iii 欄目:開發技術

這篇文章主要介紹“C語言怎么實現打磚塊游戲”,在日常操作中,相信很多人在C語言怎么實現打磚塊游戲問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言怎么實現打磚塊游戲”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

效果如下:

C語言怎么實現打磚塊游戲

代碼:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>

int score;
int ball_row, ball_col;
int ball_vv, ball_vh;
int area_height, area_width;
int baffle_col, baffle_row, baffle_size;
int brick_col, brick_row;
bool isLose;

void gotoxy(int x, int y) {
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(handle, pos);
}
void HideCursor() {
    CONSOLE_CURSOR_INFO cursor_info = { 1,0 };
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}

void startup()
{
    area_height = 20;
    area_width = 40;
    ball_row = area_height / 2;
    ball_col = area_width / 2;
    ball_vv = 1;
    ball_vh = 1;

    baffle_col = area_width / 2;
    baffle_row = area_height - 2;
    baffle_size = 8;
    
    brick_row = 1;
    brick_col = rand() % area_width;

    score = 0;
    isLose = false;
}

void show()
{
    gotoxy(0, 0);
    int i, j;
    //system("cls");
    for (i = 0; i <= area_height; i++)
    {
        for (j = 0; j <= area_width; j++)
        {
            if (i == ball_row && j == ball_col)
            {
                printf("O");
            }
            else if (i == 0 || i == area_height)
                printf("-");
            else if (j == 0 || j == area_width)
                printf("|");
            else if (i == baffle_row && (j >= baffle_col && j <= baffle_col + baffle_size))
                printf("=");
            else if (i == brick_row && j == brick_col)
                printf("#");
            else printf(" ");
        }
        printf("\n");
    }
    printf("score:%d\n", score);
}

void updateWithhoutInput() {
    static int count = 0;

    if(count % 5 == 0){
        ball_col += ball_vh;
        ball_row += ball_vv;
    }
    
    if (ball_col == 0 + 1 || ball_col == area_width - 1)//vh changed
        ball_vh *= -1;
    if (ball_row == 0 + 1 /*|| ball_row == area_height - 1*/)//vv changed
        ball_vv *= -1;
    if (ball_row == baffle_row - 1 && (ball_col >= baffle_col && ball_col < baffle_col + baffle_size))//在baffle上一行就判斷碰撞。 
        ball_vv *= -1;
    // 磚塊的左,右,下左,下,下右可以檢測到碰撞 
    if ((ball_row == brick_row + 1 && (ball_col >= brick_col - 1 && ball_col <= brick_col + 1))||(ball_row == brick_row && (ball_col == brick_col - 1 || ball_col==brick_col+1))) {
        ball_vv *= -1;
        brick_row = -1;
        score += 10;
        brick_row = 1;
        brick_col = rand() % area_width;
    }

    if (ball_row >= area_height)
        isLose = true;
        
    count++;
}

void updateWithInput() {


    char input;
    if (kbhit()) {
        input = getch();
        switch (input)
        {
        case 'a': if (baffle_col > 0 + 1)baffle_col--; break;
        case 'w': if (baffle_row > 0 + 1)baffle_row--; break;
        case 'd': if (baffle_col < area_width - baffle_size - 1)baffle_col++; break;
        case 's': if (baffle_row < area_height - 1)baffle_row++; break;

        default:
            break;
        }
    }
}

int Lost(){
    if(ball_row > area_height)
        return 1;
    return 0;
}

int IsFinish() {//游戲是否結束 
    if (score == 100) {
        system("cls");
        printf("congretulations!!!");
        score = 0;
        _sleep(500);//先暫停在現實符合人性化 
        system("pause");
        return 1;
    }
    else if (Lost() == 1) {
        system("cls");
        printf("you have lost!!!");
        score = 0;
        _sleep(500);
        system("pause");
        return 1;
    }
    return 0;
}


int main()
{
    HideCursor();
    startup();
    while (1)
    {
        show();
        updateWithInput();
        updateWithhoutInput();
        if(IsFinish() == 1){
            startup();
            continue;
        }
    }
    return 0;
}

到此,關于“C語言怎么實現打磚塊游戲”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泸溪县| 梁平县| 天等县| 富锦市| 巴林右旗| 神木县| 曲麻莱县| 城口县| 汾西县| 武汉市| 晋州市| 永安市| 东兰县| 涿州市| 新昌县| 自贡市| 华蓥市| 峨山| 涿鹿县| 永丰县| 会昌县| 郓城县| 丰城市| 福安市| 恩平市| 汉川市| 伊春市| 调兵山市| 宣武区| 温宿县| 麻城市| 滦南县| 思南县| 连云港市| 台东县| 武定县| 东山县| 太保市| 合肥市| 甘洛县| 昌平区|