#include<iostream>
#include<cstdlib>
#include<stdio.h>
#include<time.h>
using namespace std;
int main(){
srand(time(NULL));
string b[8]={"杀","杀","杀","杀","杀","闪","闪","桃"}; //基础牌
string c[8]={"万箭齐发","南蛮入侵","无懈可击","决斗",
"过河拆桥","无中生有","乐不思蜀","桃园结义"}; //锦囊牌
string d[4]={"诸葛连弩","青龙偃月刀","贯石斧","丈八蛇矛"};
string e[4]={"白银狮子","八卦阵","反伤刺甲","不死鸟之眼"};
string h[4]={"赵云","张飞","吕蒙","吕布"};
string p[1000]; //手牌
string f[10]; //装备牌
string k[10]; //武将牌
int a=0,s=4,g=0; //a是手牌数量,s是体力值,g是装备牌
for(int i=0;i<2;i++){
p[a++]=b[rand()%8];
}
for(int i=0;i<2;i++){
p[a++]=c[rand()%8];
}
f[g++]=d[rand()%4];
f[g++]=e[rand()%4];
cout<<"你的初始手牌为: ";
for(int i=0;i<a;i++){
cout<<p[i]<<",";
}
cout<<" 你的生命值为: "<<s<<endl;
cout<<"请你选择你的角色:\n";
int z;
cin>>z;
cout<<"你的角色为"<<h[z-1];
k[0]=h[z-1];
cout<<" 你所拥有的技能是:";
if(k[0]=="赵云")
cout<<"杀可以当闪,闪可以当杀"<<endl;
else if(k[0]=="张飞")
cout<<"出牌阶段可一直出杀"<<endl;
else if(k[0]=="吕蒙")
cout<< "你的出牌阶段不用杀,可跳过弃牌阶段"<<endl;
else if(k[0]=="吕布")
cout<<"你出杀的对象要出两张闪,你决斗的对象要出两张杀"<<endl;
cout<<"你的装备牌为: ";
for(int i=0;i<g;i++){
cout<<f[i]<<",";
}
cout<<endl;
//武器牌信息:
if(f[0]=="诸葛连弩")
cout<<"攻击范围1,可以在出牌阶段使用任意张【杀】"<<endl;
else if(f[0]=="青龙偃月刀")
cout<<"攻击范围3,使用【杀】被抵消时可以再次使用【杀】"<<endl;
else if(f[0]=="贯石斧")
cout<<"攻击范围3,对方使用【闪】抵消【杀】的效果时,可以弃两张牌强制造成伤害"<<endl;
else if(f[0]=="丈八蛇矛")
cout<<"攻击范围3,可以将两张手牌当作一张【杀】使用或打出"<<endl;
//防具信息:
if(f[1]=="白银狮子")
cout<<"锁定技,当你受到大于1点的伤害时,伤害值改为1点"<<endl;
else if(f[1]=="八卦阵")
cout<<"当你需要使用【闪】时,可以进行判定,若结果为红色,视为使用一张【闪】"<<endl;
else if(f[1]=="反伤刺甲")
cout<<"当你受到【杀】的伤害后,若此时你的已损失体力大于1点,则对伤害来源造成1点伤害"<<endl;
else if(f[1]=="不死鸟之眼")
cout<<"锁定技,当你回复体力时,回复量+1"<<endl;
while(true){
int d;
if(f[0]=="八卦阵" || f[1]=="八卦阵")
cout<<"请输入指令 1:摸牌 2:出牌 3:扣体力 4:回体力 5:判定 6:舍弃装备牌 7:判定八卦阵"<<endl;
else
cout<<"请输入指令 1:摸牌 2:出牌 3:扣体力 4:回体力 5:判定 6:舍弃装备牌"<<endl;
cin>>d;
if(d==1){
p[a++]=b[rand()%8];
p[a++]=c[rand()%8];
}
else if(d==2){
cout<<"你要使用第几张牌:\n";
int e;
cin>>e;
if(e>a){
cout<<"你使用的手牌溢出\n";
continue;
}
int f=e-1;
cout<<"你使用了 "<<p[f]<<"\n";
for(int i=f;i<a;i++){
p[i]=p[i+1];
}
a--;
}
else if(d==3){ //按3扣血
s=s-1;
}
else if(d==4){ //按4回血
s=s+1;
}
else if(d==5){
cout<<"开始判定"<<endl;
int h=rand()%4;
if(h==0){
cout<<"判定为红桃,判定成功"<<endl;
}else{
cout<<"判定失败,请继续"<<endl;
}
}
else if(d==6){
cout<<"请弃装备牌:\n";
int e;
cin>>e;
if(e>g){
cout<<"你弃的装备牌溢出\n";
continue;
}
int j=e-1;
cout<<"你弃掉了 "<<f[j]<<"\n";
for(int i=j;i<g;i++){
f[i]=f[i+1];
}
g--;
}
else if(d==7){
cout<<"开始判定"<<endl;
int h=rand()%2;
if(h==0){
cout<<"判定为红色,判定成功"<<endl;
}else{
cout<<"判定失败,请继续"<<endl;
}
}
else{
cout<<"指令错误\n";
continue;
}
if(s<0){
cout<<"已退出游戏";
return 0;
}
cout<<"你的手牌为: ";
for(int i=0;i<a;i++){
cout<<p[i]<<",";
}
cout<<" 你的生命值为: "<<s<<endl;
cout<<"你的装备牌为: ";
for(int i=0;i<g;i++){
cout<<f[i]<<",";
}
cout<<endl;
}
}
三国杀更新版本
张小明
前端开发工程师
IEC 104测试工具深度解析:协议栈调试与报文级故障定位
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
TPS259483与STM32F746ZG实现智能电源路径保护与热插拔控制
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
TPS259483 eFuse与STM32G431组合:工业电源路径保护方案全解析
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
Unity角色换装Mesh合并核心技术解析
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
linjiashop源码深度拆解:用Spring Boot+MyBatis实现商品、订单与支付闭环
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …
微信小程序云开发菜谱源码:免服务器搭建完整流程与避坑指南
/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …