[C++] 小游戏 能量 1.0.3 版本 zty出品

news2024/9/9 0:49:02

        大家好,今天zty带来的是能量的1.0.3版本,此版本可以存档(自动的),用于保存战绩,在运行时会跳出主菜单,而不是直接开始游戏,辅助游戏的函数大小总和已经超过了游戏主体,zty这么辛苦,不妨点一个小小的赞吧。

先赞后看,养成习惯

CODE

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int zong,sheng,bai;
void yxzt();
void cd();
void ckzj();
void ckzj(int zong,int sheng,int bai) {//查看战绩
	system("cls");
	cout<<"================================================================================\n\n\t   总场数:"<<zong;
	cout<<"\t\t胜场数:"<<sheng;
	cout<<"\t\t败场数:"<<bai;
	cout<<"\n\n\n================================================================================";
	system("pause");
	cd();
}
void drcd(){//读入存档
	string line;
	fstream myFile;
	int s=0;
	myFile.open("能量存档.txt", ios::in);  // read,读
	if (myFile.is_open()){
        while(getline(myFile, line)){
        	string str(line);
			s++;
			if(s==1)
			    bai = atoi(str.c_str());
			if(s==2)
			    sheng = atoi(str.c_str());
            if(s==3)
			    zong = atoi(str.c_str());
		}
		myFile.close();
	}
}
int rgzz(int lun, int dineng, int neng) {//人工智障系统
	while(1) { 
		int dichu=0;
		if(lun==1) {
			return 4;
		}
		if(dineng>=3) {
			return 3;
		}
		srand(time(0));
		dichu=rand()%5+1;
		if(dineng==1&&dichu==2||dineng<=2&&dichu==3) continue;
		else if(dineng<1&&dichu<4) continue;
		else if(neng>2&&dichu==6) continue;
		else if(neng<1&&dichu>4) continue;
		else if(neng==0 && (dichu==5 || dichu==6)) continue;
		else return dichu;
	}
}
void ts(int lun,int neng) { //战斗提示
	cout<<"第"<<lun<<"轮"<<endl<<"1:波  2:海啸  3:天雷  4:能量  5:防(波)  6:防(海啸) 0:退出游戏  能量:"<<neng<<endl;
	return;
}
void cd() {//游戏菜单
	system("cls");
	system("color 8E");
	cout<<"\n\n================================================================================\n\t\t  1,开始游戏     2,查看战绩     3,退出游戏\n\n================================================================================";
	int xuan;
	cin>>xuan;
	switch(xuan) {
		case 1:
			yxzt();
		case 2:
			ckzj(zong,sheng,bai);
		case 3:
			return;
	}
}
void bccd(int zong,int sheng,int bai) { //保存存档
	char line[256];
	fstream myFile;
	myFile.open("能量存档.txt", ios::out);
	if (myFile.is_open()) {
		myFile<<bai<<"\n";
		myFile<<sheng<<"\n";
		myFile<<zong<<"\n";
		myFile.close();
	}
}
void Bling() { //开始动画
	for(int i=0; i<=3; i++) {
		system("color 1A");
		Sleep(40);
		system("color 2B");
		Sleep(40);
		system("color 3C");
		Sleep(40);
		system("color 4D");
		Sleep(40);
		system("color 5D");
		Sleep(40);
		system("color 6E");
		Sleep(40);
		system("color 7F");
		Sleep(40);
	}
}
void yxzt(){//游戏主体
	system("cls");
	system("color 8E");
	int neng=0,dineng=0,lun=0;
	while(1){
		int gong=0,fang=0,digong=0,difang=0,chu=0,dichu=0;
		lun++;
		ts(lun,neng);
		cin>>chu;
		switch(chu){//玩家控制
			case 1:
				if(neng>=1){
					gong=1;
					neng--;
					cout<<"我:\n波"<<endl;
				}else{
					cout<<"没有足够的能量"<<endl;;
					lun--;
					continue;
				}
				break;
			case 2:
				if(neng>=2){
					gong=2;
					neng-=2;
					cout<<"我:\n海啸"<<endl;
				}else{
					cout<<"没有足够的能量"<<endl;
					lun--;
					continue;
				}
				break;
			case 3:
				if(neng>=3){
					gong=3;
					neng-=3;
					cout<<"我:\n天雷"<<endl;
				} else {
					cout<<"没有足够的能量"<<endl;
					lun--;
					continue;
				}
				break;
			case 4:
				neng++;
				cout<<"我:\n能量"<<endl;
				break;
			case 5:
				fang=1;
				cout<<"我:\n波防"<<endl;
				break;
			case 6:
				fang=2;
				cout<<"我:\n海啸防"<<endl;
				break;
			case 0:
				cd();
		}
		dichu=rgzz(lun,dineng,neng);
		cout<<"敌:"<<endl;
		switch(dichu) { //机器控制
			case 1:
				digong=1;
				dineng--;
				cout<<"波"<<endl;
				break;
			case 2:
				digong=2;
				dineng-=2;
				cout<<"海啸"<<endl;
				break;
			case 3:
				digong=3;
				dineng-=3;
				cout<<"天雷"<<endl;
				break;
			case 4:
				dineng++;
				cout<<"能量"<<endl;
				break;
			case 5:
				difang=1;
				cout<<"波防"<<endl;
				break;
			case 6:
				difang=2;
				cout<<"海啸防"<<endl;
				break;
		}
		if((gong==difang&&gong!=0) || chu==dichu || (digong==fang&&digong!=0)) continue;//判断游戏是否结束
		else if((gong>digong&&gong!=difang) || (dichu==4&&gong>0) || (dichu==4&&gong!=0)) {
			cout<<"YOU WIN!\n\n";
			zong++;
			sheng++;
			bccd(zong,sheng,bai);
			system("pause");
			cd();
		} else if((digong>gong&&digong!=fang) || (digong!=fang&&digong!=0) || (chu==4&&digong>0)) {
			cout<<"YOU DIE!\n\n";
			zong++;
			bai++;
			bccd(zong,sheng,bai);
			system("pause");
			cd();
		}
	}
	return;
}
int main() {
	cout<<"欢迎游玩“能量”小游戏\n";
	Bling();
	drcd();
	cd();
	return 0;
}

