当前位置: 首页>>代码示例>>C++>>正文


C++ Monster::check_life方法代码示例

本文整理汇总了C++中Monster::check_life方法的典型用法代码示例。如果您正苦于以下问题:C++ Monster::check_life方法的具体用法?C++ Monster::check_life怎么用?C++ Monster::check_life使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Monster的用法示例。


在下文中一共展示了Monster::check_life方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: turn

//Turn is the function that is called to simulate a battle. At the moment, it only takes 1 Player and 1 Monster. This means no multi-enemy fights for now.
//However, that functionality might be added in later.
void turn(Player& Tim, Monster creature)
{
    srand(time(0));//semi-random generation for chances at critical hits or fumbles.
    int choice, Tim_damage, creature_damage;
    bool flee = false;
    cout << "Tim sees a creature! Tim has poor vision, so the identity of the creature is unknown." << endl;
    do
    {
        int r = rand(), chance1 = (r % 10) + 1, chance2 = (r % 10) + 1;
        display_battle(Tim.get_health(), creature.get_health());
        choice = battle_menu();//battle_menu just gets the answer for what the Player wants to do on their turn.
        if(choice == 1)//If they chose to attack, then:
        {
            Tim_damage = Tim.get_damage();
            creature_damage = creature.get_damage();
            if (chance1 == 1 || chance1 == 2)//First determine how the attack went
            {
                creature.hurt((Tim_damage * 3) / 2);//And apply the damage.
                cout << "Tim hits the creature with a critical hit! The creature was hurt for " << (Tim_damage * 3) / 2 << " damage!" << endl;
            }
            else if (chance1 == 9 || chance1 == 10)
            {
                creature.hurt(Tim_damage / 2);
                cout << "Tim fumbles with the weapon and the creature seems undazed. The creature was hurt for " << Tim_damage / 2 << " damage!" << endl;
            }
            else if (chance1 != 1 && chance1 != 2 && chance1 != 9 && chance1 != 10)
            {
                creature.hurt(Tim_damage);
                cout << "The creature was hurt for " << Tim_damage << " damage!" << endl;
            }
            if(creature.check_life())//If creature is still alive, they get to retaliate.
            {
                if (chance2 == 1)
                {
                    Tim.hurt(creature_damage * 2);
                    cout << "The creature lands a critical hit! Tim was hurt for " << creature_damage * 2 << " damage!" << endl;
                }
                else if (chance2 == 2 || chance2 == 3)
                {
                    Tim.hurt(creature_damage / 2);
                    cout << "The creature trips and falls on its face! Tim was hurt for " << creature_damage / 2 << " damage!" << endl;
                }
                else if (chance2 != 1 && chance2 != 2 && chance2 != 3)
                {
                    Tim.hurt(creature_damage);
                    cout << "Tim was hurt for " << creature_damage << " damage!" << endl;
                }
            }
            else
            {
                creature.kill();//Otherwise, the creature is dead.
            }
        }
        else if(choice == 2)//Or the Player might choose to flee the battle.
        {
            cout << "Tim flees from the creature like a coward!" << endl;
            cout << "The creature is unable to keep up with Tim's cowardly speed." << endl;
            flee = true;
        }
    } while(Tim.check_life() and creature.check_life() and !flee);//The battle will continue until someone is dead or the Player fled the battle.
    if(!creature.check_life())//If the creature is the dead one, display the battle results.
    {
        cout << "The battle has ended. Tim has slain the creature with a mighty finishing blow!" << endl;
        cout << "Tim gains " << creature.get_exp_reward() << " experience from slaying the creature!" << endl;
        Tim.add_exp(creature.get_exp_reward());
        cout << "Tim has " << Tim.get_max_exp() - Tim.get_exp() << " experience until he levels up!" << endl;
        cout << "Tim finds some gold pieces on the ground near the creature." << endl;
        Tim.add_gold(creature.get_gold_reward());
        cout << "Tim has " << Tim.get_gold() << " gold pieces." << endl;
        cout << "Feeling empowered, Timothy returns to the village." << endl;
    }
}
开发者ID:IkenoXamos,项目名称:McWilliams,代码行数:74,代码来源:function.cpp


注:本文中的Monster::check_life方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。