c++小游戏 走迷宫
c++小游戏 走迷宫
最近做了一个走迷宫,自我感觉不错。目前制作了10张地图,游玩前需先仔细阅读帮助,不然会无从下手哦!!!查看方法:运行程序,然后按h键。代码如下:
#include<iostream>
#include<windows.h>
#include"GotoXY.h"
#include <conio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
void help();
void migong();
void m();
void help()
{char ch2;system("cls");cout<<"操作说明:"<<endl;cout<<endl;cout<<"移动说明:"<<endl;cout<<"w-向上 s-向下 a-向左 d-向右"<<endl;cout<<endl;cout<<"标识说明:"<<endl;cout<<"&-炸药 @-玩家 #-墙 $-钥匙 ^-地刺 %-传送门 0-可以被炸药炸开的墙"<<endl;cout<<endl; cout<<"操作说明:"<<endl;cout<<"x-爆破(需要炸药) 移动至物品上方-捡起物品 拥有钥匙后接近传送门附近-传送(按任意键继续)"<<endl; cout<<endl;cout<<"注意事项:"<<endl;cout<<"踩到地刺会s哦,请小心"<<endl;cout<<"按任意键返回"<<endl; ch2=_getch();m();
}
void migong()
{system("cls");char ch;srand(time(NULL));int k; int z=0;int key=0;int zx[100];int zy[100];int gq=0; GotoXY(60,5);cout<<"TNT x 0"; while (1){int map[10][6][10]={ {{1,1,1,1,1,1,1,1,1,1},{1,0,3,0,4,0,1,1,0,1},{1,0,0,0,0,1,1,1,2,1},{1,0,0,0,0,1,1,1,0,1},{1,0,0,0,0,0,0,0,0,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,0,0,0,0,0,1,0,2,1},{1,0,1,0,1,1,1,0,0,1},{1,0,1,0,0,0,0,0,0,1},{1,3,1,0,0,0,0,4,0,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,0,0,0,0,0,0,2,0,1},{1,0,0,3,0,0,0,0,0,1},{1,0,0,0,0,0,0,0,6,1},{1,0,0,5,0,0,0,6,4,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,3,1,0,0,0,1,7,4,1},{1,0,1,0,1,0,1,0,0,1},{1,0,1,0,1,2,1,0,7,1},{1,0,0,0,1,0,0,0,7,1},{1,1,1,1,1,1,1,1,1,1}}, {{1,1,1,1,1,1,1,1,1,1},{1,1,2,1,1,0,0,0,1,1},{1,1,0,1,1,0,1,0,1,1},{1,0,0,0,0,0,1,0,1,1},{1,3,1,1,1,1,1,0,4,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,0,0,0,0,0,0,2,1,1},{1,6,6,6,6,0,1,0,1,1},{1,6,3,5,6,0,1,0,0,1},{1,6,6,6,6,0,0,0,4,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,5,0,0,0,0,0,3,0,1},{1,6,6,6,0,0,0,0,0,1},{1,6,2,6,0,0,0,0,0,1},{1,6,6,6,0,0,0,0,4,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,2,6,0,0,0,0,6,4,1},{1,7,6,0,0,0,0,6,5,1},{1,6,6,0,6,6,6,6,6,1},{1,0,0,0,6,3,5,0,0,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,0,0,0,1,1,0,0,0,1},{1,2,0,0,7,7,0,0,3,1},{1,0,0,0,7,7,0,0,4,1},{1,0,0,0,0,0,0,1,0,1},{1,1,1,1,1,1,1,1,1,1}},{{1,1,1,1,1,1,1,1,1,1},{1,7,7,2,0,0,0,7,7,1},{1,5,7,7,0,0,7,7,5,1},{1,5,7,7,0,0,7,7,5,1},{1,7,3,0,0,0,0,4,7,1},{1,1,1,1,1,1,1,1,1,1}}
}; k=rand()%10;while (1){int e=1;int keyx,keyy;int x;int y;int dx;int dy;GotoXY(0,0);for (int i=0;i<6;i++){for (int j=0;j<10;j++){if (map[k][i][j]==1){cout<<"#";}if(map[k][i][j]==0){cout<<" ";}if(map[k][i][j]==2){cout<<"$";keyx=i;keyy=j;}if (map[k][i][j]==4){cout<<"%";dx=i;dy=j;}if (map[k][i][j]==3){cout<<"@";x=i;y=j;}if (map[k][i][j]==5){cout<<"&";zx[e]=i;zy[e]=j;e++;}if (map[k][i][j]==6){cout<<"O";}if (map[k][i][j]==7){cout<<"^";}}cout<<endl;}if(x==keyx&&y==keyy){key=1;GotoXY(60,4);cout<<"YOU GET THE KEY!!! ";}else if (x==dx-1&&y==dy||x==dx+1&&y==dy||x==dx&&y==dy+1||x==dx&&y==dy-1){if (key==1){GotoXY(60,4);cout<<"YOU WIN!!! <<<按任意键继续>>> ";ch=_getch();key=0;break;}else{GotoXY(60,4);cout<<"NO KEY!!! ";}}for (int i=1;i<=5;i++) {if (x==zx[i]&&y==zy[i]){z+=1;zx[i]=100;zy[i]=100;GotoXY(60,4);cout<<"YOU GET A BAG OF TNT!!! ";GotoXY(66,5);cout<<z;}}GotoXY(60,3);cout<<"第"<<gq<<"层" ;GotoXY(0,6); ch=_getch();switch (ch){case 'w':if (map[k][x-1][y]==1||map[k][x-1][y]==4||map[k][x-1][y]==6){break;}else if (map[k][x-1][y]==7){GotoXY(y,x-1);cout<<"@";GotoXY(y,x);cout<<" ";GotoXY(60,4);cout<<"YOU LOSE!!! ";ch=_getch();system("cls");m();}else {map[k][x-1][y]=3;map[k][x][y]=0;}break;case 's':if (map[k][x+1][y]==1||map[k][x+1][y]==4||map[k][x+1][y]==6){break;}else if (map[k][x+1][y]==7){GotoXY(y,x+1);cout<<"@";GotoXY(y,x);cout<<" ";GotoXY(60,4);cout<<"YOU LOSE!!! ";ch=_getch();system("cls");m();}else{map[k][x][y]=0;map[k][x+1][y]=3;}break;case 'a':if (map[k][x][y-1]==1||map[k][x][y-1]==4||map[k][x][y-1]==6){break;}else if (map[k][x][y-1]==7){GotoXY(y-1,x);cout<<"@";GotoXY(y,x);cout<<" ";GotoXY(60,4);cout<<"YOU LOSE!!! ";ch=_getch();system("cls");m();}else {map[k][x][y]=0;map[k][x][y-1]=3;}break;case 'd':if (map[k][x][y+1]==1||map[k][x][y+1]==4||map[k][x][y+1]==6){break;}else if (map[k][x][y+1]==7){GotoXY(y+1,x);cout<<"@";GotoXY(y,x);cout<<" ";GotoXY(60,4);cout<<"YOU LOSE!!! ";ch=_getch();system("cls");m();}else {map[k][x][y]=0;map[k][x][y+1]=3;}break; case 'x':if (z>0){z--;GotoXY(66,5);cout<<z<<" ";for (int m=x-1;m<=x+1;m++){for (int d=y-1;d<=y+1;d++){if (map[k][m][d]==6){map[k][m][d]=0;}}}}else{GotoXY(60,4);cout<<"YOU DON'T HAVE ANY TNT!!! ";}break;}}GotoXY(0,7);gq++;key=0;}
}
void m()
{system("cls");char ch1;system("title 迷宫-作者S_JH330206"); cout<<" 迷宫游戏"<<endl; cout<<"----------------------------------------------------------------"<<endl;cout<<endl;cout<<" [h]帮助"<<endl;cout<<" [m]游戏"<<endl;cout<<endl;cout<<"----------------------------------------------------------------"<<endl;ch1=_getch();if (ch1=='m'){migong();}if (ch1=='h'){help();}else{m();}
}
int main()
{m();return 0;
}
用到一个自定义头文件,请和上面的文件保存在同一文件夹。代码如下:
/*使用前务必阅读以下几点:1、c++光标坐标从左上角输出位置(0,0)开始,先列后行,如(10,5)为左数第十列,从上往下数第五行;2、使用方法:在任意函数(包括自定义函数)中皆可使用,格式为GotoXY(x,y);3、要加上#include"GotoXY.h"(注意!!!是引号!!!不是<>!!!说的就是->#include"GotoXY.h");4、 该文件后缀名为.h,擅自修改后果自负!!! 5、本文件作者S_JH330206,转载请声明!!!
*/
#include<iostream>
#include<windows.h>
void GotoXY(int x, int y) // 移动
{HANDLE hout; //屏幕尺寸 变量 COORD coord={x,y}; //光标坐标 变量 光标x标 光标y标 hout=GetStdHandle(STD_OUTPUT_HANDLE); //获得屏幕尺寸 SetConsoleCursorPosition(hout,coord); //移动光标
}
看完了,点个赞再走呗❀o( ̄▽ ̄)ブ❀
c++小游戏 走迷宫相关推荐
- C语言学习:简单的小游戏 走迷宫、推箱子
目录 一.走迷宫分析: 走迷宫代码展示 二.推箱子分析: 推箱子代码展示 一.走迷宫分析: 数据分析: 1.定义二维字符数组作为迷宫地图 2.定义变量记录角色的位置 x ...
- 简单的小游戏 ——走迷宫 哈哈。
// 121223 走迷宫ah.cpp : 定义控制台应用程序的入口点. // /* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * ...
- C++小游戏——走迷宫
大家想不想成名,那就一步步来吧,先写一些小游戏热热身. 下载地址 主程序代码: #include<conio.h> #include<stdlib.h> #include< ...
- python小游戏 走迷宫小游戏设计与实现
文章目录 0 项目简介 1 课题背景 2 实现效果 3 Pygame介绍 4 具体实现 4.1 创建迷宫 4.2 定义角色类 4.3 界面切换 5 最后 0 项目简介
- java小游戏——走迷宫
main类 public class Main {public static void main(String[] args){new PreviousSynopsis();} } PreviousS ...
- C语言小项目——走迷宫
C语言小项目--走迷宫 设计方向: 1.定义二维字符数组作为迷宫 2.定义变量记录老鼠的位置 3.判定移动后位置的变化 4.记录游戏时长 5.判定到达终点的条件 总体设计: 1.用不同字符代表墙.老鼠 ...
- 米奇小老鼠走迷宫问题代码以及注释
代码浅析已在代码注释里,代码如下: /**@author 旧梦吖*@version 1.0* 走迷宫问题*/ public class Maze {public static void main(St ...
- 数据结构课设-小老鼠走迷宫(JAVA版)
学校题目: 题目内容: 程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓.游戏的任务是使用键盘上的方向健操纵老鼠在规定的时间内走到粮仓处. 基本要求: ⑴老鼠形象可以辨认,可 ...
- c语言大作业走迷宫,C语言笔记07_小游戏设计——“走迷宫”
C语言07 小游戏设计--走迷宫 目标: 我们要设计一个完整的小游戏"走迷宫".你将可以通过控制键盘上的"W"."S"."A&qu ...
- Dev-c++编写走迷宫游戏 思路和代码 详解
创作背景 今天又是放元旦假的一天,无聊的我刷够了手机,就跑过去打开电脑······ 熟悉的Dev-c++图标又映入我的眼帘,今天编点什么呢······ 我绞尽脑汁,冥思苦想,终于想到了一个游戏--走迷 ...
最新文章
- Thumb mode 与 ARM mode比较
- CentOS 6上配置安装MariaDB,二进制文件,非源码
- JAVA15.JDK15.7 HiddenClass
- jira集成开发代码_7种JIRA集成可优化您的Java开发流程
- MPI多机器实现并行计算
- python turtle_Python:turtle画粽子
- 机器人煮面机创始人_那个火爆的煮面机器人搬走了!一大波机器人“入侵”,无人餐厅只是玩噱头?...
- file watchers怎么默认打开_python怎么打印字符
- WiFi HAL 启动
- android apk下载 安装程序,Android之APK的下载安装
- 初试小刀自我简历小程序
- 局域网共享文件的方法
- 模乘与Montgomery 模乘
- vmware虚拟机linux重置密码
- 《这个历史挺靠谱·上·袁腾飞讲中国史》读后感
- 使用Layui制作的简单数据表格
- ubuntu 文件管理器推荐
- idea关联scala与spark开发(全)
- World Streamer学习4
- 目前使用ORACLE EBS的公司列表
热门文章
- Html5 打砖块游戏,加入道具和速通模式(含源码)
- mysql 超卖_MYSQL处理高并发,防止库存超卖(图解)
- yxy小蒟蒻的201119总结
- MacBook下载的软件显示无法打开“某某某”,因为Apple无法检查其是否包含恶意软件。”的解决办法
- 6-机器学习之KNN(K-近临算法)
- 信息安全快讯丨密标委发布信息系统密码应用基本要求;国家漏洞库关于微软多个安全漏洞的通报;支付宝检测到部分苹果用户ID被盗
- matlab length什么意思,matlab中的length什么意思?如何应用?
- PG系列1-postgresql的源码编译安装(CentOS7.8)
- win7显示隐藏文件夹的方法
- Python-Locust接口压力测试