第八周 回合制 游戏

测试还有很多bug,时间关系,先提交了,以后再改。  加了位置类,并且可以佩戴多个武器了。至于多人对决有思路,但是过于麻烦,而且感觉没有什么意义。


 #include<iostream>
#include<string>
#include<cstdlib>
#include<cmath>
using namespace std;
骰子,用于随机触发武器能力
int rollDice()
{
    int sum=1+rand()%6;
    return sum;
}




class Point     //Point类声明
{
public: //外部接口
    Point(int xxx=0, int yyy=0):x(xxx),y(yyy){}
    int getXX()
{
return x;
}
    int getYY()
{
return y;
}
    double distance(const Point &p)
{
return int(sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)));
}
    void moveTo()
{
x++;
y++;
}
private:
    int x, y;  //座标
};




Point guaishouweizhi(6,6);
//武器类
class Wuqi
{
private:
string mingzi;
int gongjili;
int huilan;
int gongjijuli;
public:
Wuqi(string ming="0",int gongji=0,int huil=0,int gongjiju=0):mingzi(ming),gongjili(gongji),huilan(huil),gongjijuli(gongjiju){}    //构造函数
void setwuqi()               //设定武器属性
{
cin>>mingzi>>gongjili>>huilan>>gongjijuli;
}
void get_mingzi()       //输出
{
cout<<mingzi;
}
void get_gongjili()   //输出
{
cout<<gongjili;
}
void get_huilan()   //输出
{
cout<<huilan;
}
void get_gongjijuli()   //输出
{
cout<<gongjijuli;
}
void get_quanbu()
{
cout<<"你当前的武器状态:"<<endl;
cout<<mingzi<<"  "<<gongjili<<"    "<<huilan<<"   "<<gongjijuli<<endl;
}
int get__gongjili()   //得到
{
return gongjili;
}
int get__huilan()  //得到
{
     return huilan;
}
int getgongjijuli()
{
return gongjijuli;
}
};
人物类
class Role
{
private:
Wuqi wuqi[10]; ///最多配备10个武器
string name;
int blood;
int magic;
int jibawuqi;
Wuqi dangqianwuqi;
Point weizhi;
static int count;        //静态 显示回合数
public:
bool life;
void weizhibiandong()

weizhi.moveTo();
}
 void changeWeapon(int wno)//换手中的武器
 {
dangqianwuqi=wuqi[wno-1];
 }
 Role(string na=" ",int bl=0,int ma=0):name(na),blood(bl),magic(ma){}
bool isAlived()
{
     return life;
}
void setRole(string na,int bl,int ma)
{
cout<<"您成功建立的角色"<<endl;
name=na;
blood=bl;
magic=ma;
life=true;
}
/设定武器属性并展示
void sheding()
{
int i=0;
cout<<"请输入你要佩戴几把武器(最多10把)"<<endl;
cin>>jibawuqi;
for(i=0;i<jibawuqi;i++)
{
cout<<"请输入你所持有的武器,攻击力和特殊能力(回蓝)以及攻击距离    特殊能力在攻击时有几率触发"<<endl;
wuqi[i].setwuqi();
cout<<"您已经装备武器:"<<endl;
cout<<"武器名字:";
wuqi[i].get_mingzi();
cout<<endl;
cout<<"武器攻击力:";
wuqi[i].get_gongjili();
cout<<endl;
cout<<"武器回蓝:";
wuqi[i].get_huilan();
cout<<"武器攻击距离:";
wuqi[i].get_gongjijuli();
cout<<endl;
}
}
 ///展示任务状态
void show()
{
if(life)
cout<<name<<" have "<<blood<<" blood"<<magic<<" magic"<<endl;
   else
{
cout<<"你已经死了,不能有任何动作"<<endl;
}
}
 ///攻击
