C++開(kāi)發(fā)簡(jiǎn)易版俄羅斯方框(Window窗口版)

簡(jiǎn)述

個(gè)人理解,C++去掉面向?qū)ο笾R(shí)后就是C語(yǔ)言,在學(xué)習(xí)C++時(shí),如果有C語(yǔ)言基礎(chǔ),則在上手C++時(shí)是很快的。最近在學(xué)習(xí)C++,由于之前學(xué)過(guò)C語(yǔ)言,由于復(fù)習(xí)C語(yǔ)言,就開(kāi)發(fā)了一款簡(jiǎn)易版的俄羅斯方框,沒(méi)有界面運(yùn)行與window黑框程序。

功能敘述

常規(guī)的左移、右移、向下快速移動(dòng)以及翻轉(zhuǎn)變形。
    左移:鍵盤左鍵(鍵值——75)
    右移:鍵盤右鍵(鍵值——77)
    向下:鍵盤下鍵(鍵值——80)
    翻轉(zhuǎn):鍵盤上鍵(鍵值——72)

簡(jiǎn)圖

開(kāi)始圖形


start.jpg

  堆積圖形


common.png

  消除圖形
clear.png

使用方法

void gotoPosition(HANDLE hOut, int x, int y);
void traversalArrayBlock(HANDLE hOutput);
void initialSaveSpaceValue();
void traversalArray();
void assignValue(int iValue[4][4]);
void produceRandBlock();
void movePosition(int arrayBlock[4][4], int iDown_x, int iDown_y);
void clearBlock(int iDown_x, int iDown_y);
bool repeatDetection(int arayShowBlock[4][4], int iPos_x, int iPos_y);
bool borderDetection(int iDirection, int iPos_x);
void afterStopReset(int iPos_x, int iPos_y);
void changeCurentShape(int x, int y);
void  removeRaw();
bool checkGameOver();
void gameOver(HANDLE hOut);

main函數(shù)

int main(){
initial:
    HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    initialSaveSpaceValue();
    bool bIsStop = true;
    int iMove_x = 0, iMove_y = 0;
    int iTimerCount = 0;
    while (true){
        if (bIsStop){
            iMove_x = -2, iMove_y = 4;
            bIsStop = false;
            produceRandBlock();
            movePosition(g_middleData, iMove_x, iMove_y);//初始化第一個(gè)方塊位置。
            traversalArrayBlock(hOutput);
        }
        iTimerCount++;
        Sleep(100);
        if (iTimerCount == 10){
            iTimerCount = 0;
            clearBlock(iMove_x, iMove_y);
            iMove_x++;
            if (repeatDetection(g_middleData,iMove_x,iMove_y)){
                afterStopReset(iMove_x-1, iMove_y);
                removeRaw();
                if (checkGameOver()){
                    gameOver(hOutput);
                    goto initial;
                }
                bIsStop = true;
            }
            else{
                movePosition(g_middleData, iMove_x, iMove_y);
                traversalArrayBlock(hOutput);
            }
        }
        if (_kbhit()){
            int key = _getch();
            switch (key){
            case 72: //up
                changeCurentShape(iMove_x,iMove_y);
                break;
            case 75://left
                if (repeatDetection(g_middleData, iMove_x, iMove_y)){
                    if (borderDetection(0, iMove_x))
                        break;
                }
                clearBlock(iMove_x, iMove_y);
                iMove_y--;
                movePosition(g_middleData, iMove_x, iMove_y);
                traversalArrayBlock(hOutput);
                break;
            case 77://right
                if (repeatDetection(g_middleData, iMove_x, iMove_y)){
                    if (borderDetection(1, iMove_x)){
                        break;
                    }
                }
                clearBlock(iMove_x, iMove_y);
                iMove_y++;
                movePosition(g_middleData, iMove_x, iMove_y);
                traversalArrayBlock(hOutput);
                break;
            case 80://down
                clearBlock(iMove_x, iMove_y);
                iMove_x++;
                if (repeatDetection(g_middleData,iMove_x,iMove_y)){
                    afterStopReset(iMove_x-1, iMove_y);
                    removeRaw();
                    if (checkGameOver()){
                        gameOver(hOutput);
                        goto initial;
                    }
                    bIsStop = true;
                    break;
                }
                movePosition(g_middleData, iMove_x, iMove_y);
                traversalArrayBlock(hOutput);
                break;
            default:break;
            }
        }
    }

    return 0;
}

詳細(xì)的代碼見(jiàn)百度網(wǎng)盤分享鏈接: https://pan.baidu.com/s/1boDjYFl 密碼: cdck

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容