以前寫的乙個命令列版掃雷,今天翻出來整理了下拿出來,寫的有點亂= =
codeblocks、vc6.0編譯通過,只能在windows下執行,linux不支援。不嫌蛋疼的可以用curses庫來實現下linux版本。。。
截圖2張,比較簡陋:
程式還是比較簡單的,那這裡就直接丟**了:
/**
* 命令列版掃雷,方向鍵控制
*/#include #include #include #include #include #define bool int
#define true 1
#define false 0
#define row 9
#define column 9
#define total_mine 10
// ascii碼
#define mine 42
#define esc 27
#define enter 13
#define space 32
#define up 72
#define down 80
#define left 75
#define right 77
typedef struct cursorpos_st
cursorpos_t;
typedef struct block_st
block_t;
cursorpos_t cursorpos[row][column]; // 游標位置陣列
block_t mine[row][column]; // 掃雷地圖陣列
int nleftblock = row * column; // 剩餘的格數
int index_x = 0, index_y = 0; // 游標在游標位置陣列、地圖陣列中的下標
void setcolor(unsigned short color);
void welcome();
void init();
void count(); // 計算附近雷數
void get(); // 獲取鍵盤輸入
void gotopos(int y, int x);
void move(int y, int x); // 移動當前游標位置
bool check(int y, int x); // 檢測是否踩雷
void print(); // 輸出掃雷介面
void over(char *str); // 遊戲結束
int main()
*/for (;;)
return 0;
}void setcolor(unsigned short color)
;void init()
}// 放置地雷
while (nmine)
}// 初始化游標位置陣列
for (i = 0; i < row; ++i)
}}void count()
for (n = -1; n <= 1; ++n)
if (mine[i + m][j + n].nmine == -1)}}
mine[i][j].nmine = nmine;}}
}void get()
}else
}else if (nleftblock > total_mine)
else
}break;
case esc:
system("cls");
over("\t\t\t\t\t白白~\n\n\n\n\n\n\n\n");
default:
break;}}
}void gotopos(int y, int x)
void move(int y, int x)
}bool check(int y, int x)
// 翻開選中的格仔
mine[y][x].bcover = false;
// 踩中地雷
if (mine[y][x].nmine == -1)
// 展開連片空格
if (mine[y][x].nmine > 0 && mine[y][x].nmine < 9)
for (i = -1; i <= 1; ++i)
for (j = -1; j <= 1; ++j)
if (mine[y + i][x + j].bcover)}}
return false;
}void print()
printf("+---[i]\n");
for (i = 0; i < row; ++i)
else if (mine[i][j].nmine == -1 || mine[i][j].nmine == 9)
else if (mine[i][j].nmine == 0)
else
}printf("|\n");
if (i < row - 1)
printf("+\n");}}
printf("[n]---");
for (k = 1; k < column - 1; ++k)
printf("+---[e]\n");
}void welcome()
for (i = 78; i >= 39; --i)
for (i = 0; i <= (80 - strlen(words2)) / 2; ++i)
for (i = 24; i >= 14; --i)
char help0 = "";
char help1 = "";
gotopos(18, (80 - strlen(help0)) / 2);
printf("%s", help0);
gotopos(19, (80 - strlen(help1)) / 2);
printf("%s", help1);
getch();
}void over(char *str) while(str[i++]);
system("pause");
exit(0);
}
命令列實現方向鍵移動選擇。
由於我是一名c 程式設計愛好者,並非專業程式設計師,所以 水平不高,希望你們不要排斥我。命令列實現方向鍵控制箭頭移動選擇。我的思路是先檢測你的鍵盤的鍵值,我的編譯環境是vs 2019,檢測鍵值的 如下 include include 包含getch 函式 using namespace std in...
libgdx實現模擬方向鍵控制角色移動
最近在研究libgdx,有一起研究的可以討論討論 package com.demo import android.os.bundle libgdx的texture與sprite使用 public void oncreate bundle bundle package com.demo import ...
LayaAir 使用方向鍵 控制精靈在格仔中移動
使用方向鍵 在rpg中的格仔中移動是很常見的功能!可是在實際製作中會遇到很多問題 本人資質一般 弄了乙個這個 弄了好久 基本上完美解決了同時按多個按鍵的問題 我以前的做法是 按哪個鍵 就忘哪個方向走 效率低 而且體驗差 所以改了這個方案 當然 你可以繼續優化這 並發給我 萬分感謝 laya.stag...