服务器之家

服务器之家 > 正文

C语言键盘控制走迷宫小游戏

时间:2021-09-10 13:44     来源/作者:Kingdeguo

本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下

在看了《啊哈C语言》之后想写一个游戏demo

游戏的截图

首先是启动界面

C语言键盘控制走迷宫小游戏

然后是初始化

C语言键盘控制走迷宫小游戏

接下来是键盘操控

C语言键盘控制走迷宫小游戏

地图的复杂度也很容易修改。
也支持退出。按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(" -> 开始游戏
");
 printf("  退出游戏
");
 printf("按Enter进入游戏
");
 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("
");
 }
 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("
");
 }
 }
 system("cls");
 printf("You Win!
");
 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("  游戏加载完毕!
");
 Sleep(1000); 
}

void gameInstructions(){
 printf("<---操作按键:[W][S][A][D]--->
");
 printf("<---分别对应[上][下][左][右]--->
");
 printf("<---注意使用英文输入法--->
");
 Sleep(1000);
}

void menu(char c){
 system("cls");
 if(c == "S" || c == "s"){
 printf("  游戏加载完毕!
");
 printf("<---操作按键:[W][S][A][D]--->
");
 printf("<---分别对应[上][下][左][右]--->
");
 printf("  开始游戏
");
 printf(" -> 退出游戏
");
 printf("程序将在5s后关闭
");
 int i = 0;
 for(i=0;i<5;++i){
 system("cls");
 printf("程序将在 %ds后关闭
",5-i);
 Sleep(1000);
 } 
 exit(0);//退出程序 
 }else{
 printf("  游戏加载完毕!
");
 printf("<---操作按键:[W][S][A][D]--->
");
 printf("<---分别对应[上][下][左][右]--->
");
 printf(" -> 开始游戏
");
 printf("  退出游戏
");
 printf("按Enter进入游戏
");
 
 }
}

void gameMap(){
 system("cls");
 printf("---正在加载游戏地图---
");
 
 int i, j;
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 Sleep(100);
 }
 printf("
");
 Sleep(200);
 }
 
 system("cls");
 printf("---Part1---
");
 for(i=0;i<6;++i){
 printf("  ");
 for(j=0;j<6;++j){
 printf("%c ",map[i][j]);
 }
 printf("
");
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_44895666/article/details/106769631

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部