本案例為實現動態的重新整理dos
介面,使用使用者控制頭像「消滅」視窗中出現的數字
(無固定順序
)的遊戲,來使學員加深對一維陣列、二維陣列、迴圈語句、選擇程式設計以及相關系統函式的使用。
a) 選擇程式設計
b) 迴圈程式設計
c) 使用者、螢幕視窗的輸入輸出
d) 相關系統函式
e) 一維、二維陣列
4天c語言案例
(t階段
)microsoft visual c++ 6.0
本案例要求製作乙個《數字迷宮》的遊戲,該遊戲的玩法描述為:
1、 系統主要地圖為固定模式
2、 地圖內部包含牆體、走廊、阿拉伯數字(1~7)
、玩家頭像(1個
)四種不同內容
3、 使用者通過上、下、左、右按鍵來控制玩家頭像在地圖範圍內的走動
4、 在玩家走動過程中,碰撞牆壁時,該步的走動無效,玩家頭像原地不變
5、 玩家允許在設計走廊內部進行走動
6、 玩家頭像遇到阿拉布數字時,數字消失,並且對玩家走動無影響
7、 玩家頭像遭遇所有數字之後(
地圖上無阿拉伯數字
),該局遊戲結束,並自動開始下一局遊戲
8、 在某一局遊戲中,遊戲走廊、牆體與其他遊戲相同,但數字位置會隨機產生
9、 阿拉伯數字產生在走廊內而非牆體上
10、 在玩家遊戲過程中按下esc
鍵,遊戲無條件退出。
11、 在玩家未使用esc
鍵時,程式正常執行
程式執行截圖
這個遊戲主要的關鍵點在於隨機數建立,游標的移動與隱藏(gotoxy)函式,以及上下左右鍵的控制。
**如下:
#include
#include
#include
#include
#define row 17//地圖的行大小
#define col 24//地圖的列大小
int num;//隨機數的個數
int row;//游標的所在行位置
int col;//游標的所在列位置
void setnum();//初始化數字
void gotoxy(int x,int y);//移動游標
void hidecursor();//隱藏游標
void outputcode(int num);//列印字元
void outputmap();//列印地圖
void leftkey();//向左移動
void upkey();//向上移動
void downkey();//向下移動
void rightkey();//向右移動
//用0和-1表示地圖中的牆體和走廊
int a[17][24]= ,,,
,,,,
,,,,
,,,,
,,};/*
** 函式功能:移動游標
** 入口引數:int x,int y
** 出口引數:無
*/void gotoxy(int x,int y)
;setconsolecursorposition(hout, pos);}/*
** 函式功能:隱藏游標
** 入口引數:無
** 出口引數:無
*/void hidecursor()
;setconsolecursorinfo(getstdhandle(std_output_handle), &cursor_info);}/*
** 函式功能:生成隨機數
** 入口引數:無
** 出口引數:無
*/void setnum()
else if(hx!=1)}}
}}/*** 函式功能:列印地圖
** 入口引數:無
** 出口引數:無
*/void outputmap()
}else if(key1==27)//輸入esc鍵,直接退出}}
/*** 函式功能:向左移動
** 入口引數:無
** 出口引數:無
*/void leftkey()
//左一位是隨機數進行如下操作
if(go>0)
//游標移動到當前位置列印空格
gotoxy(16+col*2,1+row);
outputcode(-1);
//移動到當前位置列印笑臉
gotoxy(16+(col-1)*2,1+row);
outputcode(-2);
col--;}/*
** 函式功能:向上移動
** 入口引數:無
** 出口引數:無
*/void upkey()
//上一位是隨機數進行如下操作
if(go>0)
//游標移動到當前位置列印空格
gotoxy(16+col*2,1+row);
outputcode(-1);
//移動到當前位置列印笑臉
gotoxy(16+col*2,1+row-1);
outputcode(-2);
row--;}/*
** 函式功能:向下移動
** 入口引數:無
** 出口引數:無
*/void downkey()
//上一位是隨機數進行如下操作
if(go>0)
//游標移動到當前位置列印空格
gotoxy(16+col*2,1+row);
outputcode(-1);
//移動到當前位置列印笑臉
gotoxy(16+col*2,1+row+1);
outputcode(-2);
row++;}/*
** 函式功能:向右移動
** 入口引數:無
** 出口引數:無
*/void rightkey()
//右一位是隨機數進行如下操作
if(go>0)
//游標移動到當前位置列印空格
gotoxy(16+col*2,1+row);
outputcode(-1);
//移動到當前位置列印笑臉
gotoxy(16+(col+1)*2,1+row);
outputcode(-2);
col++;}/*
** 函式功能:主函式
** 入口引數:無
** 出口引數:無
*/int main()
row=col=1;//當前行列位置初始化為「1」
setnum();//初始隨機數
outputmap();//列印地圖
hidecursor();//隱藏游標
play();//開始遊戲
}return 0;
}
2016 7 10實訓 數字迷宮
本案例要求製作乙個 數字迷宮 的遊戲,該遊戲的玩法描述為 1 系統主要地圖為固定模式 2 地圖內部包含牆體 走廊 阿拉伯數字 1 7 玩家頭像 1個 四種不同內容 3 使用者通過上 下 左 右按鍵來控制玩家頭像在地圖範圍內的走動 4 在玩家走動過程中,碰撞牆壁時,該步的走動無效,玩家頭像原地不變 5...
迷宮小遊戲
此迷宮通過鍵盤上的方向鍵控制小人方向,直到小人吃掉所有數字,這一關會結束,程式會隨機生成另乙個地圖 void setpos int x,int y handle hout getstdhandle std output handle setconsolecursorposition hout,pos...
C 實現迷宮小遊戲
介紹 本程式是根據廣度優先遍歷演算法的思想設計的一款迷宮遊戲,遊戲設計了兩種模式一種自動遊戲模式,一種手動模式。因為專案在 linux 開發,需要在 windows 開發的,請檢視源 中需要修改地方的備註。截圖 include include 標準庫 include 延時函式 include get...