數字迷宮小遊戲

2021-07-15 02:35:54 字數 3376 閱讀 3472

本案例為實現動態的重新整理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...