修改了第一次的一些小bug;
#include<cstdlib>
#include<iostream>
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
void SC(bool fr,bool fg,bool fb,bool fi,bool kr,bool kg,bool kb,bool ki)//SetColour
{
short s=0;
s+=fr*4;s+=fg*2;s+=fb*1;s+=fi*8;s+=kr*64;s+=kg*32;s+=kb*16;s+=ki*128;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),s);
}
void move(int x,int y)
{
COORD coord={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
void bt()
{
cout<<"三国杀·蜀汉篇(标准版)";
cout<<endl;
cout<<"作者:黄昕俊hxj";
cout<<endl;
Sleep(6000);
}//标题
void ks()
{
system("cls");
cout<<"开始游戏";
cout<<endl;
system("pause");
}//开始游戏
void jdt()
{
system("cls");
move(0,0);cout<<"▉";
move(5,1);cout<<"20%";
Sleep(800);
move(0,0);cout<<"▉▉";
move(5,1);cout<<"40%";
Sleep(800);
move(0,0);cout<<"▉▉▉";
move(5,1);cout<<"60%";
Sleep(800);
move(0,0);cout<<"▉▉▉▉";
move(5,1);cout<<"80%";
Sleep(800);
move(0,0);cout<<"▉▉▉▉▉";
move(5,1);cout<<"100%";
Sleep(800);
system("cls");
}//进度条
int n;
int m,w,s,d;//生命值 技能1值 技能2值 技能3值
string x,j,q,p;//武将名 技能1名 技能2名 技能3名
string lb="刘备",gy="关羽",zf="张飞",zy="赵云",mc="马超",hz="黄忠",jw="姜维";
string wy="魏延",zgl="诸葛亮",pt="庞统";
void wj()
{
cout<<"1、乱世的枭雄:"<<lb<<endl;
cout<<"2、美髥公:"<<gy<<endl;
cout<<"3、万夫莫当:"<<zf<<endl;
cout<<"4、少年将军:"<<zy<<endl;
cout<<"5、一骑千里:"<<mc<<endl;
cout<<"6、老当益壮:"<<hz<<endl;
cout<<"7、龙的衣钵:"<<jw<<endl;
cout<<"8、嗜血的独狼:"<<wy<<endl;
cout<<"9、迟暮的丞相:"<<zgl<<endl;
cout<<"10、凤雏:"<<pt<<endl;
cin>>n;
}//选择武将
void sd()
{
if(n==1){x=lb;j="仁德";p="激将";q="龙怒";m=100;w=120;s=15;d=35;}
if(n==2){x=gy;j="武圣";p="单骑";q="怒斩";m=90;w=30;s=-20;d=40;}
if(n==3){x=zf;j="咆哮";p="嫉恶";q="厉勇";m=80;w=-30;s=20;d=35;}
if(n==4){x=zy;j="龙胆";p="龙魂";q="涯角";m=120;w=45;s=30;d=20;}
if(n==5){x=mc;j="马术";p="铁骑";q="骁袭";m=100;w=-10;s=-40;d=35;}
if(n==6){x=hz;j="烈弓";p="赤刀";q="耄耋";m=140;w=30;s=25;d=140;}
if(n==7){x=jw;j="挑衅";p="继志";q="九伐";m=80;w=210;s=-30;d=30;}
if(n==8){x=wy;j="狂骨";p="奇谋";q="傲气";m=90;w=35;s=250;d=-30;}
if(n==9){x=zgl;j="鬼谋";p="观星";q="急智";m=75;w=230;s=150;d=-45;}
if(n==10){x=pt;j="连环";p="涅槃";q="纵玄";m=70;w=-50;s=25;d=235;}
}//武将的各方面设定
//敌人:马良 法正 马谡 糜竺 刘封 祝融 孟获 廖化 黄月英 刘禅
//白眉智士 蜀汉的辅翼 恃才傲物 挥金追义 骑虎之殇 野性的女王 南蛮王 历尽沧桑 归隐的杰女 无为的真命主
string dm,dn,t,u;//敌将名称 敌将名 技1名 技2名
int l,o,v,h;//技1值 技2值 信号 敌生命值 招数
int k=1;
int rt;
void ds()
{
if(k==1){dm="白眉智士";dn="马良";t="协穆";u="纳蛮";l=-20;o=10;}
if(k==2){dm="蜀汉的辅翼";dn="法正";t="恩怨";u="眩惑";l=-30;o=20;}
if(k==3){dm="恃才傲物";dn="马谡";t="心战";u="挥泪";l=-30;o=35;}
if(k==4){dm="挥金追义";dn="糜竺";t="巨贾";u="资援";l=-45;o=45;}
if(k==5){dm="骑虎之殇";dn="刘封";t="陷嗣";u="阵亡";l=-50;o=55;}
if(k==6){dm="野性的女王";dn="祝融";t="巨象";u="烈刃";l=-35;o=60;}
if(k==7){dm="南蛮王";dn="孟获";t="祸首";u="再起";l=-40;o=60;}
if(k==8){dm="历尽沧桑";dn="廖化";t="当先";u="伏枥";l=-50;o=70;}
if(k==9){dm="归隐的杰女";dn="黄月英";t="集智";u="奇才";l=-60;o=80;}
if(k==10){dm="无为的真命主";dn="刘禅";t="享乐";u="放权";l=-70;o=90;}
if(k!=10)v=100;
if(k==10)v=130;
}//敌将的技能设定
int zs,ts;
void sj()
{
if(w>=100)srand(w);
if(s>=100)srand(s);
if(d>=100)srand(d);
zs=rand()/10;
}//对自身随机技能设定
void rj()
{
if(w>=200&&w<300)ts=w-200;
if(s>=200&&s<300)ts=s-200;
if(d>=200&&d<300)ts=d-200;
}//对他人生命值改动技能设定
void kj()
{
system("cls");
if(k!=10)cout<<"欢迎来到第"<<k<<"关";
else cout<<"欢迎来到第"<<k<<"关boss关";
Sleep(3000);
system("cls");
SC(1,1,1,1,0,0,0,0);
cout<<"你的对手是";
cout<<endl;
cout<<dm<<":"<<dn;
cout<<endl;
cout<<"生命值:"<<v;
cout<<endl;
cout<<"技能:";
cout<<endl;
cout<<"1、"<<t;
cout<<endl;
cout<<"2、"<<u;
Sleep(3500);
system("cls");
}//开局
void az()
{
cout<<x;
cout<<endl;
cout<<"生命值:"<<m;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<dn;
cout<<endl;
cout<<"生命值:"<<v;
Sleep(2200);
system("cls");
}//查看情况
int f,c;//技能号 技能值
string z;//技能名
void cz()
{
cout<<x;
cout<<endl;
cout<<"技能:";
cout<<endl;
cout<<"1、"<<j;
cout<<endl;
cout<<"2、"<<p;
cout<<endl;
cout<<"3、"<<q;
cout<<endl;
cin>>f;
}//我方出招
void jz()
{
if(f==1){c=w;z=j;}
if(f==2){c=s;z=p;}
if(f==3){c=d;z=q;}
f=0;
}//技能值
void sh()
{
if(c>0&&c<100){cout<<x<<"对"<<dn<<"使出"<<z;v-=c;}
if(c<0&&h>0)
{
cout<<x<<"对"<<dn<<"使出"<<z;
if(s>h)m+=h;
if(s<=h)m+=s;
}
if(c>100&&c<200){cout<<x<<"的生命值"<<"+"<<zs;m+=zs;}
if(c>=200&&c<300){cout<<dn<<"的生命值"<<"-"<<ts;v-=ts;}
}//我方伤害
void dz()
{
cout<<endl;
cout<<dn;
cout<<endl;
cout<<"技能:";
cout<<endl;
cout<<"1、"<<t;
cout<<endl;
cout<<"2、"<<u;
cout<<endl;
Sleep(2300);
if(v>=50){cout<<dn<<"对"<<x<<"使出"<<u;h=o;}
else {cout<<dn<<"对"<<x<<"使出"<<t;h=l;}
Sleep(4000);
system("cls");
}//敌方出招
void dh()
{
if(h>0)m-=h;
if(h<0&&c>0&&c<100)
{
if(h>c)v+=c;
if(h<=c)v+=h;
}
}//敌方伤害
void ws()
{
if(m==0){system("cls");SC(1,0,0,1,0,0,0,0);cout<<"很遗憾,您的生命值为0,请重新开始游戏!";}
}//我方判定生死
int r,qw;//下一关的信号 结束的信号
void td()
{
if(k!=10&&v<=0){system("cls");k++;SC(0,1,1,1,0,0,0,0);cout<<"恭喜您,打败了"<<dm<<"·"<<dn<<"!";r=1;Sleep(3000);}
if(k==10&&v<=0){system("cls");SC(0,1,0,1,0,0,0,0);cout<<"恭喜您,打败了蜀汉中的所有敌将,成为蜀汉霸主!";qw=1;}
if(k!=0&&v!=0)SC(1,1,1,1,0,0,0,0);
}//敌人判定生死
void jm()
{
sj();
rj();
ws();
az();
cz();
jz();
sh();
dz();
dh();
td();
}//回合
void dq()
{
for(;;)
{
ds();
kj();
for(;;)
{
if(r==1){r=0;break;}//判定下一关 判定结束游戏
if(qw==1)exit;
jm();
}
}
}//对决
int main()
{
system("title 黄昕俊hxj");
bt();
ks();
jdt();
wj();
sd();
dq();
return 0;
}
//感谢大家来玩
//本次游戏题材和素材选自游戏《三国杀》小说《三国演义》
//请大家多多关注和点赞
//第一次做游戏 ,如有漏洞或做的不好的 请大家多多包容