栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++小游戏——命运神骰

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++小游戏——命运神骰

文章目录
  • 内容简介
  • 一、游戏规则
  • 二、具体代码实现
    • 1.调试环境
    • 2.代码实现
    • 3.运行演示
  • 小结


内容简介

本文介绍了一个作者原创的角色对战小游戏qwq

b站视频传送门戳我~


以下是本篇文章正文内容

一、游戏规则

选择一个模式,一个英雄,然后开始战斗吧!投掷你的骰子,提升英雄属性,击败对手!

本游戏内容精简,画风简洁(

而且非常容易上手!

二、具体代码实现 1.调试环境

环境为Dev-C++ 5.4.0

2.代码实现

完整代码如下:

#include
#include
#define int long long
#define ll long long
#define cer(x) cerr<<(#x)<<" = "<<(x)<<'n'
using namespace std;
const int N=210; // 最多200个分身,稍微开大一点 

class Character{ // 角色类
public:
	string name="";
	int HP=100;
	int HP0=100; // 初始生命 
	int HPup=100; // 血量上限 
	int speed=30;
	int attack=20;
	int mAttack=0; // 魔攻 
	
	int defend=0;
	double mDefend=0; // 魔抗率,超过1表示100%魔抗 
	double hitRate=0; // 暴击率 
	
	void show(){
		cout<
	return (ll)rand()*rand()%n;
}

Character me[N],enemy[N];

int characterNum=1; // 我方角色数为1(0个分身) 
int enemyNum=1; // 敌方角色数为1(0个分身) 
int gameMode,op,op2;

void start(){
	srand((unsigned)time(0));
	cout<<"请输入数字选择游戏模式"<>gameMode;
	
	cout<<"请输入数字选择角色"<>op; // 你选择第op个角色 
	
	if(op==1){
		me[1].name="曹操";
		me[1].HP=me[1].HP0=me[1].HPup=1500; // 实时血量,初始血量,血量上限 
		me[1].speed=30;
		me[1].attack=20;
		me[1].mAttack=0; // 魔攻 
	} 
	else if(op==2){
		me[1].name="刘备";
		me[1].HP=me[1].HP0=me[1].HPup=1500; // 实时血量,初始血量,血量上限 
		me[1].speed=20;
		me[1].attack=25;
		me[1].mAttack=0; // 魔攻 
	}
	else if(op==3){
		me[1].name="王昭君"; 
		me[1].HP=me[1].HP0=me[1].HPup=1000; // 实时血量,初始血量,血量上限 
		me[1].speed=15;
		me[1].attack=10;
		me[1].mAttack=25; // 魔攻 
	}
	cout<<"你选择了"<
		op2=random(3)+1; // 对手随机选择1-3中的角色之一 
		if(op2==1){
			enemy[1].name="曹操";
			enemy[1].HP=enemy[1].HP0=enemy[1].HPup=1500; // 实时血量,初始血量,血量上限 
			enemy[1].speed=30;
			enemy[1].attack=20;
			enemy[1].mAttack=0; // 魔攻 
		} 
		else if(op2==2){
			enemy[1].name="刘备";
			enemy[1].HP=enemy[1].HP0=enemy[1].HPup=1500; // 实时血量,初始血量,血量上限 
			enemy[1].speed=20;
			enemy[1].attack=25;
			enemy[1].mAttack=0; // 魔攻 
		}
		else if(op2==3){
			enemy[1].name="王昭君"; 
			enemy[1].HP=enemy[1].HP0=enemy[1].HPup=1000; // 实时血量,初始血量,血量上限 
			enemy[1].speed=15;
			enemy[1].attack=10;
			enemy[1].mAttack=25; // 魔攻 
		}
	}
	else if(gameMode==3){
	//	op2=random(2)+4; // 选择角色4或者角色5
		cout<<"请输入数字选择你要挑战的Boss"<>op2;
		
		if(op2==1){
			enemy[1].name="神·曹操";
			enemy[1].HP=enemy[1].HP0=enemy[1].HPup=20000; // 实时血量,初始血量,血量上限 
			enemy[1].speed=300;
			enemy[1].attack=200;
			enemy[1].mAttack=100; // 魔攻 
		}
		else if(op2==2){
			enemy[1].name="神·吕布";
			enemy[1].HP=enemy[1].HP0=enemy[1].HPup=500000; // 实时血量,初始血量,血量上限 
			enemy[1].speed=8000;
			enemy[1].attack=1000;
			enemy[1].mAttack=400; // 魔攻 
		}
	}
	
	cout<<"你的对手选择了"<
	cout<<"你的属性:"<
		cout<<"第 "<
	cout<<"对手的属性:"<
		cout<<"第 "< 
	start();
	cout<<"战斗开始!"<
	//	system("cls"); // 清屏 
		
		cout<<"-------------------------"<
			p1=random(6)+1; // 自己随机获得一个1-6的点数 
		} 
		else if(gameMode==2 || gameMode==3){
			cout<<"请输入你选择的点数:"<>p1;
		} 
		
		cout<<"你投出了 "<
			cout<<"获得生命+1"<
				me[j].HP+=me[j].HP0;
				me[j].HPup+=me[j].HP0;
			}
		}	
		else if(p1==2){
			cout<<"获得分身+1"<
			cout<<"获得治疗"<
				me[j].HP+=2000;
				if(me[j].HP>me[j].HPup)me[j].HP=me[j].HPup;
			}
		}
		else if(p1==4){
			cout<<"获得速度、防御、魔抗上升"<
				me[j].speed*=2;
				me[j].defend+=5;
				me[j].mDefend+=0.2;
			}
		}
		else if(p1==5){
			cout<<"获得双攻上升"<
				me[j].attack*=2;
				me[j].mAttack*=2;
			}
		}
		else if(p1==6){
			cout<<"获得强力buff,收回分身并叠加分身属性"< 
				me[1].HP+=me[j].HP;
				me[1].HPup+=me[j].HPup;
			}
			characterNum=1; // 收回分身 
		}
		
		showMe(); 
		
		p1=random(6)+1; // 对手随机获得一个1-6的点数 
		cout<<"对手投出了 "<
			cout<<"获得生命+1"<
				enemy[j].HP+=enemy[j].HP0;
				enemy[j].HPup+=enemy[j].HP0;
			}
		}	
		else if(p1==2){
			cout<<"获得分身+1"<
			cout<<"获得治疗"<
				enemy[j].HP+=2000;
				if(enemy[j].HP>enemy[j].HPup)enemy[j].HP=enemy[j].HPup;
			}
		}
		else if(p1==4){
			cout<<"获得速度、防御、魔抗上升"<
				enemy[j].speed*=2;
				enemy[j].defend+=5;
				enemy[j].mDefend+=0.2;
			}
		}
		else if(p1==5){
			cout<<"获得双攻上升"<
				enemy[j].attack*=2;
				enemy[j].mAttack*=2;	
			}
		}
		else if(p1==6){
			cout<<"获得强力buff,收回分身并叠加分身属性"< 
				enemy[1].HP+=enemy[j].HP;
				enemy[1].HPup+=enemy[j].HPup;
			}
			enemyNum=1; // 收回分身 
		}
		
		showEnemy();
	
		// 按照速度快慢互相攻击 
		cout<<"互相攻击!"<=enemy[1].speed){ // 我方先手 
			// 我方发动攻击 
			damage=0;
			if(me[1].hitRate>=1.0){ // 必定暴击 
				att1*=2;
			} 
			if(att1>d2){ // 物攻可以击穿护甲 
				damage+=att1-d2;
			}
			if(md2<1.0){ // 魔攻有效 
				damage+=(int)(mAtt1*(1.0-md2)); 
			} 
			enemy[1].HP-=damage;
			if(enemy[1].HP<=0){
				cout<<"你击败了对手,游戏胜利!!!"<=1.0){ // 必定暴击 
				att2*=2;
			} 
			if(att2>d1){ // 物攻可以击穿护甲 
				damage+=att2-d1;
			}
			if(md1<1.0){ // 魔攻有效 
				damage+=(int)(mAtt2*(1.0-md1)); 
			} 
			me[1].HP-=damage;
			if(me[1].HP<=0){
				cout<<"你被击败了,游戏结束!"< // 敌方先手
			// 敌方发动攻击 
			damage=0;
			if(enemy[1].hitRate>=1.0){ // 必定暴击 
				att2*=2;
			} 
			if(att2>d1){ // 物攻可以击穿护甲 
				damage+=att2-d1;
			}
			if(md1<1.0){ // 魔攻有效 
				damage+=(int)(mAtt2*(1.0-md1)); 
			} 
			me[1].HP-=damage;
			if(me[1].HP<=0){
				cout<<"你被击败了,游戏结束!"<=1.0){ // 必定暴击 
				att1*=2;
			} 
			if(att1>d2){ // 物攻可以击穿护甲 
				damage+=att1-d2;
			}
			if(md2<1.0){ // 魔攻有效 
				damage+=(int)(mAtt1*(1.0-md2)); 
			} 
			enemy[1].HP-=damage;
			if(enemy[1].HP<=0){
				cout<<"你击败了对手,游戏胜利!!!"< // 游戏已结束 
		return 0;
	}
	if(i>h){
		cout<<"超过回合上限,游戏结束,平局!"< 

3.运行演示


开始界面,以选择投掷模式,我方曹操为例。



游戏进行界面


击败对手,获得游戏胜利!可以重新进入游戏,选择Boss模式进行游玩!


小结

以上就是今天要讲的内容啦,看到这里不点个赞或者一键三连支持一下这个刚刚开始写博客的萌新博主嘛qwq你的关注和支持就是我进步的动力呐~

后续我会继续分享一些有趣的小游戏给大家哦~~
c++小游戏专栏保持不定期 更新~~qwq

好啦,朋友们下期再见啦!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011208.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号