AC荣耀 1.7版本
2024-07-21 09:14:56
发布于:广东
改编作者:IRS(改编)
感谢原作者:Blown sand
代码:
#include <bits/stdc++.h>//初学者游戏作品,过于粗糙,勿喷 制作者:IRS
using namespace std;
int money=0;//钱数
int i=2;
long long lifebottle=99999999999;//血瓶数量
int ucha[105]={1,1,0,0};//表示解锁的英雄,1表示解锁,0表示没解锁
//在此处定义变量,就算没有初始化值,它们的值也为0。这里给它们初始化值只是为了看起来直观。
void game(){//定义一个函数(不是主函数),有点类似于scratch里的自定义模块。
int cha=0;//选择的角色
cout << "欢迎来到AC荣耀,请选择你的英雄。" << endl;
cout << "输入:1.撒币 2.ikun";
if(ucha[2]==1){
cout << " 3.阿贾克斯";
}
if(ucha[3]==1){
cout << " 4.星辰";
}
cout << endl;
do{//这里的do-while循环是为了让玩家在输入错误时能够再次执行输入的代码,输入正确才继续。
int o1;
cin >> o1;
switch(o1){
case 1:cha=1;break;
case 2:cha=2;break;
case 3:if(ucha[2]==1){cha=3;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
case 4:if(ucha[3]==1){cha=4;}else{cha=0;cout << "你没有这个英雄。请重新输入。"<< endl;}break;
default:cout << "你没有这个英雄。请重新输入。"<< endl;break;
}
}while(cha!=1&&cha!=2&&cha!=3&&cha!=4);
system("cls");//这个代码是我从书上学的黑科技,它可以清除全屏
if(cha==1){
cout << "你选择了撒币作为你的英雄,初始生命值为100。"<< endl;
}else if(cha==2){
cout << "你选择了ikun作为你的英雄,初始生命值为140。"<< endl;
}else if(cha==3){
cout << "你选择了阿贾克斯作为你的英雄,初始生命值为200。"<< endl;
}else if(cha==4){
cout << "你选择了星辰作为你的英雄,初始生命值为100。"<< endl;
}
cout << "正在为你匹配对手..." << endl;
int p2=0;
srand(time(NULL));
p2=rand()%2;
if(p2==0){
cout << "匹配成功,你的对手是皮卡丘。" << endl;
}else if(p2==1){
cout << "匹配成功,你的对手是@哥。" << endl;
}
int life1=100,life2=300,
atk1=100,//大黄
gold=0,boom=2,//阿贾克斯
spirit=0,//星辰
wait=0,
xiang=0;//投降不会得到任何奖励
if(cha==2)life1=140;
if(cha==3)life1=90;
if(p2==1)life2=120;
int turn=0;//这是一个计轮器
while(life1>0&&life2>0){//一直互殴直到有一方血量不大于0
int o=0;
wait=0;
do{
cout << "————————————————————————" << endl;
cout << "请选择你的行动。输入:1.技能 2.回血 3.投降 4.查看" << endl;
cout << "————————————————————————" << endl;
cin >> o;
switch(o){
case 1:cout << "使用哪个技能?" <<endl;break;
case 2:if(lifebottle>0){
cout << "你使用1个血瓶,回复了100点生命值。" <<endl;life1+=100;
}else{
cout << "你的血瓶不足,使用失败。" << endl;o=0;
}
break;
case 3:cout << "你投降了。" <<endl;life1=0;xiang=1;break;
case 4:
if(cha==1){
cout << "你的英雄是:撒币" << " ";
}else if(cha==2){
cout << "你的英雄是:ikun" << " ";
}else if(cha==3){
cout << "你的英雄是:阿贾克斯" << " ";
}
cout << "对手的英雄是:皮卡丘" << endl;
cout << "你的生命值为" << life1 << " " << "对手的生命值为" << life2 << endl;
cout << "你拥有的血瓶数量为" << lifebottle << endl;
cout << "当前游戏轮数为" << turn+1 << endl;
break;
default:cout << "你输入的数字应该是1~4之间的整数才对。"<< endl;break;
}
}while(o!=1&&o!=2&&o!=3&&o!=4);
if(o==3||o==4){
wait=1;//如果选择 投降 或者 查看 选项,就不会跳过这一回合。
}
if(o==1){
if(cha==1){
//张斌老师的技能
do{
cout << "输入:1.大喊一声\"你个撒币\" 2.跑一圈" <<endl;
cin >> o;
switch(o){
case 1:cout << "啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊" <<endl;cout << "你的\"你个撒币\"骂疯了对手,失去了30点生命值。" <<endl;life2-=30;break;
case 2:cout << "你跑了一圈,但是没有任何用。" <<endl;break;//这是这个游戏的一个笑点所在,绝对不能改(?)。
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else if(cha==2){
//大黄的技能
do{
cout << "输入:1.做题 2.肘击" <<endl;
cin >> o;
switch(o){
case 1:cout << "你做了一道题,提升了撞击百分之30的攻击力。" <<endl;atk1*=2;break;
case 2:cout << "鸡你太美!" << (int)(atk1*0.11) << "点的伤害。" << endl;life2-=(int)(atk1*0.11);break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}else if(cha==3){
//阿贾克斯的技能
do{
cout << "输入:1.开枪 2.扔手雷" <<endl;
cin >> o;
switch(o){
case 1:gold+=2;cout << "" << gold << "你对对手开了一枪,对手受到了40点伤害。" <<endl;life2-=40;break;
case 2:
if(boom>0){
cout << "你扔出1个手雷,炸到了对手,受到了50点伤害" << endl;
boom--;
life2-=40;
i--;
}else if(i==0){
cout << "你的手雷用完了了,不能再扔手雷。" << endl;
o=0;
}
break;
break;
default:cout << "你输入的数字应该是1、2或者3才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2&&o!=3);
}else if(cha==4){
//星辰的技能
do{
cout << "输入:1.集中精神 2.切!" <<endl;
//星辰的二技能复刻我小时候写的小说,里面我第二个人格的大招名字是青云疾现切,这个大招可以快速挥刀很多次,实在是太帅了(
cin >> o;
switch(o){
case 1:if(turn%4!=3){
if(spirit<=5){
spirit+=5;
cout << "你成功集中了5点精神,你当前的精神力为" << spirit << "。" <<endl;
}else if(spirit==10){
cout << "当前精神力已达最大值10,不能再集中精神。" <<endl;
o=0;
}else{
cout << "你集中了5点精神,但是你的精神力达到了最大值,溢出的精神力已经丢失。你当前的精神力为10。" <<endl;
}
}else{
cout << "屑星辰不能在游戏的每四轮的最后一轮集中精神。当前轮数为" << turn+1 << "。" <<endl;
o=0;
}
break;
case 2:cout << "星辰凝聚精神在青龙匕首上,并使用其切断了对手的节奏线,对手受到了" << spirit+15 << "点伤害。" << endl;life2-=spirit+15;
if(spirit>=4){
cout << "星辰通过散失3点精神力,停滞了时间,本回合星辰会再次行动。" << endl;spirit-=3;wait=1;
}
break;
default:cout << "你输入的数字应该是1或者2才对。给我重输。"<< endl;break;
}
}while(o!=1&&o!=2);
}
}
if(wait==0){
if(p2==0){
//皮卡丘的技能
if(turn%4==3||turn%6==1){
int v=(100-50)/4+20;
cout << "对手皮卡丘使用了拳击,对你造成了" << v << "点伤害。" << endl;
life1-=v;
if(spirit>=4){
cout << "但是星辰的精神力正盛,减少了受到的伤害,实际只受到" << v-2 << "伤害" << endl;
life1+=2;
}
}else{
int v=20;
cout << "对手皮卡丘使用了电击,对你造成了20点伤害。" <<endl;
life1-=v;
if(spirit>=4){
cout << "但是星辰的精神力正盛,减少了受到的伤害,实际只受到" << v-2 << "伤害" << endl;
life1+=2;
}
}
}else if(p2==1){
if(turn%4==2||turn%7==5){
int v=17;
system("cls");
cout << "对手@哥使用了清屏,对你造成了17点伤害。" << endl;
life1-=v;
if(spirit>=4){
cout << "但是星辰的精神力正盛,减少了受到的伤害,实际只受到15伤害" << endl;
life1+=2;
}
}else{
srand(time(NULL));
int random=rand()%11+20;
cout << "对手@哥使用了随机弹幕轰击,对你造成了" << random << "点伤害。" <<endl;
for(int i=1;i<=random;i++){
cout << "@" << endl;
}
life1-=random;
if(spirit>=4){
cout << "但是星辰的精神力正盛,减少了受到的伤害,实际只受到" << random-2 << "伤害" << endl;
life1+=2;
}
}
}
turn++;
}
}
if(life1>0){
cout << "你赢了。你的钱数增加300。";
money += 300;
}else if(life2>0){
if(xiang==0){
cout << "你输了。你的钱数增加50。";
money += 50;
}else{
cout << "你输了。投降不会得到任何战后奖励。";
}
}else{
cout << "你和对手的血量同时归零,平局。你的钱数增加150。";
money += 150;
}
}
void living(){
cout << "————————————————————————" << endl;
cout << "| 大厅 |" << endl;
cout << "————————————————————————" << endl;
cout << "输入:1.匹配 2.商城" << endl;
int cho=0;
do{
int o;
cin >> o;
switch(o){
case 1:cho=1;break;
case 2:cho=2;break;
default:cout << "输入错了,你要输入1或者2。再输入一次。"<< endl;break;
}
}while(cho!=1&&cho!=2);
system("cls");
if(cho==2){
//商城
cout << "————————————————————————" << endl;
cout << "| 商城 |" << endl;
cout << "————————————————————————" << endl;
cout << "你的钱数:" << money << "。" << endl;
cout << "请输入要购买的商品的编号。" << endl;
cout << "1.英雄<阿贾克斯>(价格:50)2.英雄<星辰>(价格:100) 3.道具<血瓶>*3(价格:5) 4.退出商城" << endl;
cho=0;
do{
int o;
cin >> o;
switch(o){
case 1:cho=1;break;
case 2:cho=2;break;
case 3:cho=3;break;
case 4:cho=4;break;
default:cout << "输入错了,再输入一次。"<< endl;break;
}
}while(cho!=1&&cho!=2&&cho!=3&&cho!=4);
system("cls");
if(cho==1){
if(ucha[2]==0){
if(money>=50){
cout << "购买成功" << endl;
ucha[2]=1;
money-=50;
}else{
cout << "你的钱数不够50,买不起 英雄<阿贾克斯>。" << endl;
}
}else{
cout << "这件商品你已经买过了。" << endl;
}
living();
}else if(cho==2){
if(ucha[3]==0){
if(money>=100){
cout << "购买成功" << endl;
ucha[3]=1;
money-=100;
}else{
cout << "你的钱数不够100,买不起 英雄<星辰>。" << endl;
}
}else{
cout << "这件商品你已经买过了。" << endl;
}
living();
}else if(cho==3){
if(money>=5){
cout << "购买成功" << endl;
lifebottle+=3;
money-=5;
}else{
cout << "你的钱数不够5,买不起 道具<血瓶>*3。" << endl;
}
living();
}else{
living();
}
}else{
//匹配
}
}
int main(){
living();
int back=1;
while(back!=0){
game();
cout << endl << "是否退出整个游戏?(是:0/否:其他)" << endl;
cin >> back;
if(back==0){
cout << "已退出。" << endl;
}else{
system("cls");
living();
}
}
谢谢观看,thank you~
全部评论 6
你这不就是抄袭Blown sand吗,怎么连原作者都不标明
2024-07-21 来自 浙江
3ok,去改了
2024-07-21 来自 广东
0感谢评价
2024-07-21 来自 广东
0去做新版喽~
2024-07-21 来自 广东
0
怎么还说自创呢
2024-07-21 来自 浙江
2@IRS 可以直接用key=_getch();判断按下什么键
2024-07-21 来自 浙江
0好好好
2024-07-21 来自 浙江
0呵呵
2024-07-21 来自 广东
0thanks for you.
2024-07-21 来自 广东
0谢谢评论
2024-07-21 来自 广东
0
观看和点赞过140,我我就做新版。
2024-07-20 来自 广东
0不就是想上榜一吗
2024-08-07 来自 广东
1
ikun是无敌的,下个版本我会修改(勿喷)
2024-07-20 来自 广东
0
有帮助,赞一个