void attack()
{
int uy;
cout<<"请选择武器"<<endl;
cin>>uy;
changeWeapon(uy);
dangqianwuqi.get_quanbu();
    count=count+1;
if(weizhi.distance(guaishouweizhi)>=dangqianwuqi.getgongjijuli())
{
cout<<"你成功攻击了对方,生命值+";
dangqianwuqi.get_gongjili();
int sum=rollDice();
if(sum<4)
{
cout<<"     武器特殊能力触发! 魔法值+";
dangqianwuqi.get_huilan();
magic=magic+dangqianwuqi.get__huilan();
}
cout<<endl;
blood=blood+dangqianwuqi.get__gongjili();
}
else
{
cout<<"攻击距离不够啊,攻击失败 ~~~~(>_<)~~~~ "<<endl;
}
}
魔法攻击
void magicattact()
{
int uy;
cout<<"请选择武器"<<endl;
cin>>uy;
changeWeapon(uy);
dangqianwuqi.get_quanbu();




    count=count+1;
if(weizhi.distance(guaishouweizhi)>=dangqianwuqi.getgongjijuli())
{
if(magic>0)
{
cout<<"你使用了魔法攻击,对方生命值-";
dangqianwuqi.get_gongjili();
cout<<"您的生命值+";
dangqianwuqi.get_gongjili();
int sum=rollDice();
if(sum<4)
{
cout<<"     武器特殊能力触发! 魔法值+";
dangqianwuqi.get_huilan();
magic=magic+dangqianwuqi.get__huilan();
}
cout<<endl;
blood=blood+dangqianwuqi.get__gongjili();
magic=magic-1;
}
else
{
    cout<<"魔法释放失败了,魔力不足!!!!"<<endl;
}
}
else
{
cout<<"攻击距离不够啊,攻击失败 ~~~~(>_<)~~~~ "<<endl;
}
}
/吃面包
void eat(int n)
{
        count=count+1;
cout<<"你吃了"<<n<<"个面包,生命值回复"<<n<<"点"<<endl;
blood=blood+n;
}
~Role()
{
cout<<"游戏退出"<<endl;
}
/牺牲
void xisheng()
{
cout<<name<<"光荣牺牲了"<<endl;
}
void beAttack()
{
cout<<"你被攻击了,生命值-1"<<endl;
blood--;
if(blood<=0)
{
    life=false;
    xisheng();
}




}
static int showCount()
{
    return count;
}
};
int Role::count=0;












int main()
{
int seed;
cout<<"请任意输入一个数字,开启游戏"<<endl;
cin>>seed;
srand(seed);
Role mary;
cout<<"输入人物名称  血量和魔力值"<<endl;
string nam;
int xue,magi;
cin>>nam>>xue>>magi;
mary.setRole(nam,xue,magi);
mary.sheding();
mary.show();
cout<<"1为吃面包"<<endl;
cout<<"2为物理攻击"<<endl;
cout<<"3为魔法攻击"<<endl;
cout<<"4为向怪兽靠近"<<endl;
cout<<"5为退出"<<endl;
while(mary.life)
{
    int i;
    int q=0;
    cin>>i;
    switch(i)
    {
    case 1: cout<<"请输入面包能量:"<<endl;cin>>q;mary.eat(q);mary.beAttack();break;
    case 2: mary.attack();mary.beAttack();break;
    case 3:mary.magicattact();mary.beAttack();break;
case 4:mary.weizhibiandong();break;
    case 5:q=1;break;
default: cout<<"输入错误"<<endl;
    }
    mary.show();
    if(q==1)
        break;
}
cout<<"你一共经历了"<<Role::showCount()<<"回合"<<endl;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vc(Virtual Console)回合制游戏引擎是一种专门用于开发回合制游戏的软件工具。回合制游戏是指玩家和电脑或其他玩家交替进行行动的游戏方式,每个参与者在自己的回合内进行决策和操作,然后等待其他参与者的回合结束。 vc回合制游戏引擎的主要功能是提供一个可视化的开发平台,帮助开发者设计和建立回合制游戏的基本框架和规则。它提供了一系列的工具和功能,让开发者可以轻松创建角色、设定技能、制定战斗机制、设计交互界面等。 使用vc回合制游戏引擎,开发者可以根据自己的创意和需求,设计出各种各样的回合制游戏。无论是经典的回合制角色扮演游戏(RPG),还是策略性的回合制战争游戏,甚至是棋类游戏,都可以利用vc引擎来实现。引擎提供了游戏逻辑和计算机算法的核心功能,让开发者可以专注于游戏的设计和内容创作。 vc回合制游戏引擎还具备一定的可定制性和扩展性。开发者可以根据自己的需求,修改和添加游戏的规则和机制。同时,引擎也支持多平台发布,可以让游戏在不同终端上运行,比如PC、手机、平板等。 总之,vc回合制游戏引擎为开发者提供了一个方便、高效的工具,帮助他们轻松构建并实现各种回合制游戏的想法和创意。无论是个人开发者还是游戏开发公司,都可以通过vc引擎来快速开发并推出精彩纷呈的回合制游戏作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值