懒之圣帝 发表于 2012-12-16 10:23:16

无尽的打怪运动源码

好吧,记住尊重知识产权就行了。
源码~
#include <iostream> //混合io流
#include <windows.h> //睡觉函数用的
//--------------------------------int
int player_hp;//玩家的绳命值
int player_maxhp;//同上,最大绳命
int player_mp;//魔力值
int player_maxmp;//最大魔力
int player_atk;//攻击力
int player_def;//防御力
int enemy_hp;//敌方的绳命值
int enemy_maxhp;//最大绳命
int enemy_atk;//攻击力
int enemy_def;//防御力
int command;//指令
int skill_command;//特技
int turn_count;//回合数
int guard_flag;//防御中
//-----------------------------double
double damage;//伤害值
//-----------------------------bool
bool battle;//战斗中?
//-----------------------------namespace
using namespace std;//命名空间 std
//-----------------------------others


//------------------------------------attacks
void cost_player_hp(){
        cout << "玩家受到了"<<damage<<"点伤害!\n";
        player_hp -= damage;//扣减玩家绳命
}
void cost_enemy_hp(){
        cout << "敌人受到了"<<damage<<"点伤害!\n";
        enemy_hp -= damage;//扣减敌方绳命
}
void emeny_attack(){
        cout <<"敌人的攻击!\n";
        damage = enemy_atk * 4 - player_def * 2;//伤害求出
        if (damage <= 0){//若伤害小于等于0的判定
                cout << "玩家毫发无损!\n";
        }else{
                cost_player_hp();
        }
}
void player_attack(){
        cout <<"玩家的攻击!\n";
        damage = player_atk * 4 - enemy_def * 2;//伤害求出
        if (damage <= 0){//小于等于0判定
                cout << "敌人毫发无损!\n";
        }else{
                cost_enemy_hp();
        }
}
void core_impact(){
        if (player_mp >= 5){//你有MP么?
                cout <<"玩家释放了核心冲击!\n";
                player_mp -= 5;//扣减MP。
                damage = player_atk * 5 - enemy_def * 2;//不同的伤害求出
                if (damage <= 0){
                        cout << "敌人毫发无损!\n";
                }else{
                        cost_enemy_hp();
                }
        }
        else{
                cout << "MP不足!\n";
        }
}
//-------------------------------------cleardamage
void clear_damage(){//行动一次调用一次
        damage = 0;//清空伤害值
        guard_flag = 0;//清空防御标志
}
//------------------------------------command
void player_command(){
        cout << "指令?\n" << "1:攻击, 2:特技, 之外:待机\n";
        cin >> command;
}
void skill(){
        cout << "特技?\n" << "1:核心冲击 消耗MP:5\n"<<"之外:取消\n";
        cin >> skill_command;
}
//----------------------------activer
void status(){
        cout << "HP:\t" << player_hp << "/" << player_maxhp <<
                " MP:\t" << player_mp << "/" << player_maxmp << " "<<player_atk << "/"<< player_def <<"\n"
                //------------------------------------------
                "HP:\t"<< enemy_hp <<" " <<enemy_atk << "/"<< enemy_def << "\n";
}
//---------------------------battle
void result(){
        if (enemy_hp <= 0){
                cout << "全歼敌方!\n";
        }else if (player_hp <= 0){
                cout << "骚年,你挂了。\n";
        }
}
void turn(){
        while (battle = true){
                cout << "--状态-----------------------------------\n";
                cout << "回合数:"<<turn_count<<"\n";
                status();//状态画面.
                cout << "--指令-----------------------------------\n";
                player_command();//玩家指令
                switch (command){//指令的分歧点
                case 1://攻击时?
                        player_attack();
                        break;
                case 2:
                        cout << "--特技-----------------------------------\n";
                        skill();//特技的实行
                        switch (skill_command){//特技的分歧点
                        case 1:
                                core_impact();
                                break;
                        case 255:
                                cout << "取消!\n";//返回函数
                                break;
                        }
                        break;
                default:
                        cout << "玩家在等待时机!\n";
                        break;
                };
                command = 0;
                clear_damage();
                if (enemy_hp <= 0){//战斗者的分歧点
                        result();
                        break;
                        battle = false;
                }
                status();
                emeny_attack();
                clear_damage();
                if (player_hp <= 0){
                        result();
                        break;
                        battle = false;
                }
                status();
                ++turn_count;//给turn_count+1
        }
}
int main(){
        cout << "依次输入主角的 HP,MP,攻击力,防御力\n";
        cin >> player_maxhp;
        player_hp = player_maxhp;
        cin >> player_maxmp;
        player_mp = player_maxmp;
        cin >> player_atk;
        cin >> player_def;
        cout << "yooooooooooooo~\n" << "敌人来袭!请选关~\n";
        battle = true;//战斗的标志
        int level;
        cin >> level;
        switch (level){
        case 1:
                enemy_hp = 255;
                enemy_maxhp = 255;
                enemy_atk = 25;
                enemy_def = 24;
                break;
        case 2:
                enemy_hp = 555;
                enemy_maxhp = 555;
                enemy_atk = 40;
                enemy_def = 50;
                break;
        case 3:
                enemy_hp = 2000;
                enemy_maxhp = 2000;
                enemy_atk = 75;
                enemy_def = 68;
                break;
        }
        turn();//战斗开始!
        cout << "骚年!游戏结束!\n";
        cout << "---------------STAFF----------------\n";
        cout << "制作人 懒之圣帝\n";
        cout << "2012 Lazy Soft";
        Sleep(5000);//睡觉
        return 0;
}

delv25 发表于 2012-12-16 17:32:39

{:nm04:}good game

lbq 发表于 2012-12-16 20:40:22

看了,这是Java?不懂⋯⋯

懒之圣帝 发表于 2012-12-16 22:17:47

忘记说这是C++写的...

逍遥 发表于 2012-12-17 17:17:17

收藏之...............
页: [1]
查看完整版本: 无尽的打怪运动源码