自制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内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...
随机推荐
- netty系列之:自定义编码解码器
目录 简介 自定义编码器 自定义解码器 添加编码解码器到pipeline 计算2的N次方 总结 简介 在之前的netty系列文章中,我们讲到了如何将对象或者String转换成为ByteBuf,通过使用 ...
- Java的几种创建实例方法的性能对比(二)
上一篇里对几种书写方式进行了简单的测试,得出了一些初步的结论.这次简单了解Lambda原理后,对测试做了一些调整,发现得到不一样的结果,而这个调整,明显更契合实际开发的场景. 暂时还没有亲自去验证,主 ...
- 【笔记】偏差方差权衡 Bias Variance Trade off
偏差方差权衡 Bias Variance Trade off 什么叫偏差,什么叫方差 根据下图来说 偏差可以看作为左下角的图片,意思就是目标为红点,但是没有一个命中,所有的点都偏离了 方差可以看作为右 ...
- Django 反向解析 request CBV
正则路径中的分组 无名分组 分组的概念:就是给某一段正则表达式用小括号括起来 无名分组按位置传参数,一一对应. view中除去request,其他形参数量要与urls中分组数量一致. 无名分组就是将括 ...
- SQL 练习29
查询课程名称为「数学」,且分数低于 60 的学生姓名和分数 SELECT Student.Sname,Course.Cname,SC.score FROM Student,Course,SC WHER ...
- java小白困惑的那些事
刚接触java时,有些技术盲区,查了很多资料也得不到答案,面试时也得遮遮掩掩,这里就列举一些,当年踩过的那些坑 1.http -> https一个网站或接口,从http改到https是否需要额外 ...
- npm 基本命令的使用
1.npm -v 查看npm版本 2.使用npm命令安装模块 npm install Module Name 例如安装jquery模块 npm install jquery 3.卸载模块 npm un ...
- JS获取对象在内存中计算后的样式
通过obj.style的方式只能取得"内联style"的值,对于<style></style>中的css属性值,则无能为力 . 我们可以用obj.curre ...
- wpf 获得exe的运行路径
System.Reflection.Assembly.GetEntryAssembly().Location
- C#多线程---线程池的工作者线程
一.线程池简介 创建和销毁线程是一个要耗费大量时间的过程,太多的线程也会浪费内存资源,所以通过Thread类来创建过多的线程反而有损于性能,为了改善这样的问题 ,.net中就引入了线程池. 线程池形象 ...