自制C++游戏 迷宫
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++游戏 迷宫的更多相关文章
- 自制javascript游戏-点燃火绳
自制javascript游戏-点燃火绳 这是一款多关卡的游戏,目录有21个地图,游戏采纯原生 js库JY编写,所以编写得很简单迅速,这款游戏的思路来源于,一个人撸管太多,手会不会连鼠标也拿不稳,为了验 ...
- Angular4 自制打地鼠游戏
前端工程师新手一枚,之前一直做些小设计,以及静态页面的编写工作.刚刚接触 Angular 没有多久,四个月前对于 Javascript也只是会写 alert 之流,现在进步算是很大,下面是自制的打地鼠 ...
- 用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器
平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”.说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的 ...
- 【★】Web精彩实战之<智能迷宫>
JS精彩实战之<智能迷宫> ---宝贵编程经验分享会--- hello大家好,这里是Web云课堂,之前的一年里我们经历了Html和CSS的系统攻城,此时的你们已经是做静态(动静结 ...
- Pascal小游戏之奇葩的RPG
Pascal吧友作品 一个小RPG Chaobs转载 varplife,plifemax,patt,pre:integer;gr,ex,exmax:integer;alife,alife1,aatt, ...
- 如何做出一个好的c++游戏
目录 一.游戏分类 1.文字型 2.画图型 3.键盘型 二.游戏创意 你的程序可以比较激情.热血 1.打怪,爆装备型 2.答题闯关型 可以添加一些不可思议的物品和玩法 三.学号c++/c的语法,是成功 ...
- 【★】Web精彩实战之
JS精彩实战之<智能迷宫> ---宝贵编程经验分享会--- hello大家好,这里是Web云课堂,之前的一年里我们经历了Html和CSS的系统攻城,此时的你们已经是做静态(动静结 ...
- [收藏夹整理]VC部分
c++多线程(一) C++11 多线程 鸡啄米:C++编程入门系列之十二(类与对象:面向对象设计的基本思想和特点) 鸡啄米:C++编程入门系列之二十一(C++程序设计必知:类的静态成员) [笔记]VS ...
- iOS开发——新特性OC篇&IOS9 SDK新特性
iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...
随机推荐
- Http协议中的CharacterEncoding、Content-Encoding和Transfer-Encoding
https://www.cnblogs.com/jinzhiming/p/5765672.html https://www.jianshu.com/p/e918a65b617f https://www ...
- 安鸾CTF-cookies注入
什么是cookie注入? cookie注入的原理是:修改cookie的值进行注入 cookie注入其原理也和平时的注入一样,只不过注入参数换成了cookie 例如:PHP $_REQUEST 变量变量 ...
- Linux下MySQL主从复制(Binlog)的部署过程
什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...
- 从零开始实现简单 RPC 框架 5:网络通信之序列化
我们在接下来会开始讲网络通信相关的内容了.既然是网络通信,那必然会涉及到序列化的相关技术. 下面是 ccx-rpc 序列化器的接口定义. /** * 序列化器 */ public interface ...
- SpringCloud升级之路2020.0.x版-23.订制Spring Cloud LoadBalancer
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们使用 Spri ...
- 【转】分布式之redis复习精讲
转自:https://www.cnblogs.com/rjzheng/p/9096228.html 引言 为什么写这篇文章? 博主的<分布式之消息队列复习精讲>得到了大家的好评,内心诚惶诚 ...
- 网页前端video播放m3u8(HLS)
网页前端video播放m3u8(HLS) HLS (HTTP Live Streaming)是Apple公司研发的流媒体传输技术,包括一个m3u8的索引文件.多个ts分片文件和key加密串文件.这项技 ...
- hive表导出到mysql报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject hadoop@hado ...
- Servlet、ServletContext与ServletConfig的详解及区别
Servlet.ServletContext与ServletConfig的详解及区别 一.Servlet详解 Servlet是一个interface,全局限定名:javax.servlet.Servl ...
- Java从文件路径中获取文件名的几种方法
举例:String fName =" G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif " 方法一: 1 ...