首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言控制台版掃雷:鍵盤方向鍵操作與動畫效果實現

     編輯:關於C語言

核心技術點

  • 光標定位:SetConsoleCursorPosition 控制光標座標。
  • 顏色設置:SetConsoleTextAttribute 設置前景/背景色(支援 0-255)。
  • 按鍵捕獲:_getch() 讀取方向鍵雙字節碼 (0xE0 + 72/80/75/77)。
  • 行緩衝清除:FillConsoleOutputCharacter 覆蓋整行實現動畫無殘影。

遊戲邏輯

  • 10×10 棋盤,15 個地雷,九宮格計算周圍雷數。
  • 空格/Enter 翻開,ESC 退出,踩雷失敗可重玩。
  • 遞歸展開零雷區域。

關鍵代碼結構

typedef struct { int x,y; } Pos;
typedef struct { bool covered; int mines; } Cell;

Pos cursor[10][10];
Cell  board[10][10];
int idx_x=0, idx_y=0, left=100;

void init() { /* 隨機佈雷、計算數字、初始化光標座標 */ }
void draw() { /* 繪製邊框、覆蓋格、數字、地雷 */ }
void move(int dy,int dx) { /* 邊界檢查、更新索引、移動光標 */ }
bool click(int y,int x) { /* 翻開、踩雷判斷、遞歸展開 */ }

int main() {
    init(); draw();
    while(1) {
        set_cursor(cursor[idx_y][idx_x]);
        int k = _getch();
        if (k==0xE0) { k=_getch(); move(...); }
        else if (k==' '||k=='\r') { if(click(...)) gameover(); }
        else if (k==27) break;
    }
}

動畫演示

啟動時標題從上方滑入、雙線從兩側合攏、版本號從左滑入、幫助文字從底部浮現,均通過逐行繪製+Sleep+清行實現。

編譯環境

Windows 10 + Code::Blocks 13.12 (GCC)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved