1 #include<bits/stdc++.h>
2 #include<conio.h>
3 using namespace std;
4 char mg[17][17]={
5 "# ##############",
6 "# # # # # ###",
7 "## # # ### ##",
8 "### ### ##",
9 "######## ###",
10 "### ## ###",
11 "### # # # # ##",
12 "### # ### ####",
13 "#### ## # # ##",
14 "### ## ##### ##",
15 "### # # ##",
16 "##### ### ###",
17 "## # ##########",
18 "## #####",
19 "########## #",
20 "############## #"
21 };
22 double start,end;
23 int x=0;int y=1;
24 void disp(){
25 system("cls");
26 for(int i=0;i<16;i++){
27 for(int j=0;j<16;j++){
28 printf("%c",mg[i][j]);
29 }
30 printf("\n");
31 }
32 printf("x..%d,y..%d",x,y);
33 }
34 void win(){
35 end=clock();
36 system("cls");
37 printf("YOU WIN!\nTIME:%.2f SECONDS",((double)(end-start)/CLK_TCK));
38 }
39 int main(){
40 start=clock();
41 mg[x][y]='o';
42 char temp;
43 while(x!=15||y!=14){
44 disp();
45 temp=getch();
46 if(temp=='W'){
47 if(x!=0&&mg[x-1][y]!='#'){
48 mg[x][y]=' ';--x;mg[x][y]='o';
49 }
50 }
51 if(temp=='A'){
52 if(y!=0&&mg[x][y-1]!='#'){
53 mg[x][y]=' ';--y;mg[x][y]='o';
54 }
55 }
56 if(temp=='S'){
57 if(x!=15&&mg[x+1][y]!='#'){
58 mg[x][y]=' ';++x;mg[x][y]='o';
59 }
60 }
61 if(temp=='D'){
62 if(y!=15&&mg[x][y+1]!='#'){
63 mg[x][y]=' ';++y;mg[x][y]='o';
64 }
65 }
66 }
67 win();
68 }

解释:
把迷宫保存在数组里。windows.h和conio.h都是常用的头文件,getch()表示输入一个字符但是不在屏幕上显示这个字符。我们不断读入字符,根据WASD分别判断是往上、下、左、右走,先判断要走的方向是否是墙(用#号表示)​,如果不是,那么就移动,直到终点结束循环。
运行效果截图:

自制C++游戏 迷宫的更多相关文章

  1. 自制javascript游戏-点燃火绳

    自制javascript游戏-点燃火绳 这是一款多关卡的游戏,目录有21个地图,游戏采纯原生 js库JY编写,所以编写得很简单迅速,这款游戏的思路来源于,一个人撸管太多,手会不会连鼠标也拿不稳,为了验 ...

  2. Angular4 自制打地鼠游戏

    前端工程师新手一枚,之前一直做些小设计,以及静态页面的编写工作.刚刚接触 Angular 没有多久,四个月前对于 Javascript也只是会写 alert 之流,现在进步算是很大,下面是自制的打地鼠 ...

  3. 用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器

    平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”.说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的 ...

  4. 【★】Web精彩实战之<智能迷宫>

    JS精彩实战之<智能迷宫>      ---宝贵编程经验分享会--- hello大家好,这里是Web云课堂,之前的一年里我们经历了Html和CSS的系统攻城,此时的你们已经是做静态(动静结 ...

  5. Pascal小游戏之奇葩的RPG

    Pascal吧友作品 一个小RPG Chaobs转载 varplife,plifemax,patt,pre:integer;gr,ex,exmax:integer;alife,alife1,aatt, ...

  6. 如何做出一个好的c++游戏

    目录 一.游戏分类 1.文字型 2.画图型 3.键盘型 二.游戏创意 你的程序可以比较激情.热血 1.打怪,爆装备型 2.答题闯关型 可以添加一些不可思议的物品和玩法 三.学号c++/c的语法,是成功 ...

  7. 【★】Web精彩实战之

    JS精彩实战之<智能迷宫>      ---宝贵编程经验分享会--- hello大家好,这里是Web云课堂,之前的一年里我们经历了Html和CSS的系统攻城,此时的你们已经是做静态(动静结 ...

  8. [收藏夹整理]VC部分

    c++多线程(一) C++11 多线程 鸡啄米:C++编程入门系列之十二(类与对象:面向对象设计的基本思想和特点) 鸡啄米:C++编程入门系列之二十一(C++程序设计必知:类的静态成员) [笔记]VS ...

  9. iOS开发——新特性OC篇&IOS9 SDK新特性

    iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...

随机推荐

  1. SpringBoot开发二十-私信列表

    私信列表功能开发. 发送私信功能开发 首先创建一个实体类:Message package com.nowcoder.community.entity; import java.util.Date; p ...

  2. PHPMailer 远程命令执行漏洞 Writeup

    漏洞概述 1.漏洞简介 PHPMailer 小于5.2.18的版本存在远程代码执行漏洞.成功利用该漏洞后,攻击者可以远程任意代码执行.许多知名的 CMS 例如 Wordpress 等都是使用这个组件来 ...

  3. 高性能 C++ HTTP 客户端原理与实现

    一.什么是Http Client Http协议,是全互联网共同的语言,而Http Client,可以说是我们需要从互联网世界获取数据的最基本方法,它本质上是一个URL到一个网页的转换过程.而有了基本的 ...

  4. docker 安装部署 jenkins

    cd /data/docker-data/jenkins mkdir jenkins_home chmod 777 jenkins_home docker run -d -p 10240:8080 - ...

  5. 终于讲清楚了:深入理解Java 应用程序中 final 关键字的各种使用场景

    在 Java 语言众多的关键字中,final 关键字无疑是被提到最多的,也是在面试过程中经常被问到的知识点.今天,老王查找了很多材料,最后终于收集了关于 final 关键字比较全的知识点.首先,fin ...

  6. asp.net core 知识点总结

  7. ajax传字符串时出现乱码问题的解决

    字符乱码的解决: 第一种在@RequestMapping中添加 @RequestMapping(value="queryAllToTree",method=RequestMetho ...

  8. qt 中的QlistWidget

  9. Java中的比较器(排序)

    "顺序"在任何一个领域里都是非常重要的一个概念,程序也不例外.不同的执行顺序,能对你的执行结果产生直接影响. 既然涉及到顺序,那就要求排序.所以本文讨论的就是排序中使用到的比较器C ...

  10. 2014 12 27 bestcoder 第一题

    水的不行不行的一道题 也是自己做的第一道题  纪念下 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h ...