首页 > 编程语言 >C++“阴熊”大追杀0.1.1测试版正式出台!

C++“阴熊”大追杀0.1.1测试版正式出台!

时间:2024-12-03 19:04:42浏览次数:14  
标签:case FOREGROUND 0.1 C++ break hConsole 阴熊 SetConsoleTextAttribute tmp

C++“阴熊”大追杀0.1.1测试版正式出台!框架已搭好,欢迎大家提出意见!

老规矩,先上代码:

#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#define FOREGROUND_WHITE FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
using namespace std;
short teach;
long long hp=100,xp=100,money=200;
string name;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
struct thing{
	string name="";
//	string out="";
};
thing your[6][10];
void b_color(short x){
	switch(x){
		case 0:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_RED);
			break;
		}
		case 1:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_RED | BACKGROUND_BLUE);
			break;
		}
		case 2:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_RED | BACKGROUND_GREEN);
			break;
		}
		case 3:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_GREEN);
			break;
		}
		case 4:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_GREEN | BACKGROUND_BLUE);
			break;
		}
		case 5:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_BLUE);
			break;
		}
		case 6:{
			SetConsoleTextAttribute(hConsole, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
			break;
		}
	}
}
void color(short x){
    switch(x){
		case 0:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
			break;
		}
		case 1:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE);
			break;
		}
		case 2:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);
			break;
		}
		case 3:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
			break;
		}
		case 4:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE);
			break;
		}
		case 5:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
			break;
		}
		case 6:{
			SetConsoleTextAttribute(hConsole, FOREGROUND_WHITE);
			break;
		}
	}
}
void print(short time,string out){
	for(int i=0;i<out.size();i++){
		cout<<out[i];
		Sleep(time);
	}
}
void print_bag();
void thing_var();
void Start(){
	MessageBox(0,"欢迎来到阴熊大追杀!!!","鸡你太美",MB_OK);
	SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_BLUE);
	print(30,"如果你看到了这行字(还是一个一个出现的),就表明你成功启动了游戏!!!");
	Sleep(1000);
	cout<<endl;
}
void kill(){
	
}
int main(){
	Start();
	in:
	color(6);
	string tmp;
//	print(30,"是否开启教程?(y/n):");
//	cin>>tmp;
//	if(tmp=="y"){
//		teach=1;
//	}
//	else if(tmp=="n"){
//		teach=0;
//	}
//	else{
//		color(0);
//		print(30,"你咩!输错了!!!");
//		goto in;
//	}
	color(6);
	system("cls");
	cout<<"请输入你的名字:";
	cin>>name;
	if(teach){
		cout<<"如果你第一次玩这个游戏。。。"<<endl;
		Sleep(500);
		cout<<"请先根据勾股定理把exe最大化。。。"<<endl;
		Sleep(500);
		cout<<"啊!不是这意思,直接";
		system("pause");
	}
	system("cls");
	while(true){
		color(2);
		printf("-----金币:%d     经验值:%d     生命值:%d-----",money,xp,hp);
		cout<<endl;
		color(4);
		cout<<"hi,"<<name<<".what would you want to do?"<<endl;
		color(3);
		cout<<"----------------------------------------"<<endl;
		color(6);
		cout<<"\t1-开始战斗"<<endl;
		cout<<"\t2-技能与装备中心"<<endl;
		cout<<"\t3-商店"<<endl;
		cout<<"\t4-战宠和同伴"<<endl;
		cout<<"\t5-创建自定义技能(暂未开放)"<<endl;
		cout<<"\t6-小镇"<<endl;
		cout<<"\t7-地图(暂未开放)"<<endl;
		cout<<"\t8-存档与读档(暂未开放)"<<endl;
		color(3);
		cout<<"----------------------------------------";
		color(6);
//		if(teach!=0){
//			cout<<endl<<endl<<endl<<endl;
//			color(3);
//			switch(teach){
//				case 1:{
//					cout<<teach<<"-  一切的一切皆从开始战斗开始,\n    输入1,否则结束教程。";
//					break;
//				}
//			}
//			teach++;
//			color(6);
//		}
		cin>>tmp;
		system("cls");
		if(tmp=="1");
		if(tmp=="2")thing_var();
		if(tmp=="3");
		if(tmp=="4");
		if(tmp=="5"){
			color(1);
			print(30,"暂未开放");
			color(6);
			Sleep(1000);
		}
		if(tmp=="6");
		if(tmp=="7"){
			color(1);
			print(30,"暂未开放");
			color(6);
			Sleep(1000);
		}
		if(tmp=="8"){
			color(1);
			print(30,"暂未开放");
			color(6);
			Sleep(1000);
		}
		system("cls");
	}
}
void print_bag(){
	out:
	system("cls");
	print(50,"你的物品:");
	for(int i=1;i<=4;i++){
		for(int j=1;j<=9;j++){
			if(your[i][j].name=="")your[i][j].name="空空如也";
			cout<<setw(10)<<your[i][j].name<<" ";
		}
		cout<<endl<<endl;
	}
	cout<<"战斗时主物品栏:"<<endl<<endl;
	for(int j=1;j<=9;j++){
		if(your[5][j].name=="")your[5][j].name="空空如也";
		cout<<setw(10)<<your[5][j].name<<" ";
	}
	cout<<endl<<endl;
	print(30,"输入坐标交换物品(输入1 5 5 1将会把第一排第五个与第五排第一个交换,输入0 0 0 0退出,x坐标<=9、y坐标<=5):");
	short x1,y1,x2,y2;
	thing t;
	cin>>x1>>y1>>x2>>y2;
	if(!min(x1,min(y1,min(x2,y2)))||x1>9||x2>9||y1>5||y2>5)return;
	t=your[x1][y1];
	your[x1][y1]=your[x2][y2];
	your[x2][y2]=t;
	goto out;
}
void thing_var(){
	system("cls");
	string var;
	cout<<"\t1-你的物品"<<endl;
	cout<<"\t2-退出"<<endl;
	cin>>var;
	if(var=="1")print_bag();
	if(var=="2")return;
}

