c++游戏制作指南 模板(权当预告)

news2024/10/6 14:37:35

🍿*★,°*:.☆( ̄▽ ̄)/$:*.°★* 🍿
       🍟欢迎来到静渊隐者的csdn博文,本文是c++游戏制作指南的一部🍟

 

🍕更多文章请点击下方链接🍕

🍨 c++游戏制作指南🍨


🍜专栏介绍:在这一专栏中,我将循循善诱,带领你,在冷峻的控制台上,种满缤纷,一同走入c++控制台游戏的殿堂。

🥨适宜人群:学习C++语言三个月及以上的爱好者,熟记基础语法(选择、循环两大结构),掌握基础算法(高精度、排序、模拟、贪心、搜索、动规等),知晓基础数据结构(数组、字符串、链表、栈、队列、树、图)。

🌭学习目的:能够自主编写出有趣的c++控制台游戏,并掌握自学的方法。
🥞喜欢的朋友可以关注一下,下次更新不迷路


🥙前言

在一片静谧的森林中,淡金色的阳光透过树叶的缝隙,洒在柔软的青苔上,仿佛把时间的流动都放缓了。在这里,一切都显得那么和谐,那么美好。森林的每一片树叶,每一株草,甚至每一丝风,都充满了生命的气息,这种气息是如此清新,如此宁静,仿佛是大自然的呼吸,使得人们愿意停下脚步,侧耳倾听。

#include <iostream>
using namespace std;

#define N 100010
#define INF 1e9
#define ls(x) tr[x].s[0]
#define rs(x) tr[x].s[1]
int n, m;
struct node{
  int s[2]; //左右儿子
  int p; //父亲
  int v; //节点权值
  int cnt; //权值出现次数
  int siz; //子树大小
  void init(int p1,int v1){
    p=p1, v=v1;
    cnt=siz=1;
  }
}tr[N];
int root; //根节点编号
int idx; //节点个数

void pushup(int x){
  tr[x].siz=tr[ls(x)].siz+tr[rs(x)].siz+tr[x].cnt;
}
void rotate(int x){
  int y=tr[x].p, z=tr[y].p;
  int k = tr[y].s[1]==x;
  tr[z].s[tr[z].s[1]==y] =x;
  tr[x].p = z;  
  tr[y].s[k] = tr[x].s[k^1];
  tr[tr[x].s[k^1]].p = y;
  tr[x].s[k^1] = y;
  tr[y].p = x;
  pushup(y), pushup(x);
}
void splay(int x, int k){
  while(tr[x].p!=k){
    int y=tr[x].p, z=tr[y].p;
    if(z!=k)   // 折转底,直转中
      (ls(y)==x)^(ls(z)==y)
        ? rotate(x) : rotate(y);
    rotate(x);
  }
  if(k==0) root = x;
}
void insert(int v){ //插入
  int x=root, p=0;
  while(x && tr[x].v!=v)
    p=x, x=tr[x].s[v>tr[x].v];
  if(x) tr[x].cnt++;
  else{
    x=++idx;
    tr[p].s[v>tr[p].v]=x;
    tr[x].init(p,v);
  }
  splay(x, 0);
}
void find(int v){ //找到v并转到根
  int x=root;
  while(tr[x].s[v>tr[x].v]&&v!=tr[x].v) 
    x=tr[x].s[v>tr[x].v]; 
  splay(x, 0);
}
int getpre(int v){ //前驱
  find(v);
  int x=root;
  if(tr[x].v<v) return x;
  x=ls(x);
  while(rs(x))x=rs(x);
  return x;
}
int getnxt(int v){ //后继
  find(v);
  int x=root;
  if(tr[x].v>v) return x;
  x=rs(x);
  while(ls(x))x=ls(x);
  return x;
}
void del(int v){ //删除
  int pre=getpre(v);
  int suc=getnxt(v);
  splay(pre,0), splay(suc,pre);
  int del=tr[suc].s[0];
  if(tr[del].cnt>1)
   tr[del].cnt--, splay(del,0);
  else
   tr[suc].s[0]=0,splay(suc,0);
}
int getrank(int v){ //排名
  find(v);
  return tr[tr[root].s[0]].siz;
}
int getval(int k){ //数值
  int x=root;
  while(1){
    int y=ls(x);
    if(tr[y].siz+tr[x].cnt<k)
      k -= tr[y].siz+tr[x].cnt,
      x = rs(x);
    else if(tr[y].siz>=k) x=y;
    else break;           
  }
  splay(x, 0);
  return tr[x].v;
}
int main(){
  insert(-INF);insert(INF); //哨兵
  scanf("%d", &n);
  while(n--){
    int op,x;
    scanf("%d%d", &op, &x);
    if(op==1) insert(x);
    if(op==2) del(x);
    if(op==3) printf("%d\n",getrank(x));
    if(op==4) printf("%d\n",getval(x+1));
    if(op==5) printf("%d\n",tr[getpre(x)].v);
    if(op==6) printf("%d\n",tr[getnxt(x)].v);
  }
  return 0;
}

🥪一、XXX

在这片神秘的森林中,有一条清澈的小溪穿过,溪水淙淙,如歌如诗,它从山脚下流过,石头上溅起的水花,像是在讲述着每一个美丽的故事。小溪的两旁,野花繁茂,五彩斑斓,它们在微风中轻轻摇曳,花香四溢,与溪水的歌声交织在一起,构成了一首动人的乐章。

🍰二、XXX

向远处望去,森林的尽头是一座静默的山峰,它矗立在那儿,默默地守护着这片美丽的土地。山峰之上的云雾缭绕,如同仙气缭绕,给人一种宁静而神秘的感觉。山脚下,一片湖泊安静地卧着,湖水如镜,倒映着山峰的雄伟和天空的蔚蓝,一切都显得那么和谐,那么宁静。

🌮三、XXX

在这片大自然的画卷中,人们仿佛能找到内心的宁静和身心的放松。在这里,我们可以忘记城市的喧嚣和繁忙,感受到大自然的美丽和宁静。这是一片没有杂质,没有纷扰,只有自然和和谐的土地。在这样的环境中,我们仿佛能找到自我,找到那份来自内心的平静和宁静。

🍔四、XXX

在森林的深处,还有一片神秘的花园,那里盛开着各种奇特的花朵。花朵们竞相开放,色彩斑斓,形态各异,散发出馥郁的芳香,令人陶醉。花园的中心是一棵古老的树,它的枝叶繁茂,遮天蔽日,给人一种威严而又神秘的感觉。

在这片神秘的花园中,有许多小动物们穿梭其间,它们时而欢快地奔跑,时而悠闲地漫步,它们的存在给这片森林增添了更多的生机与活力。

太阳渐渐落下,天空被染上了一片金黄色,美丽的晚霞把整个森林映照得如梦如幻。此时,森林里的每一处都散发着温暖的光芒,仿佛是大自然的画卷,美得令人窒息。

夜幕降临,星星在天空中闪烁,一轮明亮的月亮高悬天际,照亮了整个森林。夜晚的森林变得更加神秘而美丽,一切都显得那么静谧,那么祥和。

这片美丽的森林,是一个充满生机和和谐的地方,它让人们忘却烦恼,感受到大自然的美丽和力量。在这里,我们可以感受到生命的脉动,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。

这是一个值得我们珍惜和保护的地方,是一个能让我们心灵得到净化和慰藉的净土。让我们用心去感受这片美丽的森林,去感受大自然的美丽和神秘,去寻找那份来自内心的平静和宁静。

🍣五、结语

在森林的更深处,有一条蜿蜒的小路,它穿越密密的树林,通向了未知的远方。小路两旁长满了各种花草,它们在微风中轻轻摇曳,发出淡淡的芳香。沿着这条小路向前走,仿佛进入了一个神秘的世界,每一个转角都有可能遇见未知的惊喜。

在小路的尽头,是一片静谧的湖面。湖面宛如一面镜子,倒映着周围的树木和天空,形成了一幅美丽的画卷。湖水清澈见底,鱼儿在水中自由自在地游弋,偶尔跃出水面,溅起一串串水花。湖边长满了柳树,它们在微风中轻轻拂动着,仿佛在向游客们讲述着这片森林的故事。

湖的另一侧是一座小山,山上长满了各种各样的树木和花草。登上山顶,可以俯瞰整个森林,远处的景色如诗如画,令人陶醉。在山顶上还有一个古老的寺庙宇,它静静地矗立在那里,散发着神秘的气息。进入庙宇,可以看到许多古老的佛像和神秘的符咒,感受到一种神秘而庄严的氛围。

回到森林中,夜幕已经降临。星空如同撒满了钻石的黑色幕布,闪烁着耀眼的光芒。月亮高悬天际,洒下柔和的月光,照亮了整个森林。此时,森林里的每一处都变得神秘而美丽,仿佛是一个仙境。在这片神秘的森林中,人们仿佛可以感受到自然的神秘力量,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。

这片美丽的森林是大自然的杰作,是自然的恩赐。它让人们忘却烦恼,感受到大自然的美丽和力量。在这里,我们可以感受到生命的脉动,可以听到大地的的心跳,可以闻到空气中弥漫的幸福和喜悦。这是一个值得我们珍惜和保护的地方,是一个能让我们心灵得到净化和慰藉的净土。

我们应该珍惜这片森林,保护它的自然环境,不让任何形式的破坏和污染破坏它的美丽和宁静。我们要用行动去爱护它,去照顾它,去保护它,让它的美丽和神秘得以延续。

在这片神秘的森林中,我们不仅可以感受到大自然的的美和神秘,还可以从中汲取到力量和勇气。当我们遇到困难和挫折时,我们可以从森林中汲取到坚持和奋斗的力量;当我们感到疲惫和迷茫时,我们可以从森林中感受到宁静和安详的力量。这片森林是我们的精神家园,是我们的力量源泉。

让我们用心去感受这片美丽的森林,去感受大自然的美丽和神秘,去寻找那份来自内心的平静和宁静。让我们用行动去爱护它,去照顾它,去保护它,让它的美丽和神秘得以延续。因为这片森林不仅是大自然的杰作,更是我们心灵的净土,是我们生命中的宝贵财富。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/820436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++调用C# dll成功示例

方法1&#xff1a;公共语言运行时支持 一.准备C# dll类库 。生成CSLib.dll namespace CSLib {public class Class1{private string name;public string Name{get{return name;}set{name "Your Name: " value;}}} }二、写C应用调用 1)需要把dll复制到运行目录下。…

Python实现GA遗传算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世…

超细详解,接口自动化测试-JSON和JsonPath提取数据(实战)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 JSON(JavaScript …

修改若依框架为自己的项目并上传到git

第一步: 打开后台若依项目,把全局替换打开,搜索ruoyi 和 RuoYi 和 若依 分别换成自己公司的名称( 记住要把区分大小写打开 ) 第二步: 关闭idea中的项目,然后在文件夹中打开这个项目,然后搜索target( 缓冲 ) 删除,部分人的电脑上面还有imp文件切记也要删除 第三步: 接着把项目…

Day09-作业(Mybatis)

作业1&#xff1a;通过SpringBootMybatis的方式完成如下学员管理的需求 页面原型&#xff1a; 数据准备&#xff1a; -- 学员表 create table student(id int unsigned primary key auto_increment comment ID,主键,name varchar(10) not null comment 姓名,no char(10) not …

C++多线程基本原理详解

在C学习过程中&#xff0c;要想“更上一层楼”的话&#xff0c;多线程编程是必不可少的一步&#xff0c;大家需要更多的思考是为什么这么做&#xff1f;这样做的好处是什么&#xff1f;以及多线程编程都可以应用在哪里&#xff1f; 1、多线程 传统的C&#xff08;C11标准之前…

R语言中数据重塑(长宽表的转化)

学习笔记&#xff0c;仅供学习使用。 目录 1-什么是整洁的数据&#xff1f; 2-宽表变成长表 示例1&#xff1a; 示例2&#xff1a; 示例3&#xff1a; 3-长表变宽表 示例1&#xff1a; 示例2&#xff1a; 1-什么是整洁的数据&#xff1f; 按照Hadley的表述&#xf…

我的观影记录表【个人向】

目录 前言电影评分标准闪电侠&#xff08;2023&#xff09;银河护卫队3&#xff08;2023&#xff09; 前言 这里是我本人的观影记录&#xff0c;这个想法2年前就有了&#xff0c;但是一直比较懒&#xff0c;现在&#xff08;上班摸鱼&#xff09;准备重新开始&#xff0c;评价…

Spring Boot Starter 剖析与实践 | 京东云技术团队

引言 对于 Java 开发人员来说&#xff0c;Spring 框架几乎是必不可少的。它是一个广泛用于开发企业应用程序的开源轻量级框架。近几年&#xff0c;Spring Boot 在传统 Spring 框架的基础上应运而生&#xff0c;不仅提供了 Spring 的全部功能&#xff0c;还使开发人员更加便捷地…

Bigemap 在网络通讯行业中的应用场景

地图应用&#xff1a; 使用我们软件下载地图&#xff0c;对影像需求是高频更新&#xff0c;我们软件目前的更新频率可以满足需求&#xff0c;实现离线地图的下载&#xff0c;在地图上导入数据查看和标注点位&#xff0c;基站信号覆盖展示数据并且导出&#xff0c;并且会发送到…

​​​amoeba实现MySQL读写分离

​​​amoeba实现MySQL读写分离 准备环境&#xff1a;主机A和主机B作主从配置&#xff0c;IP地址为192.168.131.129和192.168.131.130&#xff0c;主机C作为中间件&#xff0c;也就是作为代理服务器&#xff0c;IP地址为192.168.131.136。三台服务器操作系统为RHEL6.4 x86_64,为…

Codeforces Round 889 (Div. 2)(视频讲解A——D)

文章目录 A Dalton the TeacherB Longest Divisors IntervalC2 Dual (hard Version)D Earn or Unlock Codeforces Round 889 (Div. 2)&#xff08;视频讲解A——D&#xff09; A Dalton the Teacher #include<bits/stdc.h> #define endl \n #define INF 0x3f3f3f3f us…

自定义MVC增删改查

目录 mymvcdemo是自定义mvc框架的使用示例 1.1 实体类 1.2 dao方法 1.3 写Service / biz 三层架构 1.4 建action 相当于selvert 1.5 con连接MySQL 8.0 版本 1.6 配置文件 XML 1.7 主界面布局 1.8 增加界面布局 1.9 写tld配置文件 2.0 注意架包 我是已经打包好的 mymv…

Leetcode-每日一题【剑指 Offer 53 - I. 在排序数组中查找数字 I】

题目 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums [5,7,7,8,8,10], target 8输出: 2 示例 2: 输入: nums [5,7,7,8,8,10], target 6输出: 0 提示&#xff1a; 0 < nums.length < 105-109 < nums[i] < 109nums 是一个非递减数组-109 < targe…

Java课题笔记~ MyBatis入门

一、ORM框架 当今企业级应用的开发环境中&#xff0c;对象和关系数据是业务实体的两种表现形式。业务实体在内存中表现为对象&#xff0c;在数据库中变现为关系数据。当采用面向对象的方法编写程序时&#xff0c;一旦需要访问数据库&#xff0c;就需要回到关系数据的访问方式&…

软件测评中心测试流程是怎样的?CMA、CNAS软件测试报告出具

软件测评中心是一个专门负责进行软件评估、测试和审查等工作的机构。在软件测评中心中&#xff0c;软件测试流程是按照一系列固定的步骤和流程进行的&#xff0c;以确保测试工作的全面性、系统性和规范性。 1、需求分析&#xff1a;在软件测评过程中&#xff0c;首先需要对软件…

经典病毒上线流量分析-Lokibot

一、概述 Lokibot于2015年面世&#xff0c;持续活跃至今&#xff0c;是一种高度危险且隐匿的恶意软件&#xff0c;旨在窃取受害主机的敏感信息&#xff0c;包括存储的密码、浏览器登录凭据以及加密货币钱包等&#xff0c;并将这些信息上送到远程C2服务器上。本文将重点针对Lok…

穷举深搜暴搜回溯剪枝(1)

一)全排列: 46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 1)先画出决策树: 越详细越好&#xff0c;就是我们在进行暴力枚举这道题的过程中&#xff0c;如何不重不漏地将所有的情况全部枚举到&#xff0c;把这个思想历程给画下来&#xff0c;就可以了&#xff0c;把每一步…

【css】外边距margin

外边距中有一个属性值比较有意思&#xff1a;inherit 值&#xff0c;继承父类的属性。 <!DOCTYPE html> <html> <head> <style> div {border: 1px solid red;margin-left: 100px; }p.ex1 {margin-left: inherit; } </style> </head> <…

[React]生命周期

前言 学习React&#xff0c;生命周期很重要&#xff0c;我们了解完生命周期的各个组件&#xff0c;对写高性能组件会有很大的帮助. Ract生命周期 React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁 初始化 1、getDefaultProps() 设置默认的props&#xff0c;也可以用duf…