C語言鍵盤控制走迷宮小游戲
更新時間:2020年06月16日 11:46:04 作者:Kingdeguo
這篇文章主要為大家詳細介紹了C語言鍵盤控制走迷宮小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言鍵盤控制走迷宮小游戲的具體代碼,供大家參考,具體內(nèi)容如下
在看了《啊哈C語言》之后想寫一個游戲demo
游戲的截圖
首先是啟動界面

然后是初始化

接下來是鍵盤操控

地圖的復(fù)雜度也很容易修改。
也支持退出。按s鍵選擇退出游戲這個選項即可。
下面是源代碼
#include <stdio.h>
#include <stdlib.h>
void startUp();
void gameInstructions();
void menu(char c);
void gameMap();
char map[6][6]={"######",
"#o # ",
"# ## #",
"# # #",
"## #",
"######"
};
int main() {
startUp();//游戲啟動界面
gameInstructions();//游戲說明
//顯示菜單
printf(" -> 開始游戲\n");
printf(" 退出游戲\n");
printf("按Enter進入游戲\n");
char choose1;
choose1 = getch();
menu(choose1);
//加載游戲地圖
gameMap();
//玩家進行操作
system("cls");
int i,x,y,p,q,j;
char ch;
x=1;y=1;p=1;q=5;
for(i=0;i<6;++i){
printf(" ");
for(j=0;j<6;++j){
printf("%c ",map[i][j]);
}
printf("\n");
}
while(x != p || y != q){
ch = getch();
if(ch == 's' || ch == 'S'){
if(map[x+1][y] != '#'){
map[x][y] = ' ';
x++;
map[x][y] = 'o';
}else{
printf("\a");
}
}
if(ch == 'w' || ch == 'W'){
if(map[x-1][y] != '#'){
map[x][y] = ' ';
x--;
map[x][y] = 'o';
}else{
printf("\a");
}
}
if(ch == 'a' || ch == 'A'){
if(map[x][y-1] != '#'){
map[x][y] = ' ';
y--;
map[x][y] = 'o';
}else{
printf("\a");
}
}
if(ch == 'd' || ch == 'D'){
if(map[x][y+1] != '#'){
map[x][y] = ' ';
y++;
map[x][y] = 'o';
}else{
printf("\a");
}
}
system("cls");
for(i=0;i<6;++i){
printf(" ");
for(j=0;j<6;++j){
printf("%c ",map[i][j]);
}
printf("\n");
}
}
system("cls");
printf("You Win!\n");
Sleep(3000);
return 0;
}
void startUp(){
int i;
int circle = 2;
for(i=0;i<circle;++i){
system("cls");
printf(" 游戲正在加載");
Sleep(500);
system("cls");
printf(" 游戲正在加載.");
Sleep(500);
system("cls");
printf(" 游戲正在加載..");
Sleep(500);
system("cls");
printf(" 游戲正在加載...");
Sleep(500);
}
system("cls");
printf(" 游戲加載完畢!\n");
Sleep(1000);
}
void gameInstructions(){
printf("<---操作按鍵:[W][S][A][D]--->\n");
printf("<---分別對應(yīng)[上][下][左][右]--->\n");
printf("<---注意使用英文輸入法--->\n");
Sleep(1000);
}
void menu(char c){
system("cls");
if(c == 'S' || c == 's'){
printf(" 游戲加載完畢!\n");
printf("<---操作按鍵:[W][S][A][D]--->\n");
printf("<---分別對應(yīng)[上][下][左][右]--->\n");
printf(" 開始游戲\n");
printf(" -> 退出游戲\n");
printf("程序?qū)⒃?s后關(guān)閉\n");
int i = 0;
for(i=0;i<5;++i){
system("cls");
printf("程序?qū)⒃?%ds后關(guān)閉\n",5-i);
Sleep(1000);
}
exit(0);//退出程序
}else{
printf(" 游戲加載完畢!\n");
printf("<---操作按鍵:[W][S][A][D]--->\n");
printf("<---分別對應(yīng)[上][下][左][右]--->\n");
printf(" -> 開始游戲\n");
printf(" 退出游戲\n");
printf("按Enter進入游戲\n");
}
}
void gameMap(){
system("cls");
printf("---正在加載游戲地圖---\n");
int i, j;
for(i=0;i<6;++i){
printf(" ");
for(j=0;j<6;++j){
printf("%c ",map[i][j]);
Sleep(100);
}
printf("\n");
Sleep(200);
}
system("cls");
printf("---Part1---\n");
for(i=0;i<6;++i){
printf(" ");
for(j=0;j<6;++j){
printf("%c ",map[i][j]);
}
printf("\n");
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C語言中((type *)0) 和(type *0)區(qū)別小結(jié)
((type *)0)?和?(type *0)?在 C 和 C++ 中有不同的含義和用途,本文主要介紹了C語言中((type *)0) 和(type *0)區(qū)別,具有一定的參考價值,感興趣的可以了解一下2024-08-08
C語言?超詳細梳理總結(jié)動態(tài)內(nèi)存管理
動態(tài)內(nèi)存是相對靜態(tài)內(nèi)存而言的。所謂動態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動態(tài)內(nèi)存的管理2022-03-03
C++ 中 const和static readonly區(qū)別
這篇文章主要介紹了C++ 中 const和static readonly區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-05-05