内容分析

一、当前目标

        希望能做成Windows窗口程序;增加动画。

二、更新状态

        目前仅可以显示主页和物品栏,大家都试一下。

另:内容有很多技巧(有打字输出;循环算法;改变颜色)以后         专门找一个系列搞一下

本期内容到此结束,让我们期待下次0.1.1版本吧!

标签:case,FOREGROUND,0.1,C++,break,hConsole,阴熊,SetConsoleTextAttribute,tmp
From: https://blog.csdn.net/Eason_MC_/article/details/144198529

相关文章

  • VSCode中配置 C/C++ 环境
    1.下载编译器MinGW并解压官网页面:https://www.mingw-w64.org/下载页面:https://sourceforge.net/projects/mingw-w64/files/下载页面中选择x86_64-win32-seh下载(目前已经更新,页面中没有,需要找很麻烦)MinGW直接下载地址https://wwn.lanzouh.com/iLOip031ku6b密码......
  • Visual Studio 2022 C++ 生成dll或so文件在windows或linux下用C#调用
    背景开发中我们基本使用windows系统比较快捷,但是部署的时候我们又希望使用linux比较便宜,硬件产商还仅提供了c++sdk!因此我们做二次开发时需要VisualStudio2022在windows下C++生成dll或linux下生成so库文件供C#调用。方案需要确认一件事,目前c++这门语言不是跨平台的第一个问......
  • C++业务流程需要经常变更,想用Python来做流程脚本,和C++互相调用,有什么好的案例吗?
    在现代软件开发中,将性能敏感的部分用C++实现,动态变化的业务逻辑用Python编写是一种常见的做法。这种方法结合了C++的高性能和Python的灵活性,适合需要频繁变更逻辑的场景,比如业务流程、规则引擎、数据处理等。以下是一些实现C++和Python互相调用的常见方式和实际案......
  • Linux C++ 服务器端这条线怎么走?一年半能做出什么?
    选择LinuxC++服务器方向是一个非常好的发展路径,这条方向需要扎实的基础知识和实践能力,同时有着很大的发展空间。以下是一个完整的学习路线和一年半的规划,帮助你在毕业前掌握核心技能并积累项目经验。一、LinuxC++服务器方向的核心知识体系LinuxC++服务器端开发的核心......
  • c++ 环形队列(RingBuffer)
    环形缓冲区(CircularBuffer)与环形队列类似,是一种数据结构,支持在固定容量下的高效读写操作。相比队列,环形缓冲区通常允许覆盖旧数据,这在某些场景(如实时数据流、日志处理)中非常有用。实现步骤核心变量:缓冲区数组buffer[]:存储数据。读指针head:指向下一个读取的位置。写指......
  • 蓝桥杯c++算法秒杀【7】之数据结构(修改数组、翻转括号序列、双向排序:::非常典型的必刷例
    别忘了请点个赞+收藏+关注支持一下博主喵!!!! ! !  关注博主,更多蓝桥杯nice题目静待更新:)  数据结构一、修改数组【问题描述】        给定一个长度为N的数组A=[A1,A2,...,AN],数组中有可能有重复出现的整数。        现在小明要按以下方法将其......
  • 最新毕设-Python-食堂就餐系统设计-82280(免费领项目)可做计算机毕业设计JAVA、PHP、爬
    摘要本论文主要论述了如何基于Python开发一个食堂就餐系统,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述食堂就餐系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析设计。食堂就餐......
  • 10C++选择结构(4)
    一、switch语句问题:风之巅小学规定,若测试成绩大于或等于90分为“A”,大于或等于70分小于90分为“B”,大于或等于60分小于70分为“C”,60分以下为“D”。试编一程序,输入一个成绩,输出它的等级。流程图如下:#include<typeinfo>//变量类型头文件,还是有问题;无法判断int#include<......
  • C++11 std::function与std::bind
    std::function与std::bind std::functionstd::function是一个可调用对象包装器,是一个类模板,可以容纳除了类成员函数指针之外的所有可调用对象,它可以用统一的方式处理函数、函数对象、函数指针,并允许保存和延迟它们的执行。例如//普通函数intadd(inta,intb){returna......
  • 10.15
    逻辑设计阶段的输入信息有四种:①概念设计阶段的概念模式;②应用的处理需求;③完整性、安全性约束条件;④DBMS特性。     逻辑设计阶段的输出信息主要有四种:①DBMS可处理的模式;②子模式;③应用程序设计指南;④物理设计指南。32.答:在数据库运行时,把未提交随后又被撤消......