作者:zty郑桐羽呀

联系方式:(不挂了,有事私信)

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

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

相关文章

C++ //练习 16.2 编写并测试你自己版本的compare函数。

C Primer&#xff08;第5版&#xff09; 练习 16.2 练习 16.2 编写并测试你自己版本的compare函数。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*********************************************************************…

PyTorch深度学习快速入门(下)

PyTorch深度学习快速入门&#xff08;下&#xff09; 一、现有网络模型的使用及修改&#xff08;一&#xff09;背景知识&#xff08;二&#xff09;修改网络模型的三种方法 二、网络模型的保存与加载&#xff08;一&#xff09;保存网络模型的两种方法&#xff08;二&#xff…

阿里云 服务器安装rabbit

现在我们去服务器安装一个rabbit 进入home 创建一个rabbit文件夹 /home/rabbit vim deployRabbit.sh 脚本内容 #!/bin/bash docker run -d \ --name dev.rabbit \ --network dev-net \ -p 15672:15672 \ -v ./data:/var/lib/rabbitmq \ --hostname dev.rabbit \ rabbitmq:…

css3 红色阴影边框紧急提醒呼吸灯特效

效果截图 代码 <!DOCTYPE html> <html><head><title>红色呼吸灯紧急特效</title><style>keyframes alarm {0% {box-shadow: 0 0 30px #ff0000;}50% {box-shadow: 0 0 60px #ff0000, inset 0 0 60px #ff0000;}100% {box-shadow: 0 0 30px …

八、【Python】基础 - 【Python while 循环全解析】:掌握无限循环的艺术

&#x1f4a1;&#x1f4da;【Python while 循环全解析】&#xff1a;掌握无限循环的艺术&#x1f4da;&#x1f4a1; 目录 1.基本语法 2.示例 3.注意事项 4.嵌套循环与循环控制语句 5.示例&#xff1a;使用 break 和 continue 6.示例&#xff1a;计数器 7.示例&#xf…

Web:Url 编码 -13

URL编码概述 HTTP协议只支持iso8859-1字符集。 而此字符集中只有英文数字常见符号。 所以HTTP原生是无法传输非iso8859-1字符的。 为了解决这个问题&#xff0c;提出了一种称之为URL编码的解决方案。 URL编解码详解 将非iso8859-1字符&#xff0c;进行转换 先将字符按照指定码表…

时间序列分析方法之 -- 自回归移动平均模型(Autoregressive Moving Average, ARMA)原理及Python代码示例

目录 原理 适用情况 Python 示例代码 结论 原理 自回归移动平均模型&#xff08;Autoregressive Moving Average, ARMA&#xff09;是一种结合了自回归&#xff08;AR&#xff09;模型和移动平均&#xff08;MA&#xff09;模型的时间序列分析模型。它适用于描述和预测平稳…

AGI思考探究过程中的意义、价值与乐趣 Ⅰ

探究以泛GPT为代表的预训练自回归next token prediction GenAI(即llm)与Alpha系列为代表的RL&#xff0c;再到Sora为代表的DiT视觉生成领域模型的本质普遍性及表象差异&#xff0c;以及为什么要将其两者或三者联系甚至融合起来看待&#xff1f;本质上是尝试对比采用上述三种模型…

昇思MindSpore 应用学习-Diffusion扩散模型-CSDN

Diffusion扩散模型 本文基于Hugging Face&#xff1a;The Annotated Diffusion Model一文翻译迁移而来&#xff0c;同时参考了由浅入深了解Diffusion Model一文。 本教程在Jupyter Notebook上成功运行。如您下载本文档为Python文件&#xff0c;执行Python文件时&#xff0c;请…

【项目管理】高手项目经理都在用的6个SOP

SOP&#xff08;Standard Operating Procedure&#xff09;流程是一种标准化的操作指南&#xff0c;旨在确保组织或团队在各种情况下都能高效、一致地完成任务。SOP流程通常包括详细的步骤、关键控制点和责任分配&#xff0c;以确保质量和安全。SOP流程涉及从日常运营到危机管理…

五、Spring Boot - 上手篇(1)

&#x1f33b;&#x1f33b;目录 一、快速入门&#xff1a;创建第一个SpringBoot 工程1.1 点击File--->New--->Project...1.2 选择版本和依赖的相关骨架包1.3 设置项目保存目录1.4 项目创建完成&#xff0c;工程主界面如下1.5 项目说明1.6 启动项目1.7 编写 HelloControl…

2024年7月23日~2024年7月29日周报

目录 一、前言 二、完成情况 2.1 一种具有边缘增强特点的医学图像分割网络 2.2 融合边缘增强注意力机制和 U-Net 网络的医学图像分割 2.3 遇到的困难 三、下周计划 一、前言 上周参加了一些师兄师姐的论文讨论会议&#xff0c;并完成了初稿。 本周继续修改论文&#xff0…

【Git】 如何将一个分支的某个提交合并到另一个分支

【Git】 如何将一个分支的某个提交合并到另一个分支 在使用 Git 进行版本控制时&#xff0c;常常会遇到这样的需求&#xff1a;将某个分支的特定提交合并到另一个分支中。这种情况下&#xff0c;我们可以使用 cherry-pick 命令来实现。本文将详细介绍 cherry-pick 命令的使用方…

定时任务报错问题,通级下还有其他定时任务却没有报错,如何解决??

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

R语言统计分析——条形图

参考资料&#xff1a;R语言实战【第2版】 条形图通过垂直的或水平的条形展示了类别型变量的分布&#xff08;频数&#xff09;。函数barplot()的最简单用法是&#xff1a; barplot(height) 其中height是一个向量或一个矩阵。 本文中数据案例来自“vcd”包&#xff0c;需在第一…

JQuery异步请求与Flask后端通信、this和event指针汇总

目录 一.JQuery与Flask通信的三种方法 1.1$.ajax() 1.2$.get() 1.3$.post() 二.forEach()方法 三.this指针 3.1为什么要用this指针 3.2this的指向 3.3this指针的四种绑定方式 3.3.1默认绑定 3.3.2隐式绑定 3.3.3显式绑定 3.3.4new绑定 3.3.5通过标签调用this指针…

windows server服务器/linux服务器离线安装pandas

windows server服务器/linux服务器离线安装pandas pypi官网下载whl文件速度较慢&#xff0c;推荐使用国内的镜像源来下载&#xff0c;镜像源地址为 清华大学 &#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云&#xff1a;http://mirrors.aliyun.com/pypi/simple…

docker安装与container基本使用

安装 Homebrew 的 Cask 已经支持 Docker for Mac, mac用户狂喜 brew install --cask --appdir/Applications docker其他入门用法可参考 Docker Hello World- 菜鸟教程 或网上自行搜索博客学习。本文主要记录我运行go-zero-mall用到的一些注意点。当然&#xff0c;gonivinck项…

vue2+cesium实现报警特效

实现效果: 录制_2024_07_29_21_36_33_571 实现步骤如下: 1、安装cesium包:npm install cesium 2、在node-modules中找到刚刚安装的cesium,在文件夹中里面有一个Build文件夹,把Build里面的Cesium复制出来丢到public中 3、在index.html中进行引入: 4、新建一个js文件,…

前端常见场景、JS计算精度丢失问题(Decimal.js 介绍)

目录 一. Decimal.js 介绍 二. 常用方法 1. 创建 Decimal 实例 2.加法 add 或 plus 3.减法 sub 或 minus 4.乘法 times 或 mul 5.除法 div 或 dividedBy 6.取模 7.幂运算 8.平方根 9.保留小数位 toFixed方法(四舍五入) 三.项目应用 前端精度丢失问题通常由以下原因…