三个精品小游戏,希望大家喜欢。
1、三国杀
#include<iostream>
#include<time.h>
#include<stdio.h>
#include <stdlib.h>
using namespace std;
struct pai
{
int paifu;
int huase;
int yanse;
int dianshu;
int leixing;
int changdu;
void Kanpai()
{
if (paifu == 0 || paifu == 1);
else
printf("牌副参数错误!\n");
switch (huase)
{
case 0:cout << "黑桃"; break;
case 1:cout << "红桃"; break;
case 2:cout << "草花"; break;
case 3:cout << "方片"; break;
case -1:cout << "无色"; break;
default:printf("花色错误!\n"); break;
}
switch (dianshu)
{
case 0:cout << "A "; break;
case 1:cout << "2 "; break;
case 2:cout << "3 "; break;
case 3:cout << "4 "; break;
case 4:cout << "5 "; break;
case 5:cout << "6 "; break;
case 6:cout << "7 "; break;
case 7:cout << "8 "; break;
case 8:cout << "9 "; break;
case 9:cout << "10 "; break;
case 10:cout << "J "; break;
case 11:cout << "Q "; break;
case 12:cout << "K "; break;
case -1:cout << "无点数"; break;
default:printf("点数错误!\n"); break;
}
switch (leixing)
{
case 101:cout << "【杀】" << endl; break;
case 102:cout << "【闪】" << endl; break;
case 103:cout << "【桃】" << endl; break;
case 201:cout << "【过河拆桥】" << endl; break;
case 202:cout << "【顺手牵羊】" << endl; break;
case 203:cout << "【无中生有】" << endl; break;
case 204:cout << "【决斗】" << endl; break;
case 205:cout << "【借刀杀人】" << endl; break;
case 206:cout << "【桃园结义】" << endl; break;
case 207:cout << "【五谷丰登】" << endl; break;
case 208:cout << "【南蛮入侵】" << endl; break;
case 209:cout << "【万箭齐发】" << endl; break;
case 210:cout << "【无懈可击】" << endl; break;
case 251:cout << "【乐不思蜀】" << endl; break;
case 252:cout << "【闪电】" << endl; break;
case 301:cout << "【诸葛连弩(1)】" << endl; break;
case 302:cout << "【雌雄双股剑(2)】" << endl; break;
case 303:cout << "【青釭剑(2)】" << endl; break;
case 304:cout << "【青龙偃月刀(3)】" << endl; break;
case 305:cout << "【丈八蛇矛(3)】" << endl; break;
case 306:cout << "【贯石斧(3)】" << endl; break;
case 307:cout << "【方天画戟(4)】" << endl; break;
case 308:cout << "【麒麟弓(5)】" << endl; break;
case 331:cout << "【八卦阵】" << endl; break;
case 361:cout << "【赤兔(-1)】" << endl; break;
case 362:cout << "【大宛(-1)】" << endl; break;
case 363:cout << "【紫辛(-1)】" << endl; break;
case 381:cout << "【爪黄飞电(+1)】" << endl; break;
case 382:cout << "【的卢(+1)】" << endl; break;
case 383:cout << "【绝影(+1)】" << endl; break;
default:printf("类型参数错误!"); break;
}
}
};
void Qishixipai(pai A[2][4][13], pai paidui[104])
{
int i, m, x, y, z, a[104] = { 0 };
srand((unsigned)time(NULL));
for (i = 1; i <= 104; i++)
{
while (a[m = rand() % 104]);
a[m] = i;
}
for (i = 0; i <= 103; i++)
{
x = (a[i] - 1) / 52;
y = ((a[i] - 1) - 52 * x) / 13;
z = (a[i] - 1) % 13;
paidui[i] = A[x][y][z];
}
}
void Xipai(pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
int i, m, a[104] = { 0 };
srand((unsigned)time(NULL));
for (i = 1; i <= (*qipaishu); i++)
{
while (a[m = rand() % (*qipaishu)]);
a[m] = i;
}
for (i = 0; i <= ((*qipaishu) - 1); i++)
{
paidui[i] = qipaidui[a[i]];
qipaidui[a[i]].leixing = -1;
(*paiduishu)++;
(*qipaishu)--;
}
for (i = (*paiduishu); i <= 103; i++)paidui[i].leixing = -1;
}
pai Mo1pai(pai A[104], int* x, pai B[104], int* y, int* b)
{
pai p;
if ((*x) == 0)Xipai(A, x, B, y);
else if ((*x) < 0)printf("摸牌参数错误!");
else;
p = A[104 - (*x)];
(*x)--;
(*b)++;
return(p);
}
struct wujiang
{
char name;
int tili;
int tilishangxian;
int shoupaishangxian;
int huihekaishi;
int panding;
int mopai;
int chupai;
int qipai;
int huihejieshu;
int juese;
pai shoupai[20];
int shoupaishu;
pai zhuangbei[4];
int zhuangbeishu;
pai pandingpai[3];
int pandingshu;
int juli[1];
void Kanshoupai()
{
printf("玩家当前手牌:\n");
if (shoupaishu)
{
int m;
for (m = 0; m <= (shoupaishu - 1); m++)
{
printf("%d ", m);
(shoupai[m]).Kanpai();
}
}
else printf("空城!\n");
printf("\n");
}
void Kanzhuangbei()
{
if (juese)printf("玩家");
else printf("电脑");
printf("当前装备:\n");
printf("0 武器: ");
if ((zhuangbei[0]).leixing == -1)printf("空\n");
else (zhuangbei[0]).Kanpai();
printf("1 防具: ");
if ((zhuangbei[1]).leixing == -1)printf("空\n");
else (zhuangbei[1]).Kanpai();
printf("2 进攻马: ");
if ((zhuangbei[2]).leixing == -1)printf("空\n");
else (zhuangbei[2]).Kanpai();
printf("3 防御马: ");
if ((zhuangbei[3]).leixing == -1)printf("空\n");
else (zhuangbei[3]).Kanpai();
printf("\n");
}
void Kanpandingpai()
{
if (juese)printf("玩家");
else printf("电脑");
printf("当前判定区:\n");
if ((pandingpai[0]).leixing == -1)printf("空\n");
else
{
printf("0 ");
(pandingpai[0]).Kanpai();
if ((pandingpai[1]).leixing == -1);
else
{
printf("1 ");
(pandingpai[1]).Kanpai();
if ((pandingpai[2]).leixing == -1);
else
{
printf("2 ");
(pandingpai[2]).Kanpai();
}
}
}
}
};
void Mopai(int* shoupaishu, pai shoupai[20], pai A[104], int* x, pai B[104], int* y, int juese)
{
if (juese)printf("玩家从牌堆摸2张牌\n");
else printf("电脑从牌堆摸2张牌\n");
pai p;
p = Mo1pai(A, x, B, y, shoupaishu);
shoupai[*shoupaishu - 1] = p;
pai q;
q = Mo1pai(A, x, B, y, shoupaishu);
shoupai[*shoupaishu - 1] = q;
int m;
if (juese)
{
printf("玩家当前手牌:\n");
for (m = 0; m <= (*shoupaishu - 1); m++)
{
printf("%d ", m);
(shoupai[m]).Kanpai();
}
}
printf("牌堆还剩%d张牌!\n\n", *x);
}
void Qishishoupai(wujiang* w, pai A[104], int* x, pai B[104], int* y)
{
pai a;
a = Mo1pai(A, x, B, y, &((*w).shoupaishu));
(*w).shoupai[(*w).shoupaishu - 1] = a;
pai b;
b = Mo1pai(A, x, B, y, &((*w).shoupaishu));
(*w).shoupai[(*w).shoupaishu - 1] = b;
pai c;
c = Mo1pai(A, x, B, y, &((*w).shoupaishu));
(*w).shoupai[(*w).shoupaishu - 1] = c;
pai d;
d = Mo1pai(A, x, B, y, &((*w).shoupaishu));
(*w).shoupai[(*w).shoupaishu - 1] = d;
int m;
if ((*w).juese)printf("玩家从牌堆摸4张牌\n");
else printf("电脑从牌堆摸4张牌\n");
if ((*w).juese)
{
printf("玩家当前手牌:\n");
for (m = 0; m <= ((*w).shoupaishu - 1); m++)
{
printf("%d ", m);
((*w).shoupai[m]).Kanpai();
}
}
printf("牌堆还剩%d张牌!\n\n", *x);
}
void Panding(pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
paidui[*paiduishu].Kanpai();
qipaidui[*qipaishu] = paidui[*paiduishu];
(*paiduishu)--;
(*qipaishu)++;
}
pai Zhangba(wujiang* w, pai qipaidui[104], int* qipaishu)
{
int x, y;
pai p;
for (;;)
{
int i, j;
printf("请输入任意两张手牌之前的编号,以空格隔开,以回车结束!\n");
scanf("%d", &x);
scanf("%d", &y);
if ((x >= 0) && (x < (*w).shoupaishu) && (y >= 0) && (y < (*w).shoupaishu - 1))
{
switch ((((*w).shoupai[x].huase) % 2) + (((*w).shoupai[y].huase) % 2))
{
case 0:p.yanse = 0; break;
case 2:p.yanse = 1; break;
case 1:p.yanse = 2; break;
default:printf("【丈八蛇矛】函数参数错误!\n");
}
qipaidui[*qipaishu] = (*w).shoupai[x];
(*w).shoupai[x].leixing = -1;
((*w).shoupaishu)--;
(*qipaishu)++;
qipaidui[*qipaishu] = (*w).shoupai[y];
(*w).shoupai[y].leixing = -1;
((*w).shoupaishu)--;
(*qipaishu)++; printf("弃牌数:%d", *qipaishu);
for (i = 0; i <= (((*w).shoupaishu) + 1); i++)
{
if ((*w).shoupai[i].leixing == -1)
{
for (j = i + 1; j <= (((*w).shoupaishu) + 2); j++)
(*w).shoupai[j - 1] = (*w).shoupai[j];
i--;
}
}
printf("玩家把:\n");
qipaidui[(*qipaishu) - 2].Kanpai();
qipaidui[(*qipaishu) - 1].Kanpai();
printf("当作一张");
switch (p.yanse)
{
case 0:printf("黑色"); break;
case 2:printf("红色"); break;
case 1:printf("无色"); break;
default:printf("绿色"); break;
}
printf("无点数的【杀】");
p.dianshu = -1;
p.leixing = 101;
return p;
break;
}
printf("你将两张空气当作一张空气属性的【杀】使用或打出!\n");
}
}
int Xuanpai(wujiang* w, int t)
{
int x;
if ((*w).juese)
{
for (;;)
{
printf("出牌请输入手牌之前的编号,以回车结束!\n如果你想结束出牌阶段,请输入“-1”,以回车结束!\n");
scanf("%d", &x);
if ((x >= -1 && x < ((*w).shoupaishu)) || ((x == 100) && ((*w).zhuangbei[0].leixing == 305)))
{
return x;
break;
}
printf("你打出了一张空气!\n");
}
}
else return t;
}
pai Panpai(wujiang* w1, int* sha, int y, pai qipaidui[104], int* qipaishu)
{
pai p, q;
p.leixing = 0;
q.leixing = -1;
if (y == -1)return q;
else
{
if (y == 100)
{
if ((*sha) > 0)
{
q = Zhangba(w1, qipaidui, qipaishu);
printf("使用!\n");
return q;
}
else
{
printf("当前回合使用【杀】的次数已用尽,你也不能使用【丈八蛇矛】效果!\n");
return p;
}
}
switch ((*w1).shoupai[y].leixing)
{
case 101:
if (((*sha) > 0) || ((*w1).zhuangbei[0].leixing == 301))
{
if (((*w1).zhuangbei[0].leixing == 301))printf("武器【诸葛连弩】效果被触发!\n");
return (*w1).shoupai[y];
break;
}
else
{
if ((*w1).juese)printf("当前回合使用【杀】的次数已用尽,你不能使用【杀】!\n");
return p; break;
}
case 102:
if ((*w1).juese)
printf("当前不需要响应任何操作,你不能主动打出【闪】!\n");
return p; break;
case 103:
if (((*w1).tili) < ((*w1).tilishangxian))
{
return (*w1).shoupai[y];
break;
}
else
{
if ((*w1).juese)
printf("你并未受伤,不能对自己使用【桃】!\n");
}
return p; break;
case 210:
if ((*w1).juese)
printf("当前不需要响应任何锦囊,你不能主动打出【无懈可击】!\n");
return p; break;
case 201:
case 202:
case 203:
case 204:
case 205:
case 206:
case 207:
case 208:
case 209:
case 251:
case 252:
case 301:
case 302:
case 303:
case 304:
case 305:
case 306:
case 307:
case 308:
case 331:
case 361:
case 362:
case 363:
case 381:
case 382:
case 383:return (*w1).shoupai[y]; break;
default:printf("手牌类型参数错误!\n"); return p; break;
}
}
}
int Mubiao(pai p, wujiang* w1, wujiang* w2, int* sha)
{
int x;
switch (p.leixing)
{
case 101:
if ((*w1).juese)
{
printf("请选择【杀】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x == 0)
{
if ((*w1).zhuangbei[0].changdu >= (*w1).juli[0])
{
(*sha)--;
return((*w2).juese);
}
else
{
printf("武器长度不够!\n");
return -2;
}
}
else
{
printf("目标错误!\n");
return -2;
}
}
else
{
if ((*w1).zhuangbei[0].changdu >= (*w1).juli[0])
{
(*sha)--;
return((*w2).juese);
}
else return -2;
}
break;
case 103:return((*w1).juese); break;
case 201:
if ((*w1).juese)
{
printf("请选择【过河拆桥】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x == 0)
{
if ((*w2).shoupaishu || (*w2).zhuangbeishu || (*w2).pandingshu)return((*w2).juese);
else
{
printf("目标没有牌!\n");
return -2;
}
}
else
{
printf("目标错误!\n");
return -2;
}
}
else return((*w2).juese);
break;
case 202:
if ((*w1).juese)
{
printf("请选择【顺手牵羊】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x == 0)
{
if (((*w2).shoupaishu || (*w2).zhuangbeishu || (*w2).pandingshu) && ((*w1).juli[0] <= 1))return((*w2).juese);
else
{
printf("目标没有牌!\n");
return -2;
}
}
else
{
printf("目标错误!\n");
return -2;
}
}
else
{
if ((*w1).juli[0] <= 1)return((*w2).juese);
else return -2;
}
break;
case 203:
return((*w1).juese); break;
case 204:
if ((*w1).juese)
{
printf("请选择【决斗】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x == 0)return((*w2).juese);
else
{
printf("目标错误!\n");
return -2;
}
}
else return((*w2).juese);
break;
case 205:
int y;
if ((*w1).juese)
{
printf("请选择【借刀杀人】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x != 0)
{
printf("目标错误!\n");
return -2;
}
else
{
if (((*w2).zhuangbei[0]).leixing <= 300 || ((*w2).zhuangbei[0]).leixing >= 331)
{
printf("目标装备区里没有武器!\n");
return -2;
}
else
{
printf("请选择【杀】的目标!\n提示:【杀】的目标必须在【借刀杀人】的目标的攻击范围之内!\n输入目标前的编号,以回车结束!\n0 玩家\n");
scanf("%d", &y);
if (y != 0)
{
printf("目标错误!\n");
return -2;
}
else
{
if (((*w2).zhuangbei[0].changdu) < (*w2).juli[0])
{
printf("武器距离不够!\n");
return -2;
}
else
return((*w2).juese);
}
}
}
}
else
{
if (((*w2).zhuangbei[0]).leixing <= 300 || ((*w2).zhuangbei[0]).leixing >= 331)return -2;
else
{
if (((*w2).zhuangbei[0].changdu) < (*w2).juli[0])return -2;
else return((*w2).juese);
}
}
break;
case 206:
case 207:return 99; break;
case 208:
case 209:return 100; break;
case 251:
if ((*w1).juese)
{
printf("请选择【乐不思蜀】的目标!\n输入目标前的编号,以回车结束!\n0 电脑1\n");
scanf("%d", &x);
if (x == 0)
{
int i;
for (i = 0; i <= 2; i++)
{
if ((*w2).pandingpai[i].leixing == 251)
i = -1;
break;
}
if (i == -1)
{
printf("目标判定区里不能同时存在两张相同的延时类锦囊!\n");
return -2;
}
else return((*w2).juese);
}
else
{
printf("目标错误!\n");
return -2;
}
}
else
{
int i;
for (i = 0; i <= 2; i++)
{
if ((*w2).pandingpai[i].leixing == 251)
i = -1;
break;
}
if (i == -1)return -2;
else return((*w2).juese);
}
break;
case 252:
int i;
for (i = 0; i <= 2; i++)
{
if ((*w1).pandingpai[i].leixing == 252)
i = -1;
break;
}
if (i == -1)
{
if ((*w1).juese)printf("目标判定区里不能同时存在两张相同的延时类锦囊!\n");
return -2;
}
else return ((*w1).juese);
break;
case 301:
case 302:
case 303:
case 304:
case 305:
case 306:
case 307:
case 308:
case 331:
case 361:
case 362:
case 363:
case 381:
case 382:
case 383:return((*w1).juese); break;
default:return -2; break;
}
}
void Da1pai(wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu, int x)
{
int i;
if ((x < 0 || x >= ((*w1).shoupaishu)) && x != 100)
printf("你的牌呢?!\n");
else
{
switch (((*w1).shoupai)[x].leixing)
{
case 101:
case 102:
case 103:
case 201:
case 202:
case 203:
case 204:
case 205:
case 206:
case 207:
case 208:
case 209:
case 210:
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
break;
case 251:
for (i = 1; i >= 0; i--)(*w2).pandingpai[i + 1] = (*w2).pandingpai[i];
(*w2).pandingpai[0] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
((*w2).pandingshu)++;
break;
case 252:
for (i = 1; i >= 0; i--)(*w1).pandingpai[i + 1] = (*w1).pandingpai[i];
(*w1).pandingpai[0] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
((*w1).pandingshu)++;
break;
case 301:
case 302:
case 303:
case 304:
case 305:
case 306:
case 307:
case 308:
if ((*w1).zhuangbei[0].leixing == -1)((*w1).zhuangbeishu)++;
else
{
qipaidui[*qipaishu] = ((*w1).zhuangbei)[0];
(*qipaishu)++;
}
(*w1).zhuangbei[0] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
break;
case 331:
if ((*w1).zhuangbei[1].leixing == -1)((*w1).zhuangbeishu)++;
else
{
qipaidui[*qipaishu] = ((*w1).zhuangbei)[1];
(*qipaishu)++;
}
(*w1).zhuangbei[1] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
break;
case 361:
case 362:
case 363:
if ((*w1).zhuangbei[2].leixing == -1)((*w1).zhuangbeishu)++;
else
{
qipaidui[*qipaishu] = ((*w1).zhuangbei)[2];
(*qipaishu)++;
}
(*w1).zhuangbei[2] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
break;
case 381:
case 382:
case 383:
if ((*w1).zhuangbei[3].leixing == -1)((*w1).zhuangbeishu)++;
else
{
qipaidui[*qipaishu] = ((*w1).zhuangbei)[3];
(*qipaishu)++;
}
(*w1).zhuangbei[3] = (*w1).shoupai[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
break;
default:break;
}
}
}
void Miaoshu(pai p, int juese, int duixiang)
{
if (juese == 0)printf("电脑");
else if (juese == 1)printf("玩家");
else printf("角色参数错误!\n");
if (p.leixing <= 300 && p.leixing > 100)
{
switch (duixiang)
{
case -1:printf("打出"); break;
case 0:printf("对电脑使用"); break;
case 1:printf("对玩家使用"); break;
case 99:printf("使用"); break;
case 100:printf("对所有人使用"); break;
default:printf("对象参数错误\n"); break;
}
}
else if (p.leixing >= 301 && p.leixing <= 400)
printf("装备");
else printf("你出的是什么东西?\n");
p.Kanpai();
if (!juese && (p.leixing == 101 || p.leixing == 204 || p.leixing == 205 || p.leixing == 207 || p.leixing == 208 || p.leixing == 209))printf("请响应!\n");
}
int Wuxie(pai* p, wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu, int a)
{
int x;
if ((*w1).juese)
{
printf("是否使用【无懈可击】响应?\n\n");
for (;;)
{
(*w1).Kanshoupai();
printf("如果要使用【无懈可击】请输入手牌之前编号,不需要请输入“-1”,以回车结束!\n");
scanf("%d", &x);
if (x == -1)
{
for (x = 0; x < ((*w2).shoupaishu); x++)
{
if ((*w2).shoupai[x].leixing == 210)
{
printf("电脑使用");
((*w2).shoupai)[x].Kanpai();
printf("对象是");
(*p).Kanpai();
(*p) = ((*w2).shoupai)[x];
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
a++;
break;
}
}
break;
}
else if ((*w1).shoupai[x].leixing == 210)
{
printf("玩家使用");
((*w1).shoupai)[x].Kanpai();
printf("对象是");
(*p).Kanpai();
(*p) = ((*w1).shoupai)[x];
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (int i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
(*w1).Kanshoupai();
a++;
break;
}
else printf("你确定你使用的是【无懈可击】?\n");
}
}
else
{
printf("是否使用【无懈可击】响应?\n");
for (;;)
{
(*w2).Kanshoupai();
printf("如果要使用【无懈可击】请输入手牌之前编号,不需要请输入“-1”,以回车结束!\n");
scanf("%d", &x);
if (x == -1)break;
else if ((*w2).shoupai[x].leixing == 210)
{
printf("玩家使用");
((*w2).shoupai)[x].Kanpai();
printf("对象是");
(*p).Kanpai();
(*p) = ((*w2).shoupai)[x];
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
(*w2).Kanshoupai();
a++;
break;
}
else printf("你确定你使用的是【无懈可击】?\n");
}
}
return a;
}
int Qiutao(wujiang* w, pai qipaidui[104], int* qipaishu)
{
int x;
if ((*w).juese)
{
for (;;)
{
printf("如果要使用【桃】请输入手牌之前的编号,不需要请输入“-1”,以回车结束!\n");
scanf("%d", &x);
if (x == -1)
{
return -1;
break;
}
else if ((*w).shoupai[x].leixing == 103)
{
qipaidui[*qipaishu] = ((*w).shoupai)[x];
for (int i = x + 1; i <= ((*w).shoupaishu); i++)((*w).shoupai)[i - 1] = ((*w).shoupai)[i];
((*w).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
else printf("你确定你使用的是【桃】?\n");
}
}
else
{
for (x = 0; x < ((*w).shoupaishu); x++)
{
if ((*w).shoupai[x].leixing == 103)
{
qipaidui[*qipaishu] = ((*w).shoupai)[x];
for (int i = x + 1; i <= ((*w).shoupaishu); i++)((*w).shoupai)[i - 1] = ((*w).shoupai)[i];
((*w).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
}
return -1;
}
}
int Binsi(wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu)
{
if (((*w2).tili) > 0)return 0;
else
{
int i;
if ((*w1).juese)
{
for (;;)
{
printf("电脑濒死,是否使用【桃】?\n");
i = Qiutao(w1, qipaidui, qipaishu);
if (i == 0)((*w2).tili)++;
if ((i == -1) || ((*w2).tili > 0))break;
}
if ((*w2).tili > 0)return 0;
else
{
for (;;)
{
i = Qiutao(w2, qipaidui, qipaishu);
if (i == 0)((*w2).tili)++;
if ((i == -1) || ((*w2).tili > 0))break;
}
if ((*w2).tili > 0)return 0;
else return -1;
}
}
else
{
for (;;)
{
printf("玩家濒死,是否使用【桃】?\n");
i = Qiutao(w2, qipaidui, qipaishu);
if (i == 0)((*w2).tili)++;
if ((i == -1) || ((*w2).tili > 0))break;
}
if ((*w2).tili > 0)return 0;
else return -1;
}
}
}
int Shan(wujiang* w1, wujiang* w2, pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
int x;
if ((*w2).juese)
{
if (((*w2).zhuangbei[1].leixing == 331) && ((*w1).zhuangbei[0].leixing != 303))
{
for (;;)
{
int m;
printf("是否发动【八卦阵】防具效果?\n0 否\n1 是\n请输入选项之前的编号,以回车结束!\n");
scanf("%d", &m);
if (m == 1)
{
Panding(paidui, paiduishu, qipaidui, qipaishu);
if (qipaidui[(*qipaishu) - 1].huase % 2)
{
printf("【八卦阵】判定成功!\n");
return 0;
}
}
else if (m == 0)
{
printf("【八卦阵】判定失败!\n");
break;
}
else printf("你确定你输入的是“0”或“1”?\n");
}
}
else if (((*w2).zhuangbei[1].leixing == 331) && ((*w1).zhuangbei[0].leixing == 303))printf("【青釭剑】锁定技被触发!\n");
for (;;)
{
printf("请输入手牌之前的编号,或者输入“-1”放弃打出【闪】,以回车结束!\n");
scanf("%d", &x);
if (x == -1)
{
return -1;
break;
}
else if ((*w2).shoupai[x].leixing == 102)
{
printf("玩家打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
else printf("你确定你打出的是【闪】?\n");
}
}
else
{
if (((*w2).zhuangbei[1].leixing == 331) && ((*w1).zhuangbei[0].leixing != 303))
{
Panding(paidui, paiduishu, qipaidui, qipaishu);
if (qipaidui[(*qipaishu) - 1].huase % 2)
{
printf("【八卦阵】判定成功!\n");
return 0;
}
else printf("【八卦阵】判定失败!\n");
}
else if (((*w2).zhuangbei[1].leixing == 331) && ((*w1).zhuangbei[0].leixing == 303))printf("【青釭剑】锁定技被触发!\n");
int i;
for (x = 0; x < ((*w2).shoupaishu); x++)
{
if ((*w2).shoupai[x].leixing == 102)
{
printf("电脑打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
}
return -1;
}
}
int Sha(wujiang* w1, wujiang* w2, pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
int x;
if ((*w2).juese)
{
printf("请打出【闪】响应【杀】!否则你将受到1点伤害!\n");
x = Shan(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (x == -1)
{
int i;
((*w2).tili)--;
printf("电脑对玩家造成1点伤害!\n");
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
}
else if (x == 0 && ((*w1).zhuangbei[0].leixing == 306))
{
int i;
if (((*w1).shoupaishu) >= 2)
{
printf("电脑弃掉:\n");
((*w1).shoupai)[0].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[0];
for (i = 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
((*w1).shoupai)[0].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[0];
for (i = 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
printf("发动【贯石斧】武器效果使【杀】造成伤害!\n");
((*w2).tili)--;
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
}
else return 0;
}
else if (x == 0 && ((*w1).zhuangbei[0].leixing == 304))
{
int i;
for (x = 0; x < ((*w1).shoupaishu); x++)
{
if ((*w1).shoupai[x].leixing == 101)
{
printf("电脑发动【青龙偃月刀】效果对玩家使用");
((*w1).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
i = Sha(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
return i;
break;
}
}
return 0;
}
}
else
{
x = Shan(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (x == -1)
{
if ((*w1).zhuangbei[0].leixing == 308)
{
for (;;)
{
printf("是否发动【麒麟弓】武器效果?\n0 否\n1 是\n");
scanf("%d", &x);
if (x == 1)
{
if (((*w2).zhuangbei[2].leixing == -1) && ((*w2).zhuangbei[3].leixing == -1))
{
printf("电脑根本没有马,射你妹的马啊!\n");
break;
}
else
{
for (;;)
{
printf("0 ");
((*w2).zhuangbei[2]).Kanpai();
printf("1 ");
((*w2).zhuangbei[3]).Kanpai();
printf("请选择要弃掉的马,输入之前的编号,以回车结束!\n");
scanf("%d", &x);
if ((x == 0) && ((*w2).zhuangbei[2].leixing != -1))
{
printf("你弃掉了电脑的");
((*w2).zhuangbei)[2].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[2];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[2].leixing = -1;
((*w2).juli[0])++;
break;
}
else if ((x == 1) && ((*w2).zhuangbei[3].leixing != -1))
{
printf("你弃掉了电脑的");
((*w2).zhuangbei)[3].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[3];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[3].leixing = -1;
((*w1).juli[0])--;
break;
}
else printf("射你妹的马!");
}
break;
}
}
else if (x == 0)break;
else printf("键盘上的“0”和“1”被你吃了吗?\n");
}
}
int i;
((*w2).tili)--;
printf("玩家对电脑造成1点伤害!\n");
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
}
else if (x == 0 && ((*w1).zhuangbei[0].leixing == 306))
{
for (;;)
{
printf("是否发动【贯石斧】武器效果?\n0 否\n1 是\n");
scanf("%d", &x);
if (x == 1)
{
int i;
if ((*w1).shoupaishu + (*w1).zhuangbeishu <= 2)
{
printf("你除了【贯石斧】以外连2张牌都没有,发动你妹的效果!\n");
break;
}
else
{
printf("请分别弃掉两张牌!\n");
for (i = 0; i <= 2; i++)
{
for (;;)
{
printf("请选择区域:\n0 手牌\n1 装备\n");
scanf("%d", &x);
if (x == 0 && ((*w1).shoupaishu == 0))printf("你根本没有手牌,弃你妹啊!\n");
else if (x == 1 && ((*w1).zhuangbeishu == 1))printf("你根本没有别的装备,弃你妹啊!\n");
else if (x >= 0 && x <= 1)break;
else printf("键盘上的“0”和“1”被你吃了吗?\n");
}
if (x == 0)
{
for (;;)
{
(*w1).Kanshoupai();
printf("弃牌请输入手牌之前的编号,以回车结束!\n");
scanf("%d", &x);
if (x >= 0 && x < ((*w1).shoupaishu))break;
else printf("弃你妹的手牌!\n");
}
printf("你弃掉了");
((*w1).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
}
else
{
for (;;)
{
(*w1).Kanzhuangbei();
printf("请输入装备之前的编号,以回车键结束!\n");
scanf("%d", &x);
if ((((*w1).zhuangbei[x]).leixing != -1) && (x >= 0) && (x <= 3))
{
printf("你弃掉了");
((*w1).zhuangbei)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).zhuangbei)[x];
((*w1).zhuangbeishu)--;
(*qipaishu)++;
((*w1).zhuangbei)[x].leixing = -1;
break;
}
else printf("弃你妹的装备!\n");
}
}
}
}
printf("玩家发动【贯石斧】武器效果使【杀】造成伤害!\n");
((*w2).tili)--;
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
break;
}
else if (x == 0)break;
else printf("键盘上的“0”和“1”被你吃了吗?\n");
}
}
else if (x == 0 && ((*w1).zhuangbei[0].leixing == 304))
{
for (;;)
{
printf("是否发动【青龙偃月刀】武器效果?\n0 否\n1 是\n");
scanf("%d", &x);
if (x == 1)
{
for (;;)
{
printf("请对电脑使用一张【杀】!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n");
(*w1).Kanshoupai();
scanf("%d", &x);
if (x == -1)
{
return 0;
break;
}
else if ((*w1).shoupai[x].leixing == 101)
{
int i;
printf("玩家对电脑使用");
((*w1).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
i = Sha(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
return i;
break;
}
else printf("你确定你打出的是【杀】?\n");
}
}
else if (x == 0)
{
return 0;
break;
}
else printf("你确定你输入的是“0”或“1”?\n");
}
}
else return 0;
}
return 0;
}
void Tao(wujiang* w1)
{
((*w1).tili)++;
if ((*w1).juese)printf("玩家");
else printf("电脑");
printf("恢复了1点体力!\n");
if (((*w1).tili) > ((*w1).tilishangxian))printf("你被撑死了!\n");
}
void Chai(wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu)
{
int i, x, y;
if ((*w1).juese)
{
for (;;)
{
if ((*w2).shoupaishu + (*w2).zhuangbeishu + (*w2).pandingshu == 0)
{
printf("对方空城,拆你妹啊!\n");
break;
}
else
{
printf("请选择想拆的区域,输入选项之前的编号,以回车结束!\n0 手牌\n1 装备区\n2 判定区\n");
scanf("%d", &x);
if (x == 0 && ((*w2).shoupaishu == 0))printf("你拆掉了一张空气!\n");
else if (x == 1 && ((*w2).zhuangbeishu == 0))printf("你拆掉了一张空气!\n");
else if (x == 2 && ((*w2).pandingshu == 0))printf("你拆掉了一张空气!\n");
else if (x >= 0 && x <= 2)break;
else printf("你拆掉了太空区里的一张牌!\n");
}
}
switch (x)
{
case 0:
srand((unsigned)time(NULL));
y = rand() % ((*w2).shoupaishu);
printf("你弃掉了电脑的");
((*w2).shoupai)[y].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[y];
for (i = y + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
break;
case 1:
for (;;)
{
(*w2).Kanzhuangbei();
printf("请输入装备之前的编号,以回车键结束!\n");
scanf("%d", &y);
if ((((*w2).zhuangbei[y]).leixing != -1) && (y >= 0) && (y <= 3))
{
printf("你弃掉了电脑的");
((*w2).zhuangbei)[y].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[y];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[y].leixing = -1;
if (!y)((*w2).zhuangbei)[y].changdu = 1;
else if (y == 2)((*w2).juli[0])++;
else if (y == 3)((*w1).juli[0])--;
break;
}
else printf("你弃掉了一张空气!\n");
}
break;
case 2:
for (;;)
{
(*w2).Kanpandingpai();
printf("请输入判定牌之前的编号,以回车键结束!\n");
scanf("%d", &y);
if ((*w2).pandingpai[y].leixing != -1)
{
printf("你弃掉了电脑的");
((*w2).pandingpai)[y].Kanpai();
qipaidui[*qipaishu] = ((*w2).pandingpai)[y];
((*w2).pandingshu)--;
(*qipaishu)++;
((*w2).pandingpai)[y].leixing = -1;
break;
}
else printf("你弃掉了一张空气!\n");
}
break;
default:break;
}
}
else
{
if ((*w2).zhuangbeishu)
{
if ((*w2).zhuangbei[1].leixing != -1)
{
printf("电脑弃掉了玩家的");
((*w2).zhuangbei)[1].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[1];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[1].leixing = -1;
}
else if ((*w2).zhuangbei[3].leixing != -1)
{
printf("电脑弃掉了玩家的");
((*w2).zhuangbei)[3].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[3];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[3].leixing = -1;
((*w1).juli[0])--;
}
else if ((*w2).zhuangbei[0].leixing != -1)
{
printf("电脑弃掉了玩家的");
((*w2).zhuangbei)[0].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[0];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[0].leixing = -1;
((*w2).zhuangbei)[0].changdu = 1;
}
else
{
printf("电脑弃掉了玩家的");
((*w2).zhuangbei)[2].Kanpai();
qipaidui[*qipaishu] = ((*w2).zhuangbei)[2];
((*w2).zhuangbeishu)--;
(*qipaishu)++;
((*w2).zhuangbei)[2].leixing = -1;
((*w2).juli[0])++;
}
}
else
{
srand((unsigned)time(NULL));
y = rand() % ((*w2).shoupaishu);
printf("电脑弃掉了玩家的手牌");
((*w2).shoupai)[y].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[y];
for (i = y + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
}
}
}
void Qian(wujiang* w1, wujiang* w2)
{
int i, x, y;
if ((*w1).juese)
{
for (;;)
{
if ((*w2).shoupaishu + (*w2).zhuangbeishu + (*w2).pandingshu == 0)
{
printf("对方空城啦!你牵走了一张寂寞!\n");
break;
}
else
{
printf("请选择想牵的区域,输入选项之前的编号,以回车结束!\n0 手牌\n1 装备区\n2 判定区\n");
scanf("%d", &x);
if (x == 0 && ((*w2).shoupaishu == 0))printf("你牵走了一张空气!\n");
else if (x == 1 && ((*w2).zhuangbeishu == 0))printf("你牵走了一张空气!\n");
else if (x == 2 && ((*w2).pandingshu == 0))printf("你牵走了一张空气!\n");
else if (x >= 0 && x <= 2)break;
else printf("你牵走了太空区里的一张牌!\n");
}
}
switch (x)
{
case 0:
srand((unsigned)time(NULL));
y = rand() % ((*w2).shoupaishu);
printf("你牵走了电脑的");
((*w2).shoupai)[y].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).shoupai)[y];
for (i = y + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
((*w1).shoupaishu)++;
break;
case 1:
for (;;)
{
(*w2).Kanzhuangbei();
printf("请输入装备之前的编号,以回车键结束!\n");
scanf("%d", &y);
if ((((*w2).zhuangbei[y]).leixing != -1) && (y >= 0) && (y <= 3))
{
printf("你牵走了电脑的");
((*w2).zhuangbei)[y].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[y];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[y].leixing = -1;
if (!y)((*w2).zhuangbei[y]).changdu = 1;
else if (y == 2)((*w2).juli[0])++;
else if (y == 3)((*w1).juli[0])--;
break;
}
else printf("你弃掉了一张空气!\n");
}
break;
case 2:
for (;;)
{
(*w2).Kanpandingpai();
printf("请输入判定牌之前的编号,以回车键结束!\n");
scanf("%d", &y);
if ((*w2).pandingpai[y].leixing != -1)
{
printf("你牵走了电脑的");
((*w2).pandingpai)[y].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).pandingpai)[y];
((*w2).pandingshu)--;
((*w1).shoupaishu)++;
((*w2).pandingpai)[y].leixing = -1;
break;
}
else printf("你牵走了一张空气!\n");
}
break;
default:break;
}
}
else
{
if ((*w2).zhuangbeishu)
{
if ((*w2).zhuangbei[1].leixing != -1)
{
printf("电脑牵走了玩家的");
((*w2).zhuangbei)[1].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[1];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[1].leixing = -1;
}
else if ((*w2).zhuangbei[3].leixing != -1)
{
printf("电脑牵走了玩家的");
((*w2).zhuangbei)[3].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[3];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[3].leixing = -1;
((*w1).juli[0])--;
}
else if ((*w2).zhuangbei[0].leixing != -1)
{
printf("电脑牵走了玩家的");
((*w2).zhuangbei)[0].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[0];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[0].leixing = -1;
((*w2).zhuangbei)[0].changdu = 1;
}
else
{
printf("电脑牵走了玩家的");
((*w2).zhuangbei)[2].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[2];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[2].leixing = -1;
((*w2).juli[0])--;
}
}
else
{
srand((unsigned)time(NULL));
y = rand() % ((*w2).shoupaishu);
printf("电脑牵走了玩家的手牌");
((*w2).shoupai)[y].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).shoupai)[y];
for (i = y + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
((*w1).shoupaishu)++;
}
}
}
void Wuzhong(wujiang* w1, pai A[104], int* x, pai B[104], int* y)
{
Mopai(&((*w1).shoupaishu), (*w1).shoupai, A, x, B, y, (*w1).juese);
}
int Juedou(wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu)
{
int i, j, x;
if ((*w1).juese)
{
for (;;)
{
j = 0;
for (x = 0; x < ((*w2).shoupaishu); x++)
{
if ((*w2).shoupai[x].leixing == 101)
{
printf("电脑打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
}
if (!j)
{
printf("玩家对电脑造成1点伤害!\n");
((*w2).tili)--;
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
break;
}
j = 0;
for (;;)
{
printf("请打出一张【杀】响应【决斗】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n");
if (((*w1).zhuangbei[0].leixing == 305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n");
(*w1).Kanshoupai();
scanf("%d", &x);
if (x == -1)
{
int i;
((*w1).tili)--;
printf("电脑对玩家造成1点伤害!\n");
i = Binsi(w2, w1, qipaidui, qipaishu);
return i;
break;
}
else if (((*w1).zhuangbei[0].leixing == 305) && x == 100)
{
pai p = Zhangba(w1, qipaidui, qipaishu);
p.paifu = -1;
printf("打出!\n");
j = 1;
break;
}
else if ((*w1).shoupai[x].leixing == 101)
{
printf("玩家打出");
((*w1).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
else printf("你确定你打出的是【杀】?\n");
}
}
}
else
{
for (;;)
{
j = 0;
for (;;)
{
printf("请打出一张【杀】响应【决斗】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n");
if (((*w1).zhuangbei[0].leixing == 305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n");
(*w2).Kanshoupai();
scanf("%d", &x);
if (x == -1)
{
int i;
((*w2).tili)--;
printf("电脑对玩家造成1点伤害!\n");
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
break;
}
else if (((*w2).zhuangbei[0].leixing == 305) && x == 100)
{
pai p = Zhangba(w2, qipaidui, qipaishu);
p.paifu = -1;
printf("打出!\n");
j = 1;
break;
}
else if ((*w2).shoupai[x].leixing == 101)
{
printf("玩家打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
else printf("你确定你打出的是【杀】?\n");
}
j = 0;
for (x = 0; x < ((*w1).shoupaishu); x++)
{
if ((*w1).shoupai[x].leixing == 101)
{
printf("电脑打出");
((*w1).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w1).shoupai)[x];
for (int i = x + 1; i <= ((*w1).shoupaishu); i++)((*w1).shoupai)[i - 1] = ((*w1).shoupai)[i];
((*w1).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
}
if (!j)
{
printf("玩家对电脑造成1点伤害!\n");
((*w2).tili)--;
i = Binsi(w2, w1, qipaidui, qipaishu);
return i;
break;
}
}
}
}
int Jiedao(wujiang* w1, wujiang* w2, pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
int i, j = 0, x;
if ((*w1).juese)
{
for (x = 0; x < ((*w2).shoupaishu); x++)
{
if ((*w2).shoupai[x].leixing == 101)
{
printf("电脑对玩家使用");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
}
if (j)
{
i = Sha(w2, w1, paidui, paiduishu, qipaidui, qipaishu);
return i;
printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
}
else
{
printf("电脑放弃使用【杀】,玩家获得电脑的武器");
(*w2).zhuangbei[0].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[0];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[0].leixing = -1;
((*w2).zhuangbei)[0].changdu = 1;
(*w1).Kanshoupai();
return 0;
}
}
else
{
for (;;)
{
printf("请对电脑使用一张【杀】,否则电脑将获得你的武器!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n");
if (((*w2).zhuangbei[0].leixing == 305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n");
(*w2).Kanshoupai();
scanf("%d", &x);
if (x == -1)break;
else if (((*w2).zhuangbei[0].leixing == 305) && x == 100)
{
pai p = Zhangba(w2, qipaidui, qipaishu);
p.paifu = -1;
printf("使用!\n");
j = 1;
break;
}
else if ((*w2).shoupai[x].leixing == 101)
{
printf("玩家对电脑使用");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
j = 1;
break;
}
else printf("你确定你使用的是【杀】?\n");
}
if (j)
{
i = Sha(w2, w1, paidui, paiduishu, qipaidui, qipaishu);
return i;
printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
}
else
{
printf("玩家放弃使用【杀】,电脑获得玩家的武器");
((*w2).zhuangbei)[0].Kanpai();
(*w1).shoupai[(*w1).shoupaishu] = ((*w2).zhuangbei)[0];
((*w2).zhuangbeishu)--;
((*w1).shoupaishu)++;
((*w2).zhuangbei)[0].leixing = -1;
((*w2).zhuangbei)[0].changdu = 1;
return 0;
}
}
}
void Taoyuan(wujiang* w)
{
if ((*w).tili < (*w).tilishangxian)
{
((*w).tili)++;
if ((*w).juese)printf("玩家");
else printf("电脑");
printf("恢复1点体力!\n");
}
}
void Kaipai(pai paidui[104], int* paiduishu, int renshu, pai wugu[10])
{
int i;
printf("五谷丰登开牌:\n");
for (i = 1; i <= renshu; i++)
{
wugu[i - 1] = paidui[104 - (*paiduishu)];
(*paiduishu)--;
printf("%d ", i - 1);
wugu[i - 1].Kanpai();
}
}
void Qupai(pai wugu[10], wujiang* w)
{
int i, x;
printf("五谷丰登开牌:\n");
for (i = 0; (wugu[i].leixing) != -1; i++)
{
printf("%d ", i);
wugu[i].Kanpai();
}
if ((*w).juese)
{
for (;;)
{
printf("请选择你想要的卡牌,输入卡牌之前的编号,以回车结束!\n");
scanf("%d", &x);
if (wugu[x].leixing != -1)
{
printf("玩家选择");
wugu[x].Kanpai();
(*w).shoupai[(*w).shoupaishu] = wugu[x];
((*w).shoupaishu)++;
for (i = x + 1; i <= 9; i++)wugu[i - 1] = wugu[i];
wugu[9].leixing = -1;
break;
}
printf("你选择了一张空气加入手牌!");
}
}
else
{
printf("电脑选择");
wugu[0].Kanpai();
(*w).shoupai[(*w).shoupaishu] = wugu[0];
((*w).shoupaishu)++;
for (i = 1; i <= 9; i++)wugu[i - 1] = wugu[i];
wugu[9].leixing = -1;
}
}
void Rengpai(pai wugu[10], pai qipaidui[104], int* qipaishu)
{
int i;
for (i = 0; wugu[i].leixing != -1; i++)
{
qipaidui[*qipaishu] = wugu[i];
(*qipaishu)++;
wugu[i].leixing = -1;
}
}
int Nanman(wujiang* w1, wujiang* w2, pai qipaidui[104], int* qipaishu)
{
int i, x;
if ((*w1).juese)
{
for (x = 0; x < ((*w2).shoupaishu); x++)
{
if ((*w2).shoupai[x].leixing == 101)
{
printf("电脑打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (int i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
}
printf("玩家对电脑造成1点伤害!\n");
((*w2).tili)--;
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
}
else
{
for (;;)
{
printf("请打出一张【杀】响应【南蛮入侵】,否则你将受到1点伤害!\n请输入手牌之前的编号,或者输入“-1”放弃出【杀】,以回车结束!\n");
if (((*w2).zhuangbei[0].leixing == 305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n");
(*w2).Kanshoupai();
scanf("%d", &x);
if (x == -1)
{
int i;
((*w2).tili)--;
printf("电脑对玩家造成1点伤害!\n");
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
break;
}
else if (((*w2).zhuangbei[0].leixing == 305) && x == 100)
{
pai p = Zhangba(w2, qipaidui, qipaishu);
p.paifu = -1;
printf("使用!\n");
return 0;
break;
}
else if ((*w2).shoupai[x].leixing == 101)
{
printf("玩家打出");
((*w2).shoupai)[x].Kanpai();
qipaidui[*qipaishu] = ((*w2).shoupai)[x];
for (i = x + 1; i <= ((*w2).shoupaishu); i++)((*w2).shoupai)[i - 1] = ((*w2).shoupai)[i];
((*w2).shoupaishu)--;
(*qipaishu)++;
return 0;
break;
}
else printf("你确定你打出的是【杀】?\n");
}
}
}
int Wanjian(wujiang* w1, wujiang* w2, pai paidui[104], int* paiduishu, pai qipaidui[104], int* qipaishu)
{
int i;
i = Shan(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (i == -1)
{
i = Binsi(w1, w2, qipaidui, qipaishu);
return i;
}
else return 0;
}
int Chupai(pai paidui[104], pai qipaidui[104], int* paiduishu, int* qipaishu, wujiang* w1, wujiang* w2, pai yuanshipaidui[2][4][13])
{
pai p1;
int sha = 1; int y = -1, i, t = ((*w1).shoupaishu) - 1;
for (;; t--)
{
if ((*w1).juese)
{
printf("\n电脑当前手牌数:%d\n", ((*w2).shoupaishu));
(*w2).Kanzhuangbei();
(*w1).Kanshoupai();
(*w1).Kanzhuangbei();
}
int j = 0;
if ((*w1).juese && ((*w1).zhuangbei[0].leixing == 305))printf("如果想发动【丈八蛇矛】效果,请输入“100”,以回车结束!\n");
y = Xuanpai(w1, t);
p1 = Panpai(w1, &sha, y, qipaidui, qipaishu);
if ((p1).leixing == -1)break;
else if ((p1).leixing == 0)continue;
else
{
int duixiang;
duixiang = Mubiao(p1, w1, w2, &sha);
if (duixiang == -2)continue;
else
{
Da1pai(w1, w2, qipaidui, qipaishu, y);
Miaoshu(p1, ((*w1).juese), duixiang);
if (!((*w1).juese))
{
printf("\n电脑当前手牌数:%d\n", ((*w1).shoupaishu));
(*w1).Kanzhuangbei();
(*w2).Kanshoupai();
(*w2).Kanzhuangbei();
}
switch (p1.leixing)
{
case 101:
i = Sha(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (i == -1) { return -1; break; }
if ((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
break;
case 103:
Tao(w1);
break;
case 201:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Chai(w1, w2, qipaidui, qipaishu);
else;
if ((*w1).juese)(*w1).Kanshoupai();
break;
case 202:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Qian(w1, w2);
else;
if ((*w1).juese)(*w1).Kanshoupai();
break;
case 203:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Wuzhong(w1, paidui, paiduishu, qipaidui, qipaishu);
else;
break;
case 204:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))
{
i = Juedou(w1, w2, qipaidui, qipaishu);
if (i == -1)return -1;
if ((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
}
break;
case 205:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))
{
i = Jiedao(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (i == -1)return -1;
if ((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
}
break;
case 206:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Taoyuan(w1);
j = 0;
for (;;)
{
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Taoyuan(w2);
break;
case 207:
pai wugu[10];
for (i = 1; i <= 10; i++)wugu[i - 1].leixing = -1;
Kaipai(paidui, paiduishu, 2, wugu);
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Qupai(wugu, w1);
for (;;)
{
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))Qupai(wugu, w2);
Rengpai(wugu, qipaidui, qipaishu); printf("弃牌数:%d\n", *qipaishu);
break;
case 208:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))
{
i = Nanman(w1, w2, qipaidui, qipaishu);
if (i == -1)return -1;
if ((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
}
break;
case 209:
for (;;)
{
i = Wuxie(&p1, w1, w2, qipaidui, qipaishu, 0);
if (!i)break;
j++;
i = Wuxie(&p1, w2, w1, qipaidui, qipaishu, 0);
if (!i)break;
j++;
}
if (!(j % 2))
{
i = Wanjian(w1, w2, paidui, paiduishu, qipaidui, qipaishu);
if (i == -1)return -1;
if ((*w1).juese)printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w1).tili, (*w1).tilishangxian, (*w2).tili, (*w2).tilishangxian);
else printf("玩家当前体力值:%d/%d\n电脑当前体力值:%d/%d\n", (*w2).tili, (*w2).tilishangxian, (*w1).tili, (*w1).tilishangxian);
}
break;
case 361:
case 362:
case 363:
((*w1).juli[0])--; break;
case 381:
case 382:
case 383:
((*w2).juli[0])++; break;
default:break;
}
printf("\n");
}
}
}
return 0;
}
void Qipai(pai shoupai[20], int* shoupaishu, pai qipaidui[104], int* qipaishu, int juese, int* shoupaishangxian)
{
int x;
if ((*shoupaishu) > (*shoupaishangxian))
{
if (juese != 1 && juese != 0)printf("身份参数错误!");
int q = (*shoupaishu) - (*shoupaishangxian);
int i, j;
for (j = 1; j <= q; j++)
{
for (;;)
{
if (juese)
{
printf("弃牌请输入手牌之前的编号,以回车结束!\n注:一次只能弃一张牌\n");
printf("手牌数:%d\n", *shoupaishu);
scanf("%d", &x);
if (x >= 0 && x < (*shoupaishu))break;
else printf("你弃掉了一张空气!\n");
}
else
{
srand((unsigned)time(NULL));
x = rand() % (*shoupaishu);
break;
}
}
qipaidui[*qipaishu] = shoupai[x];
for (i = x + 1; i <= (*shoupaishu); i++)shoupai[i - 1] = shoupai[i];
(*shoupaishu)--;
if (juese)printf("弃牌阶段玩家弃置");
else printf("弃牌阶段电脑弃置");
qipaidui[*qipaishu].Kanpai();
(*qipaishu)++;
int m;
if (juese)
{
printf("玩家当前手牌:\n");
for (m = 0; m <= (*shoupaishu - 1); m++)
{
printf("%d ", m);
(shoupai[m]).Kanpai();
}
} printf("弃牌堆:%d\n", *qipaishu);
}
}
}
int Huihe(pai A[104], pai B[104], int* x, int* y, pai yuanshipaidui[2][4][13], wujiang* w1, wujiang* w2)
{
printf("\n回合开始阶段……\n");
switch ((*w1).huihekaishi)
{
case 0:break;
default:printf("回合开始阶段参数错误!\n"); break;
}
printf("判定阶段……\n");
int K = 0;
if ((*w1).pandingshu > 0)
{
int i, j;
for (; (*w1).pandingshu;)
{
switch ((*w1).pandingpai[0].leixing)
{
case 251:printf("【乐不思蜀】开始判定……\n"); break;
case 252:printf("【闪电】开始判定……\n"); break;
default:printf("【??】开始判定……\n"); break;
}
j = 0;
pai p = ((*w1).pandingpai[0]);
for (;;)//在判定之前询问【无懈】
{
i = Wuxie(&p, w2, w1, B, y, 0);
if (!i)break;
j++;
i = Wuxie(&p, w1, w2, B, y, 0);
if (!i)break;
j++;
}
switch ((*w1).pandingpai[0].leixing)
{
case 251:
if (!(j % 2))
{
printf("【乐不思蜀】的判定牌是:");
Panding(A, x, B, y);
if ((B[(*y) - 1].huase) != 1)
{
printf("【乐不思蜀】判定成功!\n");
if ((*w1).juese)printf("玩家");
else printf("电脑");
printf("跳过出牌阶段!\n");
K = -1;
}
else printf("【乐不思蜀】判定失败!\n");
}
B[*y] = (*w1).pandingpai[0];
((*w1).pandingshu)--;
(*w1).pandingpai[0] = (*w1).pandingpai[1];
(*w1).pandingpai[1] = (*w1).pandingpai[2];
(*w1).pandingpai[2].leixing = -1;
(*y)++;
break;
case 252:
if (!(j % 2))
{
printf("【闪电】的判定牌是:");
Panding(A, x, B, y);
if ((B[(*y) - 1].huase == 0) && (B[(*y) - 1].dianshu >= 1) && (B[(*y) - 1].dianshu <= 8))
{
printf("【闪电】判定成功!\n");
if ((*w1).juese)printf("玩家");
else printf("电脑");
printf("受到3点雷电伤害!");
((*w1).tili) = ((*w1).tili) - 3;
i = Binsi(w2, w1, B, y);
B[*y] = (*w1).pandingpai[0];
((*w1).pandingshu)--;
(*w1).pandingpai[0] = (*w1).pandingpai[1];
(*w1).pandingpai[1] = (*w1).pandingpai[2];
(*w1).pandingpai[2].leixing = -1;
(*y)++;
if (i == -1)return -1;
}
else
{
printf("【闪电】判定失败!\n");
(*w2).pandingpai[2] = (*w2).pandingpai[1];
(*w2).pandingpai[1] = (*w2).pandingpai[0];
(*w2).pandingpai[0] = (*w1).pandingpai[0];
(*w1).pandingpai[0] = (*w1).pandingpai[1];
(*w1).pandingpai[1] = (*w1).pandingpai[2];
(*w1).pandingpai[2].leixing = -1;
((*w1).pandingshu)--;
((*w2).pandingshu)++;
}
break;
}
default:printf("判定牌错误!");
} printf("弃牌数:%d\n", *y);
}
}
else if (!((*w1).pandingshu));
else printf("判定阶段参数错误!\n");
printf("摸牌阶段……\n");
switch ((*w1).mopai)
{
case 0:Mopai(&((*w1).shoupaishu), (*w1).shoupai, A, x, B, y, (*w1).juese); break;
case -1:break;
default:printf("摸牌阶段参数错误!\n"); break;
}
if (K == -1)goto M;
printf("出牌阶段……\n");
switch ((*w1).chupai)
{
case 0:
{
int i;
i = Chupai(A, B, x, y, w1, w2, yuanshipaidui);
if (i == -1)
{
return -1;
break;
}
else break;
}
case -1:break;
default:printf("出牌阶段参数错误!\n"); break;
}
M:
printf("弃牌阶段……\n");
switch ((*w1).qipai)
{
case 0:
Qipai((*w1).shoupai, &((*w1).shoupaishu), B, y, (*w1).juese, &((*w1).tili)); break;
default:printf("弃牌阶段参数错误!\n"); break;
}
printf("回合结束阶段……\n");
switch ((*w1).huihejieshu)
{
case 0:break;
default:printf("回合结束阶段参数错误!\n"); break;
}
return 0;
}
int main()
{
void Kanshoupai(pai p);
pai yuanshipaidui[2][4][13], qipaidui[104], paidui[104];
wujiang wanjia, com;
com.tili = wanjia.tili = 5;
com.tilishangxian = wanjia.tilishangxian = 5;
com.huihekaishi = wanjia.huihekaishi = 0;
com.panding = wanjia.panding = 0;
com.mopai = wanjia.mopai = 0;
com.chupai = wanjia.chupai = 0;
com.qipai = wanjia.qipai = 0;
com.huihejieshu = wanjia.huihejieshu = 0;
com.shoupaishu = wanjia.shoupaishu = 0;
com.pandingshu = wanjia.pandingshu = 0;
com.zhuangbeishu = wanjia.zhuangbeishu = 0;
com.juese = 0; wanjia.juese = 1;
pai p;
p.leixing = -1;
com.zhuangbei[0] = com.zhuangbei[1] = com.zhuangbei[2] = com.zhuangbei[3] = wanjia.zhuangbei[0] = wanjia.zhuangbei[1] = wanjia.zhuangbei[2] = wanjia.zhuangbei[3] = p;
com.zhuangbei[0].changdu = wanjia.zhuangbei[0].changdu = 1;
com.pandingpai[0] = com.pandingpai[1] = com.pandingpai[2] = wanjia.pandingpai[0] = wanjia.pandingpai[1] = wanjia.pandingpai[2] = p;
com.juli[0] = wanjia.juli[0] = 1;
int a, b, c;
for (a = 0; a <= 1; a++)
{
for (b = 0; b <= 3; b++)
{
for (c = 0; c <= 12; c++)
{
yuanshipaidui[a][b][c].paifu = a;
yuanshipaidui[a][b][c].huase = b;
yuanshipaidui[a][b][c].dianshu = c;
}
}
}
yuanshipaidui[0][0][0].leixing = 204;
yuanshipaidui[0][0][1].leixing = 331;
yuanshipaidui[0][0][2].leixing = 201;
yuanshipaidui[0][0][3].leixing = 201;
yuanshipaidui[0][0][4].leixing = 304; yuanshipaidui[0][0][4].changdu = 3;
yuanshipaidui[0][0][5].leixing = 251;
yuanshipaidui[0][0][6].leixing = 101;
yuanshipaidui[0][0][7].leixing = 101;
yuanshipaidui[0][0][8].leixing = 101;
yuanshipaidui[0][0][9].leixing = 101;
yuanshipaidui[0][0][10].leixing = 202;
yuanshipaidui[0][0][11].leixing = 201;
yuanshipaidui[0][0][12].leixing = 208;
yuanshipaidui[0][1][0].leixing = 209;
yuanshipaidui[0][1][1].leixing = 102;
yuanshipaidui[0][1][2].leixing = 103;
yuanshipaidui[0][1][3].leixing = 103;
yuanshipaidui[0][1][4].leixing = 308; yuanshipaidui[0][1][4].changdu = 5;
yuanshipaidui[0][1][5].leixing = 103;
yuanshipaidui[0][1][6].leixing = 103;
yuanshipaidui[0][1][7].leixing = 103;
yuanshipaidui[0][1][8].leixing = 103;
yuanshipaidui[0][1][9].leixing = 101;
yuanshipaidui[0][1][10].leixing = 101;
yuanshipaidui[0][1][11].leixing = 103;
yuanshipaidui[0][1][12].leixing = 102;
yuanshipaidui[0][2][0].leixing = 204;
yuanshipaidui[0][2][1].leixing = 101;
yuanshipaidui[0][2][2].leixing = 101;
yuanshipaidui[0][2][3].leixing = 101;
yuanshipaidui[0][2][4].leixing = 101;
yuanshipaidui[0][2][5].leixing = 101;
yuanshipaidui[0][2][6].leixing = 101;
yuanshipaidui[0][2][7].leixing = 101;
yuanshipaidui[0][2][8].leixing = 101;
yuanshipaidui[0][2][9].leixing = 101;
yuanshipaidui[0][2][10].leixing = 101;
yuanshipaidui[0][2][11].leixing = 205;
yuanshipaidui[0][2][12].leixing = 205;
yuanshipaidui[0][3][0].leixing = 204;
yuanshipaidui[0][3][1].leixing = 102;
yuanshipaidui[0][3][2].leixing = 102;
yuanshipaidui[0][3][3].leixing = 102;
yuanshipaidui[0][3][4].leixing = 102;
yuanshipaidui[0][3][5].leixing = 101;
yuanshipaidui[0][3][6].leixing = 101;
yuanshipaidui[0][3][7].leixing = 101;
yuanshipaidui[0][3][8].leixing = 101;
yuanshipaidui[0][3][9].leixing = 101;
yuanshipaidui[0][3][10].leixing = 102;
yuanshipaidui[0][3][11].leixing = 103;
yuanshipaidui[0][3][12].leixing = 101;
yuanshipaidui[1][0][0].leixing = 252;
yuanshipaidui[1][0][1].leixing = 302; yuanshipaidui[1][0][1].changdu = 2;
yuanshipaidui[1][0][2].leixing = 202;
yuanshipaidui[1][0][3].leixing = 202;
yuanshipaidui[1][0][4].leixing = 383;
yuanshipaidui[1][0][5].leixing = 303; yuanshipaidui[1][0][5].changdu = 2;
yuanshipaidui[1][0][6].leixing = 208;
yuanshipaidui[1][0][7].leixing = 101;
yuanshipaidui[1][0][8].leixing = 101;
yuanshipaidui[1][0][9].leixing = 101;
yuanshipaidui[1][0][10].leixing = 210;
yuanshipaidui[1][0][11].leixing = 305; yuanshipaidui[1][0][11].changdu = 3;
yuanshipaidui[1][0][12].leixing = 362;
yuanshipaidui[1][1][0].leixing = 206;
yuanshipaidui[1][1][1].leixing = 102;
yuanshipaidui[1][1][2].leixing = 207;
yuanshipaidui[1][1][3].leixing = 207;
yuanshipaidui[1][1][4].leixing = 361;
yuanshipaidui[1][1][5].leixing = 251;
yuanshipaidui[1][1][6].leixing = 203;
yuanshipaidui[1][1][7].leixing = 203;
yuanshipaidui[1][1][8].leixing = 203;
yuanshipaidui[1][1][9].leixing = 101;
yuanshipaidui[1][1][10].leixing = 203;
yuanshipaidui[1][1][11].leixing = 201;
yuanshipaidui[1][1][12].leixing = 381;
yuanshipaidui[1][2][0].leixing = 301; yuanshipaidui[1][2][0].changdu = 1;
yuanshipaidui[1][2][1].leixing = 331;
yuanshipaidui[1][2][2].leixing = 201;
yuanshipaidui[1][2][3].leixing = 201;
yuanshipaidui[1][2][4].leixing = 382;
yuanshipaidui[1][2][5].leixing = 251;
yuanshipaidui[1][2][6].leixing = 208;
yuanshipaidui[1][2][7].leixing = 101;
yuanshipaidui[1][2][8].leixing = 101;
yuanshipaidui[1][2][9].leixing = 101;
yuanshipaidui[1][2][10].leixing = 101;
yuanshipaidui[1][2][11].leixing = 210;
yuanshipaidui[1][2][12].leixing = 210;
yuanshipaidui[1][3][0].leixing = 301; yuanshipaidui[1][3][0].changdu = 1;
yuanshipaidui[1][3][1].leixing = 102;
yuanshipaidui[1][3][2].leixing = 202;
yuanshipaidui[1][3][3].leixing = 202;
yuanshipaidui[1][3][4].leixing = 306; yuanshipaidui[1][3][4].changdu = 3;
yuanshipaidui[1][3][5].leixing = 102;
yuanshipaidui[1][3][6].leixing = 102;
yuanshipaidui[1][3][7].leixing = 102;
yuanshipaidui[1][3][8].leixing = 102;
yuanshipaidui[1][3][9].leixing = 102;
yuanshipaidui[1][3][10].leixing = 102;
yuanshipaidui[1][3][11].leixing = 307; yuanshipaidui[1][3][11].changdu = 4;
yuanshipaidui[1][3][12].leixing = 363;
int paiduishu = 104;
int qipaishu = 0;
printf("游戏开始!\n");
Qishixipai(yuanshipaidui, paidui);
Qishishoupai(&wanjia, paidui, &(paiduishu), qipaidui, &(qipaishu));
Qishishoupai(&com, paidui, &(paiduishu), qipaidui, &(qipaishu));
int i;
for (;;)
{
i = Huihe(paidui, qipaidui, &paiduishu, &qipaishu, yuanshipaidui, &wanjia, &com);
if (i == -1)break;
i = Huihe(paidui, qipaidui, &paiduishu, &qipaishu, yuanshipaidui, &com, &wanjia);
if (i == -1)break;
}
}
2、杀手游戏:
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <windows.h>
int main()
{
srand(time(NULL));
int b, p, x, c, d, e = 0, f = 0, g, h = 0, i = 1, j, l, m, n = 5, o = 0;
printf("选择你的杀手等级(1-5)\n");
scanf("%d", &b);
printf("\n");
int a[6] = {0, 1, 2, 3, 4, 5}, k[10] = {0};
AA: while (n != 1)
{
if (i == 1)
{
Sleep (1000);
printf("存活者:%d %d %d %d %d\n\n", a[1], a[2], a[3], a[4], a[5]);
}
if (i == 6) i = 1;
if (a[i] == 0)
{
i++;
continue;
}
Sleep(1000);
printf("轮到%d号\n", i);
if (i == b)
{
Sleep(1000);
printf("选择你的目标:%d %d %d %d %d\n", a[1], a[2], a[3], a[4], a[5]);
scanf("%d", &p);
}
else
do
p = rand() % 5 + 1;
while (p != i);
while (a[p] == 0 || p == i) p = rand() % 5 + 1;
Sleep(1000);
printf("%d号选择了%d号\n", i, p);
Sleep(1000);
printf("%d号掷出了%d\n", i, c = rand() % 6 + 1);
o=0;
a[3]==0;
if (i >= c)
{
a[p] = 0;
Sleep(1000);
printf("%d号杀死了%d号\n\n", i, p);
n--;
}
else {Sleep(1000); printf("%d号没有杀死目标\n\n", i);}
if (i == 5 && a[p] == 0)
{
if (rand() % 3 == 1 || rand() % 3 == 2)
{
if (p == 1 && f <= 2)
{
Sleep(1000); printf("5号无视1号复活权\n");
Sleep(800); printf("直接将其杀死\n\n");
f = 3;
}
if (p == 2 && h == 0)
{
Sleep(1000); printf("5号无视2号复活权\n");
Sleep(800); printf("直接将其杀死\n\n");
h = 1;
}
if (p == 3 && o == 0)
{
Sleep(1000); printf("5号无视3号复活权\n");
Sleep(800); printf("直接将其杀死\n\n");
o = 1;
}
}
}
if (a[1] == 0)
{
if (f <= 2)
{
Sleep(1000);
printf("1号使用调换权\n");
f=1; n++; a[1] = 1;
if (f == 1)
{
do g = rand() % 5 + 1;
while (a[g] == 0 || g == 1);
Sleep(1000); printf("随机杀死了%d号\n", g);
Sleep(1000); printf("%d号死了\n\n", g);
a[g] = 0; n--;
}
}
else a[1] = 0;
}
if (a[2] == 0 && h == 0)
{
Sleep(1000);
printf("2号使用复活权\n");
n++;
a[2] = 2;
do m = rand() % 5 + 1;
while (a[m] == 0 || m == 2);
Sleep(1000); printf("并随机诅咒了%d号\n", m);
if (rand() % 2 == 1)
{
a[m] = 0;
Sleep(1000); printf("%d号死了\n\n", m);
n--;
}
else
{
Sleep(1000); printf("但他没死\n\n");
}
h = 1;
}
if (a[3] == 0 && o == 0)
{
Sleep(1000); printf("3号使用复活权\n\n"); a[3] = 3; o++; n++;
}
a[p]=0;
if (i == 4 && a[p] == 0)
{
if (n == 1) break;
else
{
Sleep(1000); printf("4号使用再次攻击权\n");
goto AA;
}
}
if (a[b] == 0 && e == 0)
{
if (n == 1) break;
printf("你死了,是否继续?是按0,否按1\n");
scanf("%d", &x);
if (x == 1) break;
else e = 1;
}
i++;
}
for (j = 1; j <= 5; j++) if (a[j] != 0) d = j;
if (x != 1)
{
Sleep(800);
printf("%d号赢了", d);
}
else
printf("游戏结束");
return 0;
}
3、小c的停电救援:
//0,0 1535,863
//12,62 92,218
#include<algorithm>
#include<fstream>
#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<iostream>
#include<windows.h>
#include<conio.h>
#include <time.h>
#include <stdlib.h>
#include<bits/stdc++.h>
#include<cstdio>
#include<algorithm>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
#include "conio.h"
#include <iomanip> //setw()函数所在库
#include <iostream>
#include <Windows.h>
HWND hMainWnd; //主窗口句柄
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,要背下来
using namespace std;
int HP=100;
int fx=2;
int cd;
int go;
int dHP=100;
int zd=20;
int x,y;
int dx,dy;
CONSOLE_CURSOR_INFO info = { 1, 0 }; //创建光标的属性结构体
HANDLE hand = GetStdHandle( STD_OUTPUT_HANDLE ); //创建光标的句柄
COORD coord = { 0, 0 }; //创建xy坐标结构体,用于设置光标位置
POINT pt = { 0, 0 }; //创建鼠标点坐标变量
int first() {
char c;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"----------"<<endl;
cout<<"| 黑客小C |"<<endl;
cout<<"----------"<<endl;
Sleep(2000);
system("cls");
cout<<"----------"<<endl;
cout<<"|停电救援|"<<endl;
cout<<"----------"<<endl;
while(!kbhit()) {
}
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"加载中..."<<endl;
cout<<"tips:玩家向鼠标(手指按下)移动,鼠标()手指在屏幕上方任务向上走,下方向下走,左方向左走,右方向右走(请开全屏,提升体验效果),按下鼠标(手指)开枪,请注意电脑(手机、平板)配置、状态,本游戏非常吃配置,可能会卡顿。";
Sleep(5000);
system("cls");
}
int AI_1() {
go++;
if(go%3!=0){
return 0;
}
if(dHP<=0) {
return 0;
}
if(x>dx&&dx<9&&dy!=y) {
dx++;
}
if(y>dy&&dy<9&&dx!=x) {
dy++;
}
if(x<dx&&dx>1&&dy!=y) {
dx--;
}
if(y<dy&&dy>1&&dx!=x) {
dy--;
}
if(y==dy||x==dx) {
HP-=5;
}
}
int AI_2() {
go++;
if(go%3!=0){
return 0;
}
if(dHP<=0) {
return 0;
}
if(x>dx&&dx<9) {
dx++;
}
if(y>dy&&dy<9) {
dy++;
}
if(x<dx&&dx>1) {
dx--;
}
if(y<dy&&dy>1) {
dy--;
}
if(x==dx&&y==dy) {
HP-=25;
}
}
int map_out(int x) {
if(x==1) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"*";
}
if(x==2) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"*";
}
}
int out_1() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(1);
} else if(j==0||j==10) {
map_out(1);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_2() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE);
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_3() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_4() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_5() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"O";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_6() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_7() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_8() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE);
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_9() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(1);
} else if(j==0||j==10) {
map_out(1);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE);
cout<<"O";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_10() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"A";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int out_11() {
system("cls");
cout<<"HP:"<<HP<<"子弹:"<<zd<<endl;
for(int i=0; i<11; i++) {
for(int j=0; j<11; j++) {
if(i==0||i==10) {
map_out(2);
} else if(j==0||j==10) {
map_out(2);
} else if(i==x&&j==y) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);
cout<<"A";
} else if(i==dx&&j==dy) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY );
cout<<"N";
} else {
cout<<" ";
}
}
cout<<endl;
}
}
int play() {
char c;
int a;
SetConsoleCursorPosition( hand, coord ); //传入光标句柄和坐标设置光标位置
GetCursorPos ( &pt );
if(zd<=0){
zd=20;
return 0;
}
if(pt.x<=20&&y>1) {
y--;
fx=1;
}
if(pt.x>=1515&&y<9) {
y++;
fx=2;
}
if(pt.y<=20&&x>1) {
x--;
fx=3;
}
if(pt.y>=843&&x<9) {
x++;
fx=4;
}
if (KEY_DOWN(MOUSE_EVENT)||KEY_DOWN(MOUSE_MOVED)) {
if(fx==1&&dy<y){
dHP-=20;
}
if(fx==2&&dy>y){
dHP-=20;
}
if(fx==3&&dx<x){
dHP-=20;
}
if(fx==4&&dx>x){
dHP-=20;
}
zd--;
}
}
int vs_1() {
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(true) {
out_1();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_2() {
HP=100;
x=1;
y=1;
zd=20;
dHP=10;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=150;
dx=9;
dy=9;
while(true) {
out_2();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(100);
}
}
}
int vs_3() {
HP=100;
x=1;
y=1;
zd=20;
dHP=300;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(true) {
out_3();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(100);
}
}
}
int vs_4() {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(true) {
out_4();
play();
AI_1();
if(x==dx&&y==dy){
HP=0;
}
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_5() {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_5();
play();
AI_2();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_6() {
HP=100;
x=1;
y=1;
zd=20;
dHP=120;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_6();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_7() {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_7();
play();
AI_2();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_8() {
HP=100;
x=1;
y=1;
zd=20;
dHP=150;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_7();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_9() {
HP=100;
x=1;
y=1;
zd=20;
dHP=150;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_8();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_10() {
HP=100;
x=1;
y=1;
zd=20;
dHP=90;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_7();
play();
AI_2();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_11() {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(true) {
out_1();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_12() {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_1();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_13() {
HP=100;
x=1;
y=1;
zd=20;
dHP=200;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=200;
dx=9;
dy=9;
while(true) {
out_9();
play();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_14() {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_1();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_15() {
HP=100;
x=1;
y=1;
zd=20;
dHP=120;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_10();
play();
AI_2();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_16() {
HP=100;
x=1;
y=1;
zd=20;
dHP=120;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_10();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_17() {
HP=100;
x=1;
y=1;
zd=20;
dHP=90;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_10();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_18() {
HP=100;
x=1;
y=1;
zd=20;
dHP=130;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_10();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_19() {
HP=100;
x=1;
y=1;
zd=20;
dHP=90;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_11();
play();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_20() {
HP=100;
x=1;
y=1;
zd=20;
dHP=100;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_7();
play();
AI_2();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_21() {
HP=100;
x=1;
y=1;
zd=20;
dHP=180;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=50;
dx=9;
dy=9;
while(true) {
out_8();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int vs_22() {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(dHP>0) {
HP=100;
x=1;
y=1;
zd=20;
dHP=160;
dx=9;
dy=9;
while(true) {
out_1();
play();
AI_1();
if(HP<=0) {
break;
}
if(dHP<=0) {
break;
}
Sleep(200);
}
}
}
int story1() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:杨叔正在搞电疗改造人,赶紧给我进山搞他,小心点,山里有守卫!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"战友1:我去警卫室,你去山里,我打完警卫后,就会直接来,我们打败了杨叔后,你撤退,我用炸弹炸山。";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"初入深山";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story2() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:小心,里面有会放电的改造人,他会攻击你的!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"进入基地";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story3() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"战友1:我...我...不行啦,爆破任务只能靠打爆杨叔随身带的C4了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"客户:有个红衣家长,阻止他把小孩送给杨叔治网瘾(改造)!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"深入基地";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story4() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:看到那个男人了吗,他是杨叔,干了他,你队友死了,赶紧打死杨叔,不要靠近他,他会点C4的!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"基地对决";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story5() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:干的漂亮,再也没有小孩被改造了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"客户:任务应该完成了....";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story6() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:手机推送说大山基地的杨叔是克隆体,快打败研究员去方舱医院!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"战友2:我去先攻杨叔的非法武装基地,杀多点守卫。";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"新冠世界";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story7() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:击败研究员!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"中断改造";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story8() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:拿到情报了,杨叔逃跑了,那个是病毒改造人,打败他逃出去!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"逃离方舱";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story9() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:立刻去杨永信的诊所,阻止杨永信的放电改造人计划,战友2会跟你去!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"战友2:啊啊啊...";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"守卫:立刻投降!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"潜入诊所";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story10() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"放电改造人:识别到敌人,实施攻击。";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"诊所火拼";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story11() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:这里有杨叔最后一个克隆人,击杀他!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"克隆破灭";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story12() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:立即返回深山,歼灭杨叔!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"重返深山";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story13() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"守卫:举起手来,抱头蹲下!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"再次进攻";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story14() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"一个小孩:救救我(用枪打爆改造机)!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"救下小孩";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story15() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:看到杨叔了吗,歼灭他!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"生化对决";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story16() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:好家伙,QQ看点上的营销号说杨叔只是保护伞的一小部分,你要负责捣毁保护伞!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"丧尸:啊!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"保护伞战争";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story17() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"守卫:你完了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"歼灭守卫";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story18() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"保护伞公司老板:今天你死定了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"摧毁保护伞";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story19() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:改造人的源头是狗日子国731部队,赶紧消灭它!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"侵入部队";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story20() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"大佐:八嘎呀路!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"斩首行动";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story21() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:还有一个电箱,打爆它!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"销毁营地";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story22() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:糟糕,城市突然被异形攻破了,战友3在城市里清理异形,你赶紧返回城市!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"紧急支援";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story23() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"战友3:我不行了...保护好城市...";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"杨叔:之前你打败的都是假身,我现在告诉你,你死定了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"消灭异形";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story24() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:赶快回深山!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"返回深山";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story25() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:赶快消灭杨叔!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"击杀杨叔";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int story26() {
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);
cout<<"客户:干的漂亮,再也没有孩子被改造了!";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
cout<<"任务完成";
Sleep(1000);
while(!KEY_DOWN(MOUSE_EVENT)&&!KEY_DOWN(MOUSE_MOVED)) {
}
system("cls");
}
int main() {
SetConsoleCursorInfo( hand, &info );
first();
//第一章节:捣毁狼窝
story1();
vs_1();
story2();
vs_2();
story3();
vs_3();
story4();
vs_4();
story5();
//第二章:方舱战火
story6();
vs_5();
story7();
vs_6();
story8();
vs_7();
//第三章:诊所之战
story9();
vs_8();
story10();
vs_9();
story11();
vs_10();
//第四章:重返深山
story12();
vs_11();
story13();
vs_12();
story14();
vs_13();
//第五章:斩首行动
story15();
vs_14();
//第六章:摧毁保护伞
story16();
vs_15();
story17();
vs_16();
story18();
vs_17();
//第七章:血色731
story19();
vs_17();
story20();
vs_18();
story21();
vs_19() ;
//第八章:异变狂潮
story22();
vs_20();
story23();
vs_21();
//第九章:返回深山
story24();
vs_12();
//第十章:击杀杨叔
story25();
vs_22();
story26();
//完结
}