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

所属分类: 软件编程 / C 语言 阅读数: 49
收藏 0 赞 0 分享

本文实例为大家分享了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");
 }
}

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

更多精彩内容其他人还在看

在C语言中对utmp文件进行查找和写入操作的函数小结

这篇文章主要介绍了在C语言中对utmp文件进行查找和写入操作的函数小结,包括pututline()函数和getutline()函数以及getutid()函数,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言编程中从密码文件获取数据的函数总结

这篇文章主要介绍了C语言编程中从密码文件获取数据的函数总结,包括getpw()函数和getpwnam()函数以及getpwuid()函数,需要的朋友可以参考下
收藏 0 赞 0 分享

在C语言编程中设置和获取代码组数的方法

这篇文章主要介绍了在C语言编程中设置和获取代码组数的方法,分别为setgroups()函数和getgroups()函数的使用,需要的朋友可以参考下
收藏 0 赞 0 分享

使用C语言操作文件的基本函数整理

这篇文章主要介绍了使用C语言操作文件的基本函数整理,包括创建和打开以及关闭文件的操作方法,需要的朋友可以参考下
收藏 0 赞 0 分享

简要对比C语言中的dup()函数和dup2()函数

这篇文章主要介绍了简要对比C语言中的dup()函数和dup2()函数,是C语言入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言中对文件最基本的读取和写入函数

这篇文章主要介绍了C语言中对文件最基本的读取和写入函数,是C语言入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言中lseek()函数和fseek()函数的使用详解

这篇文章主要介绍了C语言中lseek()函数和fseek()函数的使用详解,是C语言入门学习中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言新建临时文件和临时文件名的方法

这篇文章主要介绍了C语言新建临时文件和临时文件名的方法,分别是mkstemp()函数和mktemp()函数的使用,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言的getc()函数和gets()函数的使用对比

这篇文章主要介绍了C语言的getc()函数和gets()函数的使用对比,从数据流中一个是读取字符一个是读取字符串,需要的朋友可以参考下
收藏 0 赞 0 分享

简单对比C语言中的fputs()函数和fputc()函数

这篇文章主要介绍了简单对比C语言中的fputs()函数和fputc()函数,注意其之间的区别,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多