话不多说,直接上代码,输入一个整数就行(有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();
}

自制的一个小地图生成器相关推荐

  1. 《JAVA练习题目7》 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数。(类PrimeGenerator都由类Main代替)

    题目内容: 定义一个素数生成器类PrimeGenerator,用于生成给定区间内的所有素数.要求PrimeGenerator类具有: 属性:start(区间起始值),end(区间终止值),两个属性均为 ...

  2. 利用 Laravel 花 2 小时撸一个 RSS 生成器

    Wait no longer! Create RSS feeds for all websites you care about and read them from the comfort of y ...

  3. 用一个程序生成另一个程序_还有另一个报告生成器?

    用一个程序生成另一个程序 如果您具有业务应用程序开发的经验,那么很可能会遇到要求该应用程序具有灵活的报告机制的需求. 我工作的公司主要专注于开发业务解决方案,而报告是必不可少的,实际上,它必须包含我们 ...

  4. 还有另一个报告生成器?

    如果您具有业务应用程序开发的经验,那么很可能会遇到要求该应用程序具有灵活的报告机制的需求. 我工作的公司主要专注于开发业务解决方案,而报告是必不可少的,的确,它必须包含我们开发的所有企业系统的方面. ...

  5. 有趣的深度学习——使用TensorFlow 2.0 + RNN 实现一个古体诗生成器

    一.前言 很早之前,我曾经写过一个古体诗生成器(详情可以戳TensorFlow练手项目二:基于循环神经网络(RNN)的古诗生成器),那个时候用的还是Python 2.7和TensorFlow 1.4. ...

  6. 收藏一个字帖生成器,在线生成字帖

    我自用的实用工具网站收藏 一个字帖生成器网站,可以在线生成字帖 学习巴士,www.3415.cn 挺好用的,几十个字帖生成功能.

  7. c语言中定义密码为英文字母,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...

  8. 跪求一个木马生成器要零点的 谢谢!~

    跪求一个木马生成器要零点的 谢谢!~ 跪求一个木马生成器要零点的 谢谢!~ 希望大家给个  156413487   答案是5165824

  9. 四位密码器c语言编程,请设计 一个密码生成器,要求随机生成4组10位密码(C语言)...

    请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include #include #include ...

  10. Android 自制的一个简单的心电图pulseview

    一个自己参考制作出来的心电图,原理很简单,先上图 上面部分是一个view用于显示局部心电图,下面是一个类似进度条的view用于显示全部心电图,当下面的黄色正方形被拖动,上面则会显示正方形所包含区域的局 ...

最新文章

  1. 视觉SLAM学习(三)--------SLAM 综述
  2. 自动驾驶中多模态三维目标检测研究综述
  3. win7没有个性化如何把计算机放到桌面,win7系统家庭版右键没有个性化设置桌面壁纸...
  4. 【本周上榜!】看雪论坛精华优秀文章分享与点评
  5. Windows -- ThinkPad E470 win10-64bit显示问题和声音播放问题
  6. Selenium Grid使用
  7. 32形容词/副词的原级比较
  8. win10c盘扩容_【电脑维护宝典】C盘不再亮起红灯!
  9. Technorati 2008 年度博客状况报告(第一部分)
  10. Device disconnected
  11. 鸿蒙对比ios流畅,鸿蒙OS 2.0对比iOS 14:苹果流畅度完败?
  12. 如何做好实施前准备?
  13. 一年降本 40%:基于云服务的技术成本精细化运营策略
  14. 大数据三维可视化展示系统的应用分析
  15. Linux系统下运行QT视频播放器示例程序(Media Player Example )
  16. 关于matlab兼容性win10系统,详解win10系统运行不了matlab10软件的办法
  17. 如何设计一个自己的操作系统(1)
  18. 美女在中国移动上厕所!
  19. Android Studio使用mp4parser进行视频的分割
  20. oracle 取字段长度为5,oracle9i中varchar2(5)字段长度不足5前面补0?

热门文章

  1. Python画哆啦A梦
  2. 什么是0day漏洞?
  3. android切图规范,APP切图详细规范终极指南
  4. 写 node.js 用什么编辑器?
  5. draft.js编辑器开发笔记
  6. C# Hprose轻量级、跨语言、跨平台的面向对象的高性能远程动态通讯中间件
  7. 白菜cms双端影视APP源码
  8. Linux上如何安装微信! 或登录网页版微信提示:为了你的帐号安全,此微信号不能登录网页微信。你可以使用Windows微信或Mac微信在电脑端登录。
  9. linux - CRT -- SSH链接 - sftp - cron定时任务、
  10. 机器人控制框架行为树py_trees <一、行为树介绍>