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

 更新时间:2020年06月16日 11:46:04   作者:Kingdeguo  
这篇文章主要为大家详细介绍了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");
 }
}

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

相关文章

  • C语言double和float 实例分析

    C语言double和float 实例分析

    本文主要介绍了C语言中的浮点数(float,double),并通过实例代码进行分析比较,希望能帮助学习相关知识的同学
    2016-07-07
  • c++中的自增/自减操作方式

    c++中的自增/自减操作方式

    这篇文章主要介绍了C++中的自增和自减运算符,包括前缀和后缀形式,并通过一个具体的例子解释了自增/自减表达式的值与函数参数传递的关系,文章指出,自增/自减表达式的值是在表达式求值时确定的,而不是在自增/自减运算后
    2025-03-03
  • C语言中单链表的基本操作指南(增删改查)

    C语言中单链表的基本操作指南(增删改查)

    链表跟数组不同的是非连续存储结构,也就是说实现链表需要一个指针,每用完一个节点指针指向下一个节点,直至表尾,下面这篇文章主要给大家介绍了关于C语言中单链表的基本操作之增删改查的相关资料,需要的朋友可以参考下
    2021-09-09
  • C语言中((type *)0) 和(type *0)区别小结

    C语言中((type *)0) 和(type *0)区别小结

    ((type *)0) 和 (type *0) 在 C 和 C++ 中有不同的含义和用途,本文主要介绍了C语言中((type *)0) 和(type *0)区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • C语言 超详细梳理总结动态内存管理

    C语言 超详细梳理总结动态内存管理

    动态内存是相对静态内存而言的。所谓动态和静态就是指内存的分配方式。动态内存是指在堆上分配的内存,而静态内存是指在栈上分配的内存,本文带你深入探究C语言中动态内存的管理
    2022-03-03
  • 举例讲解C语言对归并排序算法的基础使用

    举例讲解C语言对归并排序算法的基础使用

    这篇文章主要介绍了C语言对归并排序算法的使用,归并排序算法的平均事件复杂度为(n\log n),需要的朋友可以参考下
    2016-05-05
  • C 标准I/O库的粗略实现教程

    C 标准I/O库的粗略实现教程

    下面小编就为大家分享一篇C 标准I/O库的粗略实现教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • C语言实现常见进制转换的示例代码

    C语言实现常见进制转换的示例代码

    生活中最常见的进制是十进制,而有一类编程题会要求将十进制转换为其他进制,本文将主要讲述C语言中常见的几类进制转换问题,希望对大家有所帮助
    2023-04-04
  • C++ 中 const和static readonly区别

    C++ 中 const和static readonly区别

    这篇文章主要介绍了C++ 中 const和static readonly区别的相关资料,需要的朋友可以参考下
    2017-05-05
  • C++控制台实现简单人机对弈井字棋

    C++控制台实现简单人机对弈井字棋

    这篇文章主要为大家详细介绍了C++控制台实现简单人机对弈井字棋,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论