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");
 }
}

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

(0)

相关推荐

  • C语言实现数据结构迷宫实验

    本文实例为大家分享了C语言实现简单的数据结构迷宫实验,供大家参考,具体内容如下 分析:迷宫实验主要有两部分操作,其一是对迷宫的生成,其二是寻路使用栈的操作. 步骤: 一..h文件 1.首先是迷宫的生成,可以使用随机数种子生成,但主要逻辑部分并不在此,所以在这里直接写死,固定下来. 定义一个坐标类型的结构体,和二维数组迷宫: typedef struct { int x; int y; }Pos; //迷宫类型 typedef struct { int square[10][10] = { {1,

  • 基于C语言实现的迷宫游戏代码

    本文实例讲述了基于C语言实现迷宫游戏的方法,代码备有较为详尽的注释,便于读者理解.通过该游戏代码可以很好的复习C语言的递归算法与流程控制等知识,相信对于学习游戏开发的朋友有一定的借鉴价值. 完整的实例代码如下: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> #define N 20/*迷宫的大小,可改

  • C语言数据结构之迷宫问题

    本文实例为大家分享了数据结构c语言版迷宫问题栈实现的具体代码,供大家参考,具体内容如下 程序主要参考自严蔚敏老师的数据结构c语言版,在书中程序的大体框架下进行了完善.关于迷宫问题的思路可查阅原书. #include<iostream> using namespace std; #define MAXSIZE 10 typedef int Status; typedef struct{ int x; int y; }Postype; typedef struct{ int ord; Postyp

  • C语言使用广度优先搜索算法解决迷宫问题(队列)

    本文实例讲述了C语言使用广度优先搜索算法解决迷宫问题.分享给大家供大家参考,具体如下: 变量 head 和 tail 是队头和队尾指针, head 总是指向队头, tail 总是指向队尾的下一个元素.每个点的 predecessor 成员也是一个指针,指向它的前趋在 queue 数组中的位置.如下图所示: 广度优先是一种步步为营的策略,每次都从各个方向探索一步,将前线推进一步,图中的虚线就表示这个前线,队列中的元素总是由前线的点组成的,可见正是队列先进先出的性质使这个算法具有了广度优先的特点.广

  • 基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #include <cstdio> #include <deque> #include <windows.h> using namespace std; class node { public: int x,y; int lastOpt; }; deque<node> sta

  • C语言使用深度优先搜索算法解决迷宫问题(堆栈)

    本文实例讲述了C语言使用深度优先搜索算法解决迷宫问题.分享给大家供大家参考,具体如下: 深度优先搜索 伪代码 (Pseudocode)如下: 将起点标记为已走过并压栈; while (栈非空) { 从栈顶弹出一个点p; if (p这个点是终点) break; 否则沿右.下.左.上四个方向探索相邻的点 if (和p相邻的点有路可走,并且还没走过) 将相邻的点标记为已走过并压栈,它的前趋就是p点; } if (p点是终点) { 打印p点的坐标; while (p点有前趋) { p点 = p点的前趋;

  • C语言数据结构之迷宫求解问题

    现在网上各种对于迷宫的求解,版本多的数不胜数.本人小白一枚,贴上自己对迷宫的求解这个小项目,自己写的.望能帮助一些同样有困难的人,毕竟我当时费解了好一会儿时间呢. 首先,先标明对于迷宫求解这个项目,首先我提出自己的思路,利用"穷举求解"的方法(严蔚敏老师数据结构一书中提到,一开始不知方法其名.)其实简单来说就是一条路一条路去试,当然不能随便试,我的方法是按照从入口出发,顺一个方向向前探索,走得通就继续向前走:否则留下标记沿原路退回并换一个方向继续探索,直到所有的路都走完为止.还是用栈的

  • C语言 数据结构中求解迷宫问题实现方法

    C语言 数据结构中求解迷宫问题实现方法 在学习数据结构栈的这一节遇到了求迷宫这个问题,拿来分享一下~ 首先求迷宫问题通常用的是"穷举求解" 即从入口出发,顺某一方向试探,若能走通,则继续往前走,否则原路返回,换另一个方向继续试探,直至走出去. 我们可以先建立一个8*8的迷宫其中最外侧为1的是墙 int mg[M+2][N+2]={ {1,1,1,1,1,1,1,1,1,1}, {1,0,0,1,0,0,0,1,0,1}, {1,0,0,1,0,0,0,1,0,1}, {1,0,0,0,

  • 基于C语言实现的迷宫算法示例

    本文实例讲述了基于C语言实现的迷宫算法.分享给大家供大家参考,具体如下: 利用c语言实现迷宫算法,环境是vc++6.0. #include<stdio.h> #include<time.h> #include<cstdlib> int visit(int,int); void setmaze(); int maze[11][11]= { {0,0,2,2,2,2,2,2,2,2}, {2,0,2,2,0,2,0,2,0,2}, {2,0,2,0,0,0,0,0,0,2}

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

    本文实例为大家分享了C语言键盘控制走迷宫小游戏的具体代码,供大家参考,具体内容如下 在看了<啊哈C语言>之后想写一个游戏demo 游戏的截图 首先是启动界面 然后是初始化 接下来是键盘操控 地图的复杂度也很容易修改. 也支持退出.按s键选择退出游戏这个选项即可. 下面是源代码 #include <stdio.h> #include <stdlib.h> void startUp(); void gameInstructions(); void menu(char c);

  • Java实现可视化走迷宫小游戏的示例代码

    目录 效果图 数据层 视图层 控制层 效果图 数据层 本实例需要从 .txt 文件中读取迷宫并绘制,所以先来实现文件读取IO类 MazeData.java,该程序在构造函数运行时将外部文件读入,并完成迷宫各种参数的初始化,注意规定了外部 .txt 文件的第一行两个数字分别代表迷宫的行数和列数.此外还提供了各类接口来读取或操作私有数据. import java.io.BufferedInputStream; import java.io.File; import java.io.FileInput

  • JS实现的走迷宫小游戏完整实例

    本文实例讲述了JS实现的走迷宫小游戏.分享给大家供大家参考,具体如下: 先来看看运行效果截图: 完整实例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

  • C++实现走迷宫小游戏

    本文实例为大家分享了C++实现走迷宫小游戏的具体代码,供大家参考,具体内容如下 源码下载:C++实现走迷宫小游戏 主程序代码: #include<conio.h> #include<stdlib.h> #include<time.h> #include<string.h> #include<windows.h> #include<iostream> using namespace std; char pr[10]={1,' ','E'

  • Python+Turtle制作海龟迷宫小游戏

    目录 导语 一.简介 1.什么是Turtle 2.怎么玩转Turtle 3.画布的设置 4.设置背景/画布颜色 二.Turtle的画笔设置 1.turtle绘图的基本方法 三.最后的案例Turtle小游戏 1.设计思路游戏规则 2.准备环节 3.正式敲代码 四.效果图 1.运行代码 2.关卡一 3.关卡二 4.关卡三 导语 哈喽!大家好!我是木木子~ 纵观之前的文章——我发现了一个特点,很多小伙伴儿都喜欢学习Turtle或游戏代码,没错吧~ 那今天这篇文章就是为这2方面的小伙伴儿精心准备滴!Tu

  • C语言编一个数字益智小游戏

    程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产生随机题目,并能检验玩家的作答是否正确.为了小朋友能感受到游戏的乐趣,特意设置了得分系统,答对不同题目有不同的加分,并会根据总得分划分不同「段位」,呈现给玩家.另外,程序还运用了更加充满活力的设计,让玩家爱上该游戏. 程序运行截图主菜单 运算游戏 找最值游戏 排序游戏 得分统计 代码部分头文件区域

  • Python实现过迷宫小游戏示例详解

    目录 前言 开发工具 环境搭建 原理简介 主要代码 前言 今天为大家带来解闷用的过迷宫小游戏分享给大家好了.让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏规则: 玩家通过↑↓←→键控制主角行动,使主角从出发点(左上角)绕出迷宫,到达终点(右下角)即为游戏胜利. 逐步实现: 首先,当然是创建迷宫啦,为了方便,这里采用随机生成迷

  • 详解如何利用Python绘制迷宫小游戏

    目录 构思 绘制迷宫 走出迷宫 完整代码 更大的挑战 关于坐标系设置 周末在家,儿子闹着要玩游戏,让玩吧,不利于健康,不让玩吧,扛不住他折腾,于是想,不如一起搞个小游戏玩玩! 之前给他编过猜数字 和 掷骰子 游戏,现在已经没有吸引力了,就对他说:“我们来玩个迷宫游戏吧.” 果不其然,有了兴趣,于是和他一起设计实现起来,现在一起看看我们是怎么做的吧,说不定也能成为一个陪娃神器~ 先一睹为快: 构思 迷宫游戏,相对比较简单,设置好地图,然后用递归算法来寻找出口,并将过程显示出来,增强趣味性. 不如想

  • 基于Unity3D实现3D迷宫小游戏的示例代码

    目录 一.前言 二.构思 三.正式开发 3-1.搭建场景 3-2.设置出入口 3-3.添加角色 3-4.实现角色移动 3-5.出入口逻辑 四.总结 一.前言 闲来无事,从零开始整个<3D迷宫>小游戏. 本篇文章会详细介绍构思.实现思路,希望可以帮助到有缘人. 二.构思 首先,要实现一个小游戏,心里肯定要有一个大概的想法,然后就是将想法完善起来. 我的想法就是一个用立体的墙搭建的迷宫,然后控制人物在迷宫中移动,最后找到出口,就这么简单. 当然,这是一个雏形,比如可以加点音效.背景.关卡.解密等.

  • 基于Matlab制作伪3D第一视角迷宫小游戏

    目录 游戏效果 游戏原理说明 第一代程序计算交点方法 第二代程序计算交点方法 距离转换为线段长度 完整代码 游戏效果 使用键盘上方向键↑向前移动 使用键盘左右方向键调整← →朝向 游戏原理说明 原理很简单,如效果图所示,主要就是以角色视角方向发射大量的直线模拟视线,并计算直线与墙壁交点,获取每一条视线方向下,角色到墙壁的距离,然后根据近大远小的原理绘制不同长度的竖向直线模拟墙壁. 第一代程序计算交点方法 第一代程序是使用的polyshape对象(二维多边形对象)制作墙壁,polyshape对象重

随机推荐