自制的一个小地图生成器
话不多说,直接上代码,输入一个整数就行(有2个函数是借鉴大佬的)头文件私信找我
#include<iostream>
#include<ctime>
#include<windows.h>
#include<cstring>
#include<string>
#include<cmath>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<colordlg.h>
#include"colordlg.h"
#include"fontcolor.h"
#include <stdio.h>
#include <locale.h>
using namespace std;
typedef unsigned long long ul;
struct blocks{
ul map_x;
ul map_y;
int map_=2191;};
blocks maps[1024][1024];
ul maps_x,maps_y;//先y后x
string bl="■"; //□■0,三种切换
//输入地图
void map_in(){
for(ul i = 1;i<=maps_y;i++)
for(ul j = 1;j<=maps_x;j++)
cin>>maps[i][j].map_;
system("cls");
}
void COLOR_PRINT(int color){
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | color);
cout<<bl;
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);}
/* 0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色*/
//返回[left, right]的随机数
int randNext(int left, int right){
static unsigned int seed = 0;seed++;
srand((unsigned) time(NULL) + seed * seed);
return rand() % (right - left + 1) + left;
}//small big
void seed_d(){//随机种子生成 洞穴
for(ul i = 1;i<=maps_y;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=randNext(0,99);
//洞穴输出
for(ul i = 0;i<=maps_y+1;i++){
for(ul j = 0;j<=maps_x+1;j++){
if(maps[i][j].map_==2191)
COLOR_PRINT(36);//边框
if(maps[i][j].map_>=0&&maps[i][j].map_<=54)
COLOR_PRINT(8);//石头
if(maps[i][j].map_>=55&&maps[i][j].map_<=95)
cout<<" ";//COLOR_PRINT(7);//路
if(maps[i][j].map_>=96&&maps[i][j].map_<=99)
COLOR_PRINT(9);}//矿物
cout<<endl;
}
}
void seed_q(){//全地形种子生成器
//0-54石头,55-95空气 96-99矿物,100-104草方块,105-109泥土,110基岩。
//宽度函数可改变
for(ul i = 1;i<=3;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=56;//2格高的空气
for(ul i = 4;i<=4;i++){
for(ul j = 1;j<=maps_x;j++){
int ddd = randNext(1,4);
if(ddd==1)
maps[i][j].map_=56;//可能是空气
else
maps[i][j].map_=104;//可能是草方块
}
}
for(ul i = 5;i<=5;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=104;//加一层草方块
for(ul i = 6;i<=6;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=106;//加一层泥土
for(ul i = 7;i<=7;i++){
for(ul j = 1;j<=maps_x;j++){
int ddd = randNext(1,4);
if(ddd==1)
maps[i][j].map_=53;//可能是石头
else
maps[i][j].map_=106;//可能是泥土
}
}
for(ul i = 8;i<=8;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=53;//加一层石头
for(ul i = 9;i<=20;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=randNext(0,99);
for(ul i = 21;i<=21;i++)
for(ul j = 1;j<=maps_x;j++)
maps[i][j].map_=110;//加一层石头
//0-54石头,8灰,55-95空气,双空格, 96-99矿物,1蓝色,总体没确定,100-104草方块,2,105-109泥土,11,110基岩0,2191边框36。
maps_y=22;
for(int i = 0;i<=maps_y;i++){
for(int j = 0;j<=maps_x+1;j++){
if(maps[i][j].map_==2191)
COLOR_PRINT(15);//边框
if(maps[i][j].map_>=0&&maps[i][j].map_<=54)
COLOR_PRINT(8);
if(maps[i][j].map_>=55&&maps[i][j].map_<=95)
cout<<" ";
if(maps[i][j].map_>=96&&maps[i][j].map_<=103)
COLOR_PRINT(1);
if(maps[i][j].map_>=104&&maps[i][j].map_<=104)
COLOR_PRINT(2);
if(maps[i][j].map_>=105&&maps[i][j].map_<=109)
COLOR_PRINT(6);
if(maps[i][j].map_==110)
COLOR_PRINT(0);
}cout<<endl;
}
}
int main(){
cin>>maps_x;
seed_q();
}
自制的一个小地图生成器相关推荐
- 《JAVA练习题目7》 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数。(类PrimeGenerator都由类Main代替)
题目内容: 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数.要求PrimeGenerator类具有: 属性:start(区间起始值),end(区间终止值),两个属性均为 ...
- 利用 Laravel 花 2 小时撸一个 RSS 生成器
Wait no longer! Create RSS feeds for all websites you care about and read them from the comfort of y ...
- 用一个程序生成另一个程序_还有另一个报告生成器?
用一个程序生成另一个程序 如果您具有业务应用程序开发的经验,那么很可能会遇到要求该应用程序具有灵活的报告机制的需求. 我工作的公司主要专注于开发业务解决方案,而报告是必不可少的,实际上,它必须包含我们 ...
- 还有另一个报告生成器?
如果您具有业务应用程序开发的经验,那么很可能会遇到要求该应用程序具有灵活的报告机制的需求. 我工作的公司主要专注于开发业务解决方案,而报告是必不可少的,的确,它必须包含我们开发的所有企业系统的方面. ...
- 有趣的深度学习——使用TensorFlow 2.0 + RNN 实现一个古体诗生成器
一.前言 很早之前,我曾经写过一个古体诗生成器(详情可以戳TensorFlow练手项目二:基于循环神经网络(RNN)的古诗生成器),那个时候用的还是Python 2.7和TensorFlow 1.4. ...
- 收藏一个字帖生成器,在线生成字帖
我自用的实用工具网站收藏 一个字帖生成器网站,可以在线生成字帖 学习巴士,www.3415.cn 挺好用的,几十个字帖生成功能.
- c语言中定义密码为英文字母,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...
请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...
- 跪求一个木马生成器要零点的 谢谢!~
跪求一个木马生成器要零点的 谢谢!~ 跪求一个木马生成器要零点的 谢谢!~ 希望大家给个 156413487 答案是5165824
- 四位密码器c语言编程,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...
请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...
- Android 自制的一个简单的心电图pulseview
一个自己参考制作出来的心电图,原理很简单,先上图 上面部分是一个view用于显示局部心电图,下面是一个类似进度条的view用于显示全部心电图,当下面的黄色正方形被拖动,上面则会显示正方形所包含区域的局 ...
最新文章
- 视觉SLAM学习(三)--------SLAM 综述
- 自动驾驶中多模态三维目标检测研究综述
- win7没有个性化如何把计算机放到桌面,win7系统家庭版右键没有个性化设置桌面壁纸...
- 【本周上榜!】看雪论坛精华优秀文章分享与点评
- Windows -- ThinkPad E470 win10-64bit显示问题和声音播放问题
- Selenium Grid使用
- 32形容词/副词的原级比较
- win10c盘扩容_【电脑维护宝典】C盘不再亮起红灯!
- Technorati 2008 年度博客状况报告(第一部分)
- Device disconnected
- 鸿蒙对比ios流畅,鸿蒙OS 2.0对比iOS 14:苹果流畅度完败?
- 如何做好实施前准备?
- 一年降本 40%:基于云服务的技术成本精细化运营策略
- 大数据三维可视化展示系统的应用分析
- Linux系统下运行QT视频播放器示例程序(Media Player Example )
- 关于matlab兼容性win10系统,详解win10系统运行不了matlab10软件的办法
- 如何设计一个自己的操作系统(1)
- 美女在中国移动上厕所!
- Android Studio使用mp4parser进行视频的分割
- oracle 取字段长度为5,oracle9i中varchar2(5)字段长度不足5前面补0?
热门文章
- Python画哆啦A梦
- 什么是0day漏洞?
- android切图规范,APP切图详细规范终极指南
- 写 node.js 用什么编辑器?
- draft.js编辑器开发笔记
- C# Hprose轻量级、跨语言、跨平台的面向对象的高性能远程动态通讯中间件
- 白菜cms双端影视APP源码
- Linux上如何安装微信! 或登录网页版微信提示:为了你的帐号安全,此微信号不能登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。
- linux - CRT -- SSH链接 - sftp - cron定时任务、
- 机器人控制框架行为树py_trees <一、行为树介绍>