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

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

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

游戏的截图

首先是启动界面

然后是初始化

接下来是键盘操控

地图的复杂度也很容易修改。
也支持退出。按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("<---分别对应[上][下][左][右]--->\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("<---分别对应[上][下][左][右]--->\n");
 printf("  开始游戏\n");
 printf(" -> 退出游戏\n");
 printf("程序将在5s后关闭\n");
 int i = 0;
 for(i=0;i<5;++i){
 system("cls");
 printf("程序将在 %ds后关闭\n",5-i);
 Sleep(1000);
 } 
 exit(0);//退出程序 
 }else{
 printf("  游戏加载完毕!\n");
 printf("<---操作按键:[W][S][A][D]--->\n");
 printf("<---分别对应[上][下][左][右]--->\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");
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。