剑灵break什么意思-break into

源代码下载:

http://note.youdao.com/share/?id=c5743816d394f83d94ad432a0e244806&type=note

剑灵break什么意思-break into-第1张

源代码:

剑灵break什么意思-break into-第2张

//////////main.cpp//////////\n#include \"control.h\"\n#include \"image.h\"\n#include \"function.h\"\nint main()\n{\n gamestart();\n return 0;\n}\n//////////image.h//////////\n#ifndef IMAGE_H_INCLUDED\n#define IMAGE_H_INCLUDED\nvoid startimage();//开始画面\nstring newname();//玩家姓名\nvoid selectmap(string name);//选择地图\nvoid map1(string name);//土门客栈地图\nvoid drugmap();//药店\nvoid weaponmap();//武器店\nvoid hunback();//浑天教背景\nvoid wuback();//武林盟背景\nvoid bossback(string na);//秦义绝背景介绍\nvoid fightselect();//战斗选择\nvoid showskill();//展示技能\nvoid gameover();//游戏结束 战败\nvoid exitimage();//退出游戏\n#endif // IMAGE_H_INCLUDED\n//////////image.cpp//////////\n#include \"control.h\"\n#include \"image.h\"\n//开始界面\nvoid startimage()\n{\n moveCursor (32,5);\n cout<<\"屌 丝 剑 灵 大 作 战\";\n moveCursor (35,7);\n cout<<\"[1] 新的开始\";\n moveCursor (35,9);\n cout<<\"[2] 旧的回忆\";\n moveCursor (35,11);\n cout<<\"[3] 离开游戏\";\n}\nstring newname()\n{\n string name;\n system(\"cls\");\n moveCursor (32,3);\n cout<<\"屌 丝 剑 灵 大 作 战\";\n moveCursor (28,9);\n cout<<\"大侠请输入姓名:\";\n cin>>name;\n return name;\n}\nvoid selectmap(string name)\n{\n// string name=\"test\";\n system(\"cls\");\n moveCursor (32,3);\n cout<<\"屌 丝 剑 灵 大 作 战\";\n moveCursor (35,4);\n cout<<\"洪门弟子:\"<<name;\n moveCursor (15,7);\n cout<<\"[1] 土门客栈 [2] 修炼谷 [3] 挑战BOSS [4] 储存进度\";\n}\nvoid map1(string name)\n{\n system(\"cls\");\n moveCursor (32,3);\n cout<<\"屌 丝 剑 灵 大 作 战\";\n moveCursor (35,4);\n cout<<\"洪门弟子:\"<<name;\n moveCursor (30,7);\n cout<<\"[1]查看状态 [2]百草堂\";\n moveCursor (30,9);\n cout<<\"[3]铁匠铺 [0]返回上一页\";\n}\n//注意要-1\nvoid drugmap()\n{\n system(\"cls\");\n moveCursor (32,3);\n cout<<\"欢迎来到百草堂\";\n moveCursor (32,5);\n cout<<\"请问大侠有什么需要的?\";\n moveCursor (30,7);\n cout<<\"[1] 炸鸡 恢复300HP 300元\";\n moveCursor (30,8);\n cout<<\"[2] 烤鸭 恢复500HP 500元\";\n moveCursor (30,9);\n cout<<\"[3] 鼠儿果 恢复50MP 100元\";\n moveCursor (30,10);\n cout<<\"[4] 灵芝 恢复100MP 200元\";\n moveCursor (30,12);\n cout<<\"[0] 返回上一级\";\n}\n//注意不用-1\nvoid weaponmap()\n{\n system(\"cls\");\n moveCursor (32,3);\n cout<<\"欢迎来到铁匠铺\";\n moveCursor (32,5);\n cout<<\"请问大侠有什么需要的?\";\n moveCursor (30,7);\n cout<<\"[1] 卓越洪门剑 100攻击力 1000元\";\n moveCursor (30,8);\n cout<<\"[2] 卓越千魂剑 200攻击力 2000元\";\n moveCursor (30,9);\n cout<<\"[3] 卓越妖魔剑 300攻击力 3000元\";\n moveCursor (30,10);\n cout<<\"[4] 极限万魂剑 400攻击力 4000元\";\n moveCursor (30,12);\n cout<<\"[0] 返回上一级\";\n}\nvoid hunback()\n{\n system(\"cls\");\n moveCursor (10,5);\n cout<<\"大侠,大侠快救我,浑天教来了!!!\";\n moveCursor (10,7);\n cout<<\"小姐莫慌张,请慢慢道来.话说,这浑天教是??\";\n moveCursor (10,9);\n cout<<\"大侠是外地人吧,您有所不知,浑天教那些2b小青年是最近一段时间出现在\";\n moveCursor (10,10);\n cout<<\"土门客栈附近的小混混,经常抢路人的银鳞胸甲,调戏小姑娘.\";\n moveCursor (10,11);\n cout<<\"大侠可要帮我们做主啊!!\";\n moveCursor (10,13);\n cout<<\"岂有此理,光天化日,朗朗乾坤,竟有此种2b青年在土门客栈附近撒野.\";\n moveCursor (10,14);\n cout<<\"姑娘莫怕,待我收拾了那帮混混就去你家找你!!\";\n moveCursor (10,16);\n cout<<\"大侠请当心!\";\n moveCursor (45,18);\n system(\"pause\");\n}\nvoid wuback()\n{\n system(\"cls\");\n moveCursor (10,3);\n cout<<\"前面那个!!给我站住!!\";\n moveCursor (10,5);\n cout<<\"嗯?你们是.....??\";\n moveCursor (10,7);\n cout<<\"我们是行侠仗义专门捕杀浑天教徒小混混的武林盟\";\n moveCursor (10,8);\n cout<<\"听说你最近在打附近的浑天教徒?都已经砍到10级了啊!\";\n moveCursor (10,10);\n cout<<\"哦,你们好.是呀,浑天教烧杀掳掠无恶不作,我实在看不下去.\";\n moveCursor (10,12);\n cout<<\"哎呦喂,说的和真的似的.小子,实话告诉你,你抢了我们的生意.\";\n moveCursor (10,13);\n cout<<\"我们武林盟自古以捕杀浑天教,收取村民供养为生\";\n moveCursor (10,14);\n cout<<\"最近因为你的出现村民都不来交贡品了,我劝你少管闲事,否则...\";\n moveCursor (10,16);\n cout<<\"否则怎样?我今天还就把这闲事管到底了!你们和那些败类有什么区别?!\";\n moveCursor (10,17);\n cout<<\"多说无益,拔剑吧!....呀啊,看招!!\";\n moveCursor (10,19);\n cout<<\"哼,敬酒不吃,兄弟们上!!\";\n moveCursor (47,21);\n system(\"pause\");\n}\nvoid bossback(string na)\n{\n system(\"cls\");\n moveCursor (10,5);\n cout<<na<<\",你来了啊,没想到你能活到现在啊!\";\n moveCursor (10,7);\n cout<<\"哼,秦义绝,我今天就是来找你报仇的,我会让你后悔当年没杀死我!!\";\n moveCursor (10,9);\n cout<<\"呵呵,当年洪玄公那个傻老头为了能让你这个乖徒儿活下去\";\n moveCursor (10,10);\n cout<<\"竟然跪下来求我.哈哈哈,大名鼎鼎的力王,竟然为了一个废物来求我\";\n moveCursor (10,11);\n cout<<\"简直是笑话!我本想放你一条生路,你竟然自己过来送死.\";\n moveCursor (10,13);\n cout<<\"秦义绝,少说废话,今天我就要为师傅们报仇雪恨!!!\";\n moveCursor (10,14);\n cout<<\"拿命来!!!!\";\n moveCursor (45,17);\n system(\"pause\");\n}\nvoid fightselect()\n{\n moveCursor (0,18);\n cout<<\"[1]攻击 [2]技能 [3]防御 [4]包裹\"<<endl;\n}\nvoid showskill()\n{\n moveCursor (0,18);\n cout<<\"等等啊先别打,让我想想扔哪个技能! \"<<endl;\n cout<<\"[1]天罡战气 攻击力增加20点,持续两回合 消耗40MP\"<<endl;\n cout<<\"[2]绝对防御 抵挡下一次攻击,持续两回合 消耗60MP\"<<endl;\n cout<<\"[0]返回\"<<endl;\n}\nvoid gameover()\n{\n system(\"cls\");\n moveCursor (32,7);\n cout<<\"胜败乃兵家常事,大侠请重新来过!!!!!\";\n moveCursor (40,9);\n system(\"pause\");\n exit(0);\n}\n//退出界面\nvoid exitimage()\n{\n system(\"cls\");\n cout<<\"  ▅▅▅▅▅▅▅   ▅▅▅▅▅    ▅ \"<<endl;\n cout<<\"   ▅▅█▅▅    █ ▅ █    █ \"<<endl;\n cout<<\"   █▅█▅█    █ █ █    █ \"<<endl;\n cout<<\"  ▅█▅█▅█▅    ◢◤▋ ▅   ▼\"<<endl;\n cout<<\"   █  ▅█   ██◤ ███   ●\"<<endl;\n}\n//////////function.h//////////\n#ifndef FUNCTION_H_INCLUDED\n#define FUNCTION_H_INCLUDED\nvoid gamestart();//游戏总控制整合\n#endif // FUNCTION_H_INCLUDED\n//////////funtion.cpp//////////\n#include \"control.h\"\n#include \"image.h\"\n#include \"function.h\"\nvoid gamestart()\n{\n //PlaySound(\"my soul.wav\", NULL,SND_FILENAME | SND_PURGE | SND_NODEFAULT | SND_ASYNC | SND_LOOP);\n //初始化\n char selectnum;//一级控制\n char selectnum2;//二级控制\n char selectnum3;//三级控制\n int skillresult=3;\n int drugresult=3;\n int flaghuntian=0;\n int flagwulin=0;\n int flagboss=0;\n int deathflag1=0;\n int deathflag2=0;\n int level=0;\n int money=0;\n int exp=0;\n string name;\n character* cha=0;\n setCursorVisible (0);\n// setWindowTitle (\"屌 丝 剑 灵 大 作 战-XiaoT\");\n//游戏开始\n while(1)\n {\n startimage();\n selectnum=getch();\n if(selectnum=='1'||selectnum=='2'||selectnum=='3')\n break;\n }\n//读档\n if(selectnum=='2')\n {\n cha=new character;\n cha->readdata();\n name=cha->getname();\n goto A;\n }\n//退出\n if(selectnum=='3')\n exitimage();\n//游戏开始\n if(selectnum=='1')\n {\n name=newname();\n cha=new character(name);\n A: while(1)\n {\n selectmap(name);\n selectnum=getch();\n switch(selectnum)\n {\n //土门客栈场景\n case '1':\n {\n while(1)\n {\n map1(name);\n selectnum2=getch();\n //[1]查看状态\n if(selectnum2=='1')\n {\n system(\"cls\");\n while(1)\n {\n cha->showall();\n cha->showdrug();\n selectnum3=getch();\n if(selectnum3=='0')\n break;\n if(selectnum3>='1'&&selectnum3<='4')\n {\n cha->usedrug(selectnum3-49);\n system(\"cls\");\n }\n }\n continue;\n }\n //[2]百草堂 买药\n if(selectnum2=='2')\n {\n while(1)\n {\n drugmap();\n cha->showmoney();\n selectnum3=getch();\n if(selectnum3>='1'&&selectnum3<='4')\n cha->buydrug(selectnum3-49);\n if(selectnum3=='0')\n break;\n }\n }\n //[3]铁匠铺 买武器\n if(selectnum2=='3')\n {\n while(1)\n {\n weaponmap();\n cha->showmoney();\n selectnum3=getch();\n if(selectnum3>='1'&&selectnum3<='4')\n cha->buyweapon(selectnum3-48);\n if(selectnum3=='0')\n break;\n }\n }\n if(selectnum2=='0')\n break;\n }\n selectnum2=0;\n selectnum3=0;\n continue;\n }\n //小怪\n case '2':\n {\n level=cha->getrank();\n if(level<10)\n {\n if(flaghuntian==0)\n {\n flaghuntian++;\n hunback();\n }\n system(\"cls\");\n huntian* hun=new huntian();\n exp=hun->getexp();\n money=hun->getmoney();\n while(1)\n {\n //战斗界面\n hun->showall();\n cha->showall();\n cout<<endl;\n fightselect();\n selectnum2=getch();\n //[1]普通攻击\n if(selectnum2=='1')\n {\n cha->kill(*hun);\n deathflag1=cha->ifdeath();\n deathflag2=hun->ifdeath();\n //玩家死亡\n if(deathflag1==1)\n gameover();\n //怪物死亡\n if(deathflag2==1)\n {\n deathflag2=0;\n cha->rankup(exp,money);\n cha->reskill();\n break;\n }\n }\n //[2]技能\n if(selectnum2=='2')\n {\n showskill();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3=='1'||selectnum3=='2')\n {\n skillresult=cha->useskill(selectnum3-49);\n if(skillresult==1)\n cha->skillkill(*hun,selectnum3-49);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n //[3]防御\n if(selectnum2=='3')\n {\n cha->defence();\n }\n //[4]包裹\n if(selectnum2=='4')\n {\n cha->showpack();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3>='1'||selectnum3<='4')\n {\n drugresult=cha->usedrug(selectnum3-49);\n if(drugresult==1)\n cha->drugkill(*hun);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n }\n }\n if(level>=10)\n {\n if(flagwulin==0)\n {\n flagwulin++;\n wuback();\n }\n system(\"cls\");\n wulin* wu=new wulin();\n exp=wu->getexp();\n money=wu->getmoney();\n while(1)\n {\n //战斗界面\n wu->showall();\n cha->showall();\n cout<<endl;\n fightselect();\n selectnum2=getch();\n //[1]普通攻击\n if(selectnum2=='1')\n {\n cha->kill(*wu);\n deathflag1=cha->ifdeath();\n deathflag2=wu->ifdeath();\n //玩家死亡\n if(deathflag1==1)\n gameover();\n //怪物死亡\n if(deathflag2==1)\n {\n deathflag2=0;\n cha->rankup(exp,money);\n cha->reskill();\n break;\n }\n }\n //[2]技能\n if(selectnum2=='2')\n {\n showskill();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3=='1'||selectnum3=='2')\n {\n skillresult=cha->useskill(selectnum3-49);\n if(skillresult==1)\n cha->skillkill(*wu,selectnum3-49);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n //[3]防御\n if(selectnum2=='3')\n {\n cha->defence();\n }\n //[4]包裹\n if(selectnum2=='4')\n {\n cha->showpack();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3>='1'||selectnum3<='4')\n {\n drugresult=cha->usedrug(selectnum3-49);\n if(drugresult==1)\n cha->drugkill(*wu);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n }\n }\n continue;\n }\n //boss\n case '3':\n {\n if(flagboss==0)\n {\n flagboss++;\n bossback(name);\n }\n system(\"cls\");\n boss* qin=new boss();\n exp=qin->getexp();\n money=qin->getmoney();\n while(1)\n {\n //战斗界面\n qin->showall();\n cha->showall();\n cout<<endl;\n fightselect();\n selectnum2=getch();\n //[1]普通攻击\n if(selectnum2=='1')\n {\n cha->kill(*qin);\n deathflag1=cha->ifdeath();\n deathflag2=qin->ifdeath();\n //玩家死亡\n if(deathflag1==1)\n gameover();\n //怪物死亡\n if(deathflag2==1)\n {\n deathflag2=0;\n cha->rankup(exp,money);\n cha->reskill();\n break;\n }\n }\n //[2]技能\n if(selectnum2=='2')\n {\n showskill();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3=='1'||selectnum3=='2')\n {\n skillresult=cha->useskill(selectnum3-49);\n if(skillresult==1)\n cha->skillkill(*qin,selectnum3-49);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n //[3]防御\n if(selectnum2=='3')\n {\n cha->defence();\n }\n //[4]包裹\n if(selectnum2=='4')\n {\n cha->showpack();\n while(1)\n {\n selectnum3=getch();\n if(selectnum3>='1'||selectnum3<='4')\n {\n drugresult=cha->usedrug(selectnum3-49);\n if(drugresult==1)\n cha->drugkill(*qin);\n break;\n }\n if(selectnum3=='0')\n break;\n }\n }\n }\n continue;\n }\n //存档\n case '4':\n {\n cha->savedata();\n system(\"pause\");\n continue;\n }\n }\n }\n }\n}\n//////////control.h//////////\n#include<iostream>\n#include <windows.h>\n#include <mmsystem.h>\n//#pragma comment(lib, \"winmm.lib\")\n#include <conio.h>\n#include <iomanip>\n#include <fstream>\n#include <ctime>\n#ifndef CONTROL_H_INCLUDED\n#define CONTROL_H_INCLUDED\nusing namespace std;\n//功能函数\nint getMaxSize ();\nvoid moveCursor (int, int);//移动光标\nvoid setWindowTitle (char*);//设置标题\nvoid setCursorVisible (int );//光标隐藏\nclass huntian;\n//人物类\nclass character\n{\n //人物属性\n protected:\n string name;\n int rank;\n int hpmax;\n int hpnow;\n int mpmax;\n int mpnow;\n int expmax;\n int expnow;\n int money;\n int atk;\n string weaponname[5];\n int weapon[5];\n int weaponhold;//持有哪个武器\n int weaponprice[5];\n int drugnum[4];\n int drugprice[4];\n string drugname[4];\n string drugint[4];//药品介绍\n int drugaffect[4];\n string skillname[2];\n int skillspend[2];\n int skillstate[2];\n int skilllast;//技能持续两回合\n string skillint[2];//技能介绍\n public:\n character ();\n character(string na);//构造函数初始化\n//展示一些值\n void showall();\n void showmoney();\n void showpack();\n void showdrug();\n//获取一些值\n int getrank();\n int getexp();\n int getmoney();\n string getname();\n//功能函数\n void buydrug(int num);\n void buyweapon(int num);\n void savedata();\n int readdata();\n void atkup();//提升攻击力\n int ifdeath();//判断死亡\n void rankup(int exp,int mon);//升级\n int useskill(int sel);//使用技能\n void reskill();//重置技能\n int usedrug(int sel);//吃药\n void defence();//防御\n//友元\n void kill(huntian &t);//攻击函数\n void skillkill(huntian &t,int key);//使用技能回合设定\n void drugkill(huntian &t);//吃药回合设定\n};\n//怪物\n//浑天教徒\nclass huntian : public character\n{\n public:\n huntian();\n void showall();\n friend void character::kill(huntian &t);\n friend void character::skillkill(huntian &t,int key);\n friend void character::drugkill(huntian &t);\n};\n//武林盟\nclass wulin :public huntian\n{\n public:\n wulin();\n};\n//boss\nclass boss :public huntian\n{\n public:\n boss();\n void showall();\n};\n#endif // CONTROL_H_INCLUDED\n//////////control.cpp//////////\n#include \"control.h\"\n//新建人物及其初始化\ncharacter::character(){}\ncharacter::character(string na)\n{\n name=na;\n rank=1;\n hpnow=hpmax=500;\n mpmax=mpnow=100;\n expmax=100;\n expnow=0;\n money=450;\n weaponname[0]=\"洪门断剑\";\n weaponname[1]=\"卓越洪门剑\";\n weaponname[2]=\"卓越千魂剑\";\n weaponname[3]=\"卓越妖魔剑\";\n weaponname[4]=\"极限万魂剑\";\n weaponprice[1]=1000;\n weaponprice[2]=2000;\n weaponprice[3]=3000;\n weaponprice[4]=4000;\n weapon[0]=50;\n for(int i=1;i<5;i++)\n {\n weapon[i]=i*100;\n }\n weaponhold=0;\n atk=10+weapon[weaponhold]+(rank-1)*2;\n //初始化药品数量\n for(int i=0;i<4;i++)\n {\n drugnum[i]=0;\n }\n drugname[0]=\"炸鸡\";\n drugname[1]=\"烤鸭\";\n drugname[2]=\"鼠儿果\";\n drugname[3]=\"灵芝\";\n drugint[0]=\"恢复300HP\";\n drugint[1]=\"恢复500HP\";\n drugint[2]=\"恢复50MP\";\n drugint[3]=\"恢复100MP\";\n drugprice[0]=300;\n drugprice[1]=500;\n drugprice[2]=100;\n drugprice[3]=200;\n drugaffect[0]=300;\n drugaffect[1]=500;\n drugaffect[2]=50;\n drugaffect[3]=100;\n skillname[0]=\"天罡战气\";\n skillname[1]=\"绝对防御\";\n skillspend[0]=40;\n skillspend[1]=60;\n skillstate[0]=0;\n skillstate[1]=0;\n skilllast=2;\n skillint[0]=\"攻击力增加20点,持续两回合\";\n skillint[1]=\"抵挡下一次攻击,持续两回合\";\n}\n//显示人物状态\nvoid character::showall()\n{\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"名称:\"<<setw(10)<<name<<\" \"<<\"等级:\"<<setw(5)<<rank<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"HP:\"<<setw(6)<<hpnow<<\"/\"<<setw(6)<<hpmax<<\" \"\n <<\" MP:\"<<setw(6)<<mpnow<<\"/\"<<setw(6)<<mpmax<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"攻击:\"<<setw(6)<<atk<<\" \"\n <<\"武器:\"<<setw(10)<<weaponname[weaponhold]<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"金币: \"<<setw(6)<<money<<\" \"\n <<\"经验:\"<<setw(10)<<expnow<<\"/\"<<setw(10)<<expmax<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n}\nvoid character::showdrug()\n{\n for(int i=0;i<4;i++)\n {\n if(drugnum[i]!=0)\n cout<<\"[\"<<i+1<<\"]\"<<\" \"<<drugname[i]<<\" \"<<drugnum[i]<<\"个 \"<<endl;\n }\n cout<<\"[0] 返回\"<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n}\nvoid character::buydrug(int num)\n{\n if(drugprice[num]<=money)\n {\n money-=drugprice[num];\n drugnum[num]++;\n moveCursor (26,14);\n cout<<\"你买到了1个\"<<drugname[num]<<\",花掉了\"<<drugprice[num]<<\"元\";\n Sleep(600);\n }\n else\n {\n moveCursor (26,14);\n cout<<\"您的金币不够\";\n Sleep(600);\n }\n}\nvoid character::buyweapon(int num)\n{\n if (weaponprice[num]<=money&&num!=weaponhold)\n {\n money-=weaponprice[num];\n weaponhold=num;\n moveCursor (26,14);\n cout<<\"你已经装备了\"<<weaponname[num]<<\",花掉了\"<<drugprice[num]<<\"元\";\n atk=10+weapon[weaponhold]+(rank-1)*2;\n moveCursor (26,15);\n cout<<\"当前攻击力为\"<<atk;\n Sleep(850);\n }\n else if(weaponprice[num]<=money)\n {\n moveCursor (26,14);\n cout<<\"你已经拥有该装备了,无需再次购买!\";\n Sleep(600);\n }\n else\n {\n moveCursor (26,14);\n cout<<\"您的金币不够\";\n Sleep(600);\n }\n}\n//小值的取得\nvoid character::showmoney()\n{\n moveCursor (0,0);\n cout<<\"您有\"<<money<<\"元\";\n}\nint character::getrank()\n{\n return rank;\n}\nint character::getexp()\n{\n return expnow;\n}\nint character::getmoney()\n{\n return money;\n}\nstring character::getname()\n{\n return name;\n}\n//技能与功能\nvoid character::atkup()\n{\n atk+=20;\n}\n//死了返回1; 活着返回0;\nint character::ifdeath()\n{\n if(hpnow==0)\n return 1;\n else\n return 0;\n}\n//重置技能\nvoid character::reskill()\n{\n for(int i=0;i<2;i++)\n skillstate[i]=0;\n}\n//升级\nvoid character::rankup(int exp,int mon)\n{\n srand(time(0));\n //打怪得奖励\n if(exp!=0)\n {\n //10%得红药或者蓝药\n if(rand()%10==0)\n {\n drugnum[0]++;\n cout<<\"获得一个\"<<drugname[0]<<endl;\n Sleep(800);\n }\n if(rand()%10==1)\n {\n drugnum[2]++;\n cout<<\"获得一个\"<<drugname[2]<<endl;\n Sleep(800);\n }\n //加属性\n expnow+=exp;\n money+=mon;\n if(expnow>=expmax)\n {\n rank++;\n expnow-=expmax;\n expmax+=50;\n atk=10+weapon[weaponhold]+(rank-1)*3;\n hpmax+=rank*100*0.75;\n hpnow=hpmax;\n mpmax+=rank*20*0.55;\n mpnow=mpmax;\n cout<<\"恭喜!你升级到了 \"<<rank<<\"级\"<<endl;\n Sleep(1200);\n }\n }\n}\nvoid character::kill(huntian &t)\n{\n int tmpatk=0;\n int playerdamage;\n int def=0;\n int monsterdamage;\n //技能效果\n if(skillstate[0]>0)\n {\n tmpatk=20;\n skillstate[0]--;\n }\n if(skillstate[1]>0)\n {\n def=t.atk;\n skillstate[1]--;\n }\n hpnow=hpnow-t.atk+def;\n if(hpnow<=0)\n hpnow=0;\n t.hpnow=t.hpnow-atk-tmpatk;\n if(t.hpnow<=0)\n t.hpnow=0;\n moveCursor (0,19);\n playerdamage=atk+tmpatk;\n tmpatk=0;\n cout<<\"我凶残得一刀砍掉了 \"<<playerdamage<<\" 点血量\";\n moveCursor (0,20);\n monsterdamage=t.atk-def;\n def=0;\n cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\"<<endl;\n Sleep(1000);\n}\nvoid character::skillkill(huntian &t,int key)\n{\n int def=0;\n int monsterdamage;\n //技能效果\n if(skillstate[0]>0&&key!=0)\n {\n skillstate[0]--;\n }\n if(skillstate[1]>0&&key!=1)\n {\n def=t.atk;\n skillstate[1]--;\n }\n hpnow=hpnow-t.atk+def;\n if(hpnow<=0)\n hpnow=0;\n moveCursor (0,23);\n monsterdamage=t.atk-def;\n def=0;\n cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\";\n Sleep(1100);\n}\n//1使用成功 0使用失败\nint character::useskill(int sel)\n{\n if(sel==0||sel==1)\n {\n if(skillspend[sel]<=mpnow)\n {\n if(skillstate[sel]==0)\n {\n skillstate[sel]=skilllast;\n mpnow-=skillspend[sel];\n cout<<\"技能使用成功!\"<<endl;\n Sleep(600);\n return 1;\n }\n else\n {\n cout<<\"你这个技能的状态还在持续!\"<<endl;\n Sleep(600);\n return 0;\n }\n }\n else\n {\n cout<<\"你的魔力值不足!\"<<endl;\n Sleep(600);\n return 0;\n }\n }\n return 2;\n}\nvoid character::defence()\n{\n //技能消耗一回合\n if(skillstate[0]>0)\n {\n skillstate[0]--;\n }\n if(skillstate[1]>0)\n {\n skillstate[1]--;\n }\n cout<<\"我对他放电,竟然抵挡住了一次攻击!!!!!\"<<endl;\n Sleep(900);\n}\nvoid character::showpack()\n{\n moveCursor (0,18);\n for(int i=0;i<4;i++)\n {\n cout<<\"[\"<<i+1<<\"]\"<<drugname[i]<<\" \"<<drugnum[i]<<\"个 \"<<drugint[i]<<\" \"<<endl;\n }\n cout<<\"[0]返回\"<<endl;\n}\n//1 成功 0失败\nint character::usedrug(int sel)\n{\n //hp\n if(sel>=0&&sel<=2)\n {\n if(drugnum[sel]>0)\n {\n drugnum[sel]--;\n hpnow+=drugaffect[sel];\n if(hpnow>hpmax)\n hpnow=hpmax;\n cout<<drugname[sel]<<\"使用成功!\"<<endl;\n Sleep(600);\n return 1;\n }\n else\n {\n cout<<\"你没有这个物品!\"<<endl;\n Sleep(600);\n return 0;\n }\n }\n //mp\n if(sel>=3&&sel<=4)\n {\n if(drugnum[sel]>0)\n {\n drugnum[sel]--;\n mpnow+=drugaffect[sel];\n if(mpnow>mpmax)\n mpnow=mpmax;\n cout<<drugname[sel]<<\"使用成功!\"<<endl;\n Sleep(600);\n return 1;\n }\n else\n {\n cout<<\"你没有这个物品!\"<<endl;\n Sleep(600);\n return 0;\n }\n }\n return 2;\n}\nvoid character::drugkill(huntian &t)\n{\n int def=0;\n int monsterdamage;\n //技能消耗一回合\n if(skillstate[0]>0)\n {\n skillstate[0]--;\n }\n if(skillstate[1]>0)\n {\n def=t.atk;\n skillstate[1]--;\n }\n hpnow=hpnow-t.atk+def;\n if(hpnow<=0)\n hpnow=0;\n monsterdamage=t.atk-def;\n def=0;\n cout<<\"对手重重得咬了我一口 \"<<monsterdamage<<\" 点血量\";\n Sleep(1100);\n}\n//怪物设定\nhuntian::huntian()\n{\n name=\"浑天教混混\";\n srand(time(0));\n hpnow=rand()%260+245;\n mpnow=10;\n expnow=100;\n atk=rand()%30+30;\n money=450;\n}\nvoid huntian::showall()\n{\n system(\"cls\");\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"名称:\"<<setw(10)<<name<<\" \"<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"HP:\"<<setw(6)<<hpnow<<\" \"<<\" MP:\"<<setw(6)<<mpnow<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"攻击:\"<<setw(6)<<atk<<\" \"<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n}\nwulin::wulin()\n{\n name=\"武林盟败类\";\n srand(time(0));\n hpnow=rand()%100+695;\n mpnow=100;\n expnow=250;\n atk=rand()%140+70;\n money=750;\n}\nboss::boss()\n{\n name=\"秦 义 绝\";\n srand(time(0));\n hpnow=rand()%2100+1950;\n mpnow=1000;\n expnow=1000;\n atk=rand()%315+300;\n money=1750;\n}\nvoid boss::showall()\n{\n system(\"cls\");\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"名称:\"<<setw(10)<<name<<\" \"\n <<\"小样,就你还敢挑战我秦义绝?? 赶紧乖乖受死吧~~~\"<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"HP:\"<<setw(6)<<hpnow<<\" \"<<\" MP:\"<<setw(6)<<mpnow<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n cout<<\"攻击:\"<<setw(6)<<atk<<\" \"<<endl;\n cout<<\"-----------------------------------------------------------------------\"<<endl;\n}\n//存档\nvoid character::savedata()\n{\n fstream saveout;\n saveout.open(\"save.sav\",ios::out);\n saveout<<name<<\" \"<<rank<<\" \"<<hpnow<<\" \"<<hpmax<<\" \"<<mpnow<<\" \"<<mpmax<<endl;\n saveout<<atk<<endl;\n saveout<<expnow<<\" \"<<expmax<<\" \"<<money<<\" \"<<weaponhold<<endl;\n for(int i=0;i<4;i++)\n {\n saveout<<drugnum[i]<<\" \"<<drugname[i]<<\" \"<<drugprice[i]\n <<\" \"<<drugint[i]<<\" \"<<drugaffect[i]<<endl;\n }\n for(int i=0;i<5;i++)\n {\n saveout<<weapon[i]<<\" \"<<weaponname[i]<<\" \"<<weaponprice[i]<<endl;\n }\n for(int i=0;i<2;i++)\n {\n saveout<<skillname[i]<<\" \"<<skillspend[i]<<\" \"\n <<skillstate[i]<<\" \"<<skillint[i]<<endl;\n }\n saveout<<skilllast<<endl;\n saveout.close();\n system(\"cls\");\n moveCursor (28,7);\n cout<<\"数据保存成功!\"<<endl;\n}\n//读档\nint character::readdata()\n{\n fstream savein;\n savein.open(\"save.sav\",ios::in);\n if(!savein)\n {\n system(\"cls\");\n moveCursor (28,7);\n cout<<\"文件不存在,或打开失败!\"<<endl;\n return 0;\n }\n savein>>name>>rank>>hpnow>>hpmax>>mpnow>>mpmax;\n savein>>atk;\n savein>>expnow>>expmax>>money>>weaponhold;\n for(int i=0;i<4;i++)\n {\n savein>>drugnum[i]>>drugname[i]>>drugprice[i]\n >>drugint[i]>>drugaffect[i];\n }\n for(int i=0;i<5;i++)\n {\n savein>>weapon[i]>>weaponname[i]>>weaponprice[i];\n }\n for(int i=0;i<2;i++)\n {\n savein>>skillname[i]>>skillspend[i]>>skillstate[i]>>skillint[i];\n }\n savein>>skilllast;\n savein.close();\n cout<<\"数据读取成功!\"<<endl;\n return 1;\n}\n//返回一行最大可以容纳的字符数\nint getMaxSize () {\nHANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);\n CONSOLE_SCREEN_BUFFER_INFO t_info;\n GetConsoleScreenBufferInfo (t_handle, &t_info);\nreturn t_info.dwSize.X;\n}\n//将输出符号定位到第[p_y]行第[p_x]个字符上。\nvoid moveCursor (int p_x, int p_y) {\nint t_max = getMaxSize ();\np_x = p_x < 1 ? 1 : (p_x >= t_max ? t_max - 1: p_x);\np_y = p_y < 1 ? 1 : p_y;\nCOORD t_pos;\nt_pos.X = p_x - 1;\nt_pos.Y = p_y - 1;\nHANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);\nSetConsoleCursorPosition (t_handle, t_pos);\n}\n//设置光标是否可见,0为不可见,其它数字为可见\nvoid setCursorVisible (int p_visitble) {\nHANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);\nCONSOLE_CURSOR_INFO t_info;\nGetConsoleCursorInfo (t_handle, &t_info);\nt_info.bVisible = p_visitble == FALSE ? FALSE : TRUE;\nSetConsoleCursorInfo (t_handle, &t_info);\n}\n//设置窗口标题,可以如下调用: setWindowTitle (\"窗口标题\");\nvoid setWindowTitle (char* p_title) {\nSetConsoleTitle (p_title);\n}\n