C++游戏,神之领域!!

BehaviorTree.CPP:一个功能强大的C++行为树库 BehaviorTree.CPP是一个功能强大、易于使用的C++行为树库。无论你是开发游戏AI、机器人控制系统,还是其他需要复杂决策逻辑的应用,BehaviorTree.CPP都能为你提供有力的支持。通过其丰富的功能和灵活的设计,你可以快速构建出高效、可维护的AI决策系统。文章连接:www.dongaigc.com/a/behaviortree-cpp-powerful-cpp-behavior-tree-library。 阅读详情

    最近做了一款C++的游戏,“神之领域”!!!

下次更新:

  • 增加更多闯关。
  • 增加副本模式。
  • 更多boss等你来袭

代码:

#include<iostream>
#include<algorithm>
#include<windows.h>
#include<cmath>
#include<cstdio>
#include<string>
#include<time.h>
using namespace std;
/*=========== variable ===========*/
string name;
int aggressivity=50;
int blood=120;
string armor="not";
string weapon="not";
long long money=100;
string monster1[6]={" ","flame zombie","Fire Whip Tree Demon","Industry Fire Giant","Hell Fire Earth Corpse","Spitfire Gate Ghost"};
/*=========== class ===========*/
class display{
	public:
		void image();
		void flash();
		void clsxy();
		void cls();
		void mess_intro(){
			MessageBox(NULL,"  Let's get started! It is not impossible for mortals to kill gods!!!","start game",MB_OK|MB_ICONASTERISK); 
		}
		void pass_flash(){
			printf(
			"1.Flame Forest(3 Stars)\n"
			"2.Dark Star River(5 Stars) Not yet completed\n"
			);
		}
		void costoms_1();
};
class outcome{
	public:
		void state();
		void shop();
		void page();
		void artifact1(){
			outcome v;
			system("cls");
			system("color 6");
			printf(
			"1.Purple Dragon Dagger   100 money 140 power\n"
			"2.Cloud Deep Sword   300 money 160 power\n"
			"3.Dragon Calling Bracelet   700 money 945 power\n"
			"4.key stand   1200 money 1050 power\n"
			"5.The Ring of Creation   9900 money 9999 power\n"
			);	
			int opt;
			cin>>opt;
			if(opt==1){
				if(money<100){
					cout<<"Not enough money!";
					Sleep(800);v.page();
				}else{
					money-=100; 
					weapon="Purple Dragon Dagger";
					aggressivity+=140;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==2){
				if(money<300){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=300; 
					weapon="Cloud Deep Sword";
					aggressivity+=160;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==3){
				if(money<700){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=700; 
					weapon="Dragon Calling Bracelet";
					aggressivity+=945;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==4){
				if(money<1050){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=1200; 
					weapon="key stand";
					aggressivity+=1050;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==5){
				if(money<9900){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=9900; 
					weapon="The Ring of Creation";
					aggressivity+=9999;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}
		}
		void artifact2(){
			outcome v;
			system("cls");
			system("color 5");
			printf(
			"1.Leather iron armor   50 money 90 dam\n"
			"2.Refined Iron Armor   350 money 155 dam\n"
			"3.Diamond Divine Apparel   650 money 900 dam\n"
			"4.Obsidian Divine Apparel   1720 money 1200 dam\n"
			"5.Supreme God Battle Armor   9090 money 9600 dam\n"
			);	
			int opt;
			cin>>opt;
			if(opt==1){
				if(money<50){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=50; 
					armor="Leather iron armor";
					blood+=90;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==2){
				if(money<350){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=350; 
					armor="Refined Iron Armor";
					blood+=155;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==3){
				if(money<650){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=650; 
					armor="Diamond Divine Apparel";
					blood+=900;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==4){
				if(money<1720){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=1720; 
					armor="Obsidian Divine Apparel";
					blood+=1200;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}else if(opt==5){
				if(money<9090){
					cout<<"Not enough money!";
					Sleep(800);
					v.page();
				}else{
					money-=9090; 
					armor="Supreme God Battle Armor";
					blood+=9600;
					cout<<"Purchase successful!";
					Sleep(700);
					v.page();
				}
			}
		}
		void risk();
};
/*=========== function ===========*/
void gotoxy(SHORT x,SHORT y){
	COORD pos={x,y};
	HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut,pos);
	return;
}
void hideCursor(){
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = 0;
	cursor.dwSize = 1;
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(hOut, &cursor);
}
void showCursor(){
	HANDLE h_GAME =GetStdHandle(STD_OUTPUT_HANDLE);
	CONSOLE_CURSOR_INFO cursor_info;
	GetConsoleCursorInfo(h_GAME,&cursor_info);
	cursor_info.bVisible=true;
	SetConsoleCursorInfo(h_GAME,&cursor_info);
}
int rand(int a,int b){
	int s=rand()%b+a;
	return s;
}
void display::image(){
	printf(
	"\n"
	"\n"
	"          /========================\\ \n"
	"          =                        = \n"
	"          =      Divine Domain     = \n"
	"          =                        = \n"
	"          \\========================/ \n"
	);
}
void display::cls(){
	system("cls");
}
void display::clsxy(){
	gotoxy(0,0);
}
void display::flash(){
	display vice1;
	
	system("color 8"); vice1.image();
	Sleep(800); vice1.clsxy();
	
	system("color 7"); vice1.image();
	Sleep(800); vice1.clsxy();
	
	system("color F"); vice1.image();
	Sleep(2500);
}
void outcome::page(){
	display vice2;
	vice2.cls();
	outcome myclass;
	system("color 1");
	printf(
	"1.To risk 2.shop 3.state 4.duplicate\n"
	);
	int opt=0;
	cin>>opt;
	if(opt==1){
		myclass.risk();
	}else if(opt==2){
		myclass.shop();
	}else if(opt==3){
		myclass.state();
	}else if(opt==4){
		MessageBox(NULL,"  Author incomplete!","sorry",MB_OK|MB_ICONASTERISK);
		myclass.page();
	}
}
void outcome::state(){
	outcome s;
	system("cls");
	hideCursor();
	system("color 4");
	for(int i=5;i>=1;i--){
		cout<<"warrior name : "<<name<<endl;
		cout<<"money : "<<money<<endl;
		cout<<"aggressivity : "<<aggressivity<<endl;
		cout<<"blood : "<<blood<<endl;
		cout<<"armor : "<<armor<<endl;
		cout<<"weapon : "<<weapon<<endl<<endl;
		cout<<i<<" seconds left";
		Sleep(1000);
		gotoxy(0,0);
	}
	s.page();
}
void outcome::shop(){
	outcome vice;
	system("cls");
	system("color F");
	printf(
	"1.weapon\n"
	"2.armor\n"
	);
	int opt;
	cin>>opt;
	if(opt==1){
		vice.artifact1();
	}else if(opt==2){
		vice.artifact2();
	}
}
void outcome::risk(){
	display s;outcome v;
	s.cls();
	s.pass_flash();
	system("color 2");
	int opt;
	cin>>opt;
	if(opt==2){
		MessageBox(NULL,"  Not yet completed!","Sorry",MB_OK|MB_ICONASTERISK);
		v.page();
	}else if(opt==1){
		s.costoms_1();
	} 
}
void game(){
	outcome s;
	showCursor();
	cout<<"your name : ";
	getline(cin,name);
	s.page();
}
void display::costoms_1(){
	display s;
	outcome v;
	s.cls();
	system("color 4");
	int cnt=0;
	int strike;
	int freak=rand(1,5);
	cout<<freak<<endl;
	string boss=monster1[freak];
	cout<<boss<<" Launched an attack on you!\n";
	printf(
	"blood volume:%d\n"
	"attack:%d\n"
	"First level core!"
	,freak*90,freak*67
	);
	int g=freak*60,f=freak*80;
	Sleep(3000);
	s.cls();
	int flag;
	while(f>0||blood>0){
		s.cls();
		if(blood<=g){
			printf("The monster is attacking you with %d damage. Do you want to escape\n",g);
		}
		printf("1.attack 2.escape\n");
		int opt;cin>>opt;
		if(opt==2){
			s.cls();
			printf("You have escaped!");
			Sleep(2000);
			v.page();
		}else{
			if(blood<=g){
				if(aggressivity>=f){
					system("cls");
					system("color E");
					printf("You won!!!");
					Sleep(3000);
					printf("reward:%d money",freak*100-10);
					money+=(freak*100-10);
					Sleep(4000);
					v.page();
				}else{
					if(opt==1){
						cnt++;
					}
					system("cls");
					system("color E");
					printf("You lost\nLimited time Participation rewards:%d",cnt*10); Sleep(3000); v.page();
					money+=cnt*10;
				}
			}
			s.cls();
			strike=rand(1,3);
			f-=(aggressivity+(strike==1?40:0));
			cnt++;
			printf("You dealt %d damage to ",(aggressivity+(strike==1?40:0)));cout<<boss;
			Sleep(2000);
			if(blood<1){
				flag=1;
				break;
			}
			blood-=g;
			if(f<1){
				flag=2;
				break;
			}
		}
	}
	s.cls();
	system("color E");
	if(flag==2){
		printf("You won!!!");
		Sleep(3000);
		printf("reward:%d money",freak*100-10);
		money+=(freak*100-10);
		Sleep(4000);
		v.page();
	}else if(flag==1){
		printf("You lost"); Sleep(3000); v.page();
	}
}
/*=========== The game is about to begin ! ===========*/
int main(){
	srand(time(nullptr));
	hideCursor();
	display reveal;
	reveal.flash();
	reveal.cls();
	reveal.mess_intro();
	game();
	return 0;
} 

我测试过一遍,可玩性较低,因此将初始数据增强了一些,勉强可以。

C++小游戏(原创) #include #include #include using namespace std; double shanghai[20]={0.6,1.1,2,3.16,5.5,7,10,20,50,100,146.23,254.13,312,403,601,1023}; double bosshealth[20]={2,3,4,5.9,8,14,19,32,73,157,200,403,801,1 阅读详情

相关推荐

学习C++可以做什么,可以从事哪些领域的工作

学习C++可以做什么,可以从事哪些领域的工作

xu_fu_yong的专栏 1万+

前缀和习题 :游戏之神,最大矩阵和,激光炸弹

题目中说地图,先想到了二维数组,有N个目标,N是我们给的炸弹个数,也是防炸弹的次数,后面给出的(x,y)是我们决定把炸弹放在那个位置, 放上去之后这个位置就具有了从0到+w的价值,当输入与上次相同的(x,y)坐标时,该点价值累加,对应题目中。,可以想到在地图中初始每个位置都是0,经过输入坐标确定w的值使每个位置的价值不同,而题目要求的就是规定一个半径R,在R*R的矩阵中,区域内价值和最多的即为所求区域。逐句来看,给我n个非负整数,说明要有数组来存放他们,提出q个问题,即q个询问,。

Swillow_的博客 339

AI在游戏领域的应用

"AI在游戏领域的应用" 1. 背景介绍 1.1 游戏行业的发展 游戏行业经历了从简单的街机游戏到当代电子游戏的长期发展,已经成为一个庞大的产业。随着计算机硬件性能的不断提升和图形图像技术的进步,游戏变得越来越真实逼真,给玩家带来身

AI天才研究院 1153

Cpp入门基础

定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下 ⾯的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。

2401_86658278的博客 5088

飙升C++游戏开发

同时,您也可以探索一些流行的游戏开发引擎,如Unreal Engine和Unity,它们提供了许多工具和资源,帮助开发人员更高效地开发C++游戏。同时,您也可以探索一些流行的游戏开发引擎,如Unreal Engine和Unity,它们提供了许多工具和资源,帮助开发人员更高效地开发C++游戏。同时,您也可以探索一些流行的游戏开发引擎,如Unreal Engine和Unity,它们提供了许多工具和资源,帮助开发人员更高效地开发C++游戏。

2401_84075976的博客 707

C++的十大核心应用领域:技术栈与代码示例详解

本文详细探讨了C++最擅长的十大开发领域,包括游戏开发、嵌入式系统、高性能计算、金融科技、操作系统开发、图形与视觉计算、网络与通信、数据库系统、人工智能与机器学习以及编译器与工具链开发。本文将详细探讨C++最擅长的十大开发领域,分析其在这些领域中的独一无二的作用,并结合技术栈和代码示例进行深入解析。现代游戏引擎(如Unreal Engine和Unity的底层)大多使用C++编写,能够直接操作内存、优化资源管理,并实现高效的图形渲染和物理模拟。嵌入式系统通常资源有限,C++的高效性和灵活性使其成为首选语言。

百锦再的博客 8476

探索godot-cpp: 开启游戏开发的C++新纪元

在游戏开发的世界里,每一个工具和框架都承载着开发者们对创意和技术追求的梦想。今天,我们要带您走进一个令人兴奋的开源项目——godot-cpp。这款基于著名的Godot引擎的C++绑定库,正以它强大的功能和灵活的设计,重新定义了跨平台游戏开发的可能性。 ## 一、项目介绍 ### 神来之笔 ——神级游戏引擎Godot与C++ Godot引擎凭借其简洁高效的界面设计、丰富的功能集以及活跃的社区支

gitblog_00992的博客 1980

cpp-Spearmint:专为FPS游戏设计的C++引擎

本文还有配套的精品资源,点击获取 简介:"cpp-Spearmint"是一个基于C++语言开发的、用于构建第一人称射击(FPS)游戏的引擎。该引擎提供了一个高效且可扩展的游戏开发框架,融合了面向对象编程、性能优化、内存管理等C++核心特性。开发者可以利用其分层或模块化设计的游戏架构,涵盖图形渲染、物理模拟、AI、输入处理、资源管理等关键功能,以实现高级别的游戏体验。此外,引...

weixin_42608299的博客 1787

C++在游戏领域的主要应用

1、C++简介 2、C++在游戏领域的优势 3、游戏开发需要掌握的核心知识 4、逆向工程在游戏开发中的应用‌

逆的博客 885

PSOC Creator 入门教程超详细

最近工作原因需要使用到赛普拉斯的一款芯片,奈何以前没有用过,所以趁这次也学习了一些简单的用法,总结一下,希望能帮到有需要朋友,因为网上关于这方面的文章少的可怜,详细点的更是少之又少!废话少说,正文开始.

qm_mq的博客 5744

树莓派CSI/DSI二合一接口深度玩法:同时驱动MIPI摄像头和屏幕的配置秘籍

本文详细解析了树莓派5上CSI/DSI二合一接口的深度玩法,提供了同时驱动MIPI摄像头和屏幕的完整配置秘籍。从硬件连接到软件设置,包括config.txt的优化配置,帮助用户充分利用树莓派5的双多功能接口,实现高效的双设备工作模式。

weixin_30687051的博客 573

想进入游戏开发领域,应该先学习C++编程还是C#编程?

要进入游戏开发,选择编程语言很重要。主要引擎如Unity用C#,Unreal Engine用C++。C++性能高,灵活,C#易学,跨平台。初学者可从C#和Unity入手,深入者学C++。两者各有优势,让你成为全面游戏开发者。

Richard_shen的博客 9150

优刻得首个「国产千卡智算集群」落地,支持智源千亿大模型训练

在人工智能引领的时代浪潮中,算力已成为技术进步与创新的核心驱动力。面对当下AI算力需求的飙升、高端AI芯片供应受限的挑战,加之OpenAI带来的技术封锁,唯有坚定不移的发展自主可控的国产技术方案,持续壮大国产智算集群规模,才能一路突破围追堵截,进一步促进国产大模型产业生态繁荣。集群还提供了完善高效的软件栈工具,集成多种主流的深度学习编程框架,通过测试验证,确保了对行业领先人工智能模型的高效支持,做到开箱即用,用户可快速投入模型的开发和部署,加速了其在人工智能领域的布局和发展。方面取得了显著成效。

Ucloud_TShare的博客 1471

BehaviorTree.CPP 使用教程

BehaviorTree.CPP 是一个用 C++ 编写的开源行为树库,旨在为机器人、游戏 AI 和其他需要复杂状态机管理的应用提供灵活、易于使用、反应迅速且高效的解决方案。行为树是一种用于控制复杂行为和决策过程的结构化方法,特别适用于需要并发执行多个动作的场景。 BehaviorTree.CPP 的主要特点包括: - 支持异步动作(非阻塞) - 允许构建反应式行为,支持多个动作并发执行 - 使...

gitblog_00518的博客 1358

MATLAB创建GUI面板实现二维码生成与识别

利用matlab设计gui界面实现二维码的生成与内容识别

infinitystardust的博客 3148

Qwen2.5-VL模型微调实战:从零到部署的完整流程(附避坑指南)

本文详细介绍了Qwen2.5-VL视觉语言模型从零开始的完整微调与部署流程。内容涵盖使用LLaMA-Factory进行LoRA微调的关键参数配置与避坑指南,以及如何将训练好的模型权重合并,并最终利用vLLM高性能推理引擎进行部署,为开发者提供了一套可落地的实战方案。

oo7890的博客 589

cpp / c++就业主要领域

核心岗位为基础架构工程师、高性能开发工程师、性能优化工程师、引擎开发工程师,负责高并发后端基础组件(如RPC框架、消息队列、分布式存储)开发、全链路性能优化(网络/内存/CPU层面极致调优、卡顿问题排查)、各类引擎研发(游戏引擎、音视频编解码引擎、渲染引擎、搜索引擎底层)等等。核心岗位为嵌入式开发工程师、硬件驱动工程师、核心模块开发工程师,聚焦AR/VR设备底层系统、手机底层硬件驱动(如摄像头、射频)、智能穿戴设备固件、物联网设备控制程序开发,衔接硬件与上层应用等等。游戏类:米哈游、网易游戏;

weixin_52259848的博客 465

5步搞定ABB机器人RobotStudio与S7-1500PLC的Profinet通讯(附PLCSIM调试技巧)

本文详细介绍了如何利用RobotStudio与TIA Portal软件,结合PLCSIM Advanced仿真器,在零硬件条件下实现ABB机器人与西门子S7-1500 PLC之间的Profinet通讯虚拟调试。通过五个核心步骤,从环境搭建、网络配置、信号映射到联合仿真与高级调试,帮助工程师在项目前期高效验证逻辑、压缩现场调试周期,并掌握实用的PLCSIM调试技巧。

weixin_29188043的博客 505

探索raylib-cpp:游戏开发的现代C++之选

在游戏开发的广阔天地中,选择合适的工具往往能事半功倍。今天,我们要向您推荐的是一款结合了C++优雅与raylib简洁的开源项目——**raylib-cpp**。这款C++封装库不仅继承了raylib的易用性,还通过一系列现代化特性,让游戏编程变得更加直观和高效。 ## 项目介绍 **raylib-cpp** 是针对 [raylib](https://www.raylib.com) 的C++封装...

gitblog_00441的博客 505

Leaflet 加载天地图完整配置指南:从插件修改到无限缩放(附源码)

本文详细介绍了Leaflet与天地图深度集成的完整配置指南,包括插件修改、无限缩放实现及源码示例。通过解析天地图服务的WMTS协议、双投影支持和密钥机制,帮助开发者突破缩放级别限制,优化地图应用性能,适用于Web地图开发和高精度GIS系统。

weixin_27180827的博客 440

高级图像增强——模拟雨天,雾,雪,阳光,阴影,运动模糊,畸变等14种效果,同步扩充标签文件

本文提供了一些高级的,特殊的图像增强方法,具体包括、光。

Limiiiing的博客 1308

c++的应用领域是哪些

c++的应用领域是哪些

qq_43682964的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

C++ 游戏开发入门

C++游戏开发入门,小白入!

安年的小小博客有大大的梦想 3345

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

**重构大师:Cpp2IL——解锁Unity游戏的秘密花园**

重构大师:Cpp2IL——解锁Unity游戏的秘密花园 项目地址:https://gitcode.com/gh_mirrors/cp/Cpp2IL 一、项目简介 在这片充满挑战与机遇的数字世界中,有一个强大的工具正悄悄改变着我们理解游戏内部结构的方式。Cpp2IL是一款正在积极开发中的高级逆向工程工具,它旨在将Unity引擎编译成的IL2CPP二进制代码转换回其原始的托管DLL文件形式,为开发者和...

gitblog_00935的博客 1508

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++游戏开发领域的技术点探讨

C++游戏开发领域的技术点探讨

科技改变人类,技术成就未来 782

探索C++编程的无限可能:Learn CPP项目推荐

探索C++编程的无限可能:Learn CPP项目推荐 项目介绍 Learn CPP 是一个专注于C++编程语言的开源项目,旨在为初学者和有经验的开发者提供一个全面的学习和实践平台。无论你是刚刚接触编程,还是希望深入了解C++的高级特性,这个项目都能满足你的需求。通过丰富的代码示例和详细的文档,Learn CPP帮助你逐步掌握C++的核心概念和应用技巧。 项目技术分析 语言特性 面向对象编程:C+...

gitblog_00317的博客 786
上一篇: C++自制的排序算法
下一篇: DevC++graphics.h库(1)库的下载与安装
186-38
博客等级 码龄4年 30粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值