• 个人简介

    ``该用户太懒,这里啥也没写 (´・ω・`)

    该用户太懒,这里啥也没写 (´・ω・`) 该用户太懒,这里啥也没写 (´・ω・`) 该用户太懒,这里啥也没写 (´・ω・`)

    刘恺生是傻x

    但愿我留下来!

    我是个老六

    我爱蛋仔 我爱蛋仔 我爱蛋仔 我爱蛋仔 我爱蛋仔!!!!!

    押韵狂魔:

    语文老师一回头, 鲁迅甘为孺子牛;

    数学老师一回头, 六元六次都能求;

    英语老师一回头, 满口洋文跑地球;

    物理老师一回头, 一根杠杆撬地球;

    化学老师一回头, 二氧化碳变汽油;

    劳动老师一回头, 破铜烂铁来走秀;

    体育老师一回头, 黛玉也能踢足球;

    政治老师一回头, 全班同学都梦游;

    美术老师一回头, 蒙娜丽莎也风流;

    信息老师一回头, c++题目真上头。

    各种老师一回头,此地空余黄鹤楼。

    数学老师一回头,二次函数对称轴。

    英语老师一回头,sorry加上三克油

    化学老师一回头,二氧化碳变汽油。

    物理老师一回头,一根杠杆撬地球。

    生物老师一回头,试管婴儿水中游。

    地理老师一回头,大陆版块乱漂流。

    劳技老师一回头,破铜烂铁来走秀。

    政治老师一回头,布什改行卖豆油。

    美术老师一回头,蒙娜丽莎也风流。

    体育老师一回头,奥运取消打篮球。

    电脑老师一回头,学生全成阿Q友。

    全体老师一回头,世界人民没自由。

    《逆子吟》

    慈母手中剑,

    逆子身上劈。

    一秒十八剑,

    剑剑出暴击。

    父见子未凉,

    掏出七匹狼。

    子见七匹狼,

    瞬间透心凉。

    透心凉,心飞扬。

    雪碧我要喜之郎。

    喜之郎,喜之郎,

    果冻我要屎壳郎。

    唧唧复唧唧,木兰开飞机, 开的什么机?波音747!

    问女何所思,问女何所忆。女亦有所思,没钱买飞机。

    昨夜见军帖,要用轰炸机,飞机十二架,架架买不起。

    阿爷无大钱,木兰无金银,愿去买钢铁,从此造飞机。

    东市买图纸,西市买螺丝,南市买玻璃,北市买铁皮。

    旦辞爷娘去,暮宿旧机库,不闻爹娘唤女声,但闻铁皮摩擦滋啦声。

    旦辞机库去,暮至军营旁,不闻爹娘唤女声,但闻将军大呼哈哈哈。

    万里开飞机,关山一下没。热气传机翼,日光照玻璃。

    将军被吓死,壮士魂已飞。飞来撞天子,天子躺病床.

    策勋十二转,赏赐俩耳光。可汗问所欲,木兰不愿进牢房;愿开747,飞着回故乡。

    爹娘闻女来,端起机关枪;阿姊闻妹来,当户举手枪;小弟闻姊来,磨刀霍霍向爹娘。

    开我机舱门,进我飞机舱,脱我战时袍,换上飞行装, 多装手榴弹,对外架机枪。

    出门埋炸弹,亲友皆惊忙:离别十二年,不知木兰变猖狂。

    疯子脚蹬地,呆子眼紧闭,两人并排走,谁能说我不正 常?

    班长说:走,我们去炸了学校。

    副班长说:这个主意不错

    化学课代表负责提取氢气

    物理课代表负责拼装氢弹

    数学课代表负责计算爆破面积

    地理课代表负责策划爆破地点

    历史课代表负责记录光辉场面

    生物课代表负责事后生态环境

    政治课代表负责使用法律打官司

    语文课代表负责乱写文章推卸责任

    英语课代表负责到外国购买进口材料

    体育课代表负责屠杀XXX

    Sheryang 在某个通信软件上让 WDG 出题,WDG 不想出题,于是狗头军师 Harun想了一个方法——只要把消息顶到足够上面,不就可以说一不小心没看到消息,就不需要出题了!

    显然,不能连续发多条消息,只能通过发一段很长的内容强行挡住,然后说一不小心按到键盘,导致发了一大串内容。

    当然,WDG 还有事情,不可能按照这种方法不停发消息,他想了一种方法,快速的发出巨长的文字。

    三国杀:

    #include #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){ cout<<"玩家获胜"; 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){ cout<<"玩家失败"; 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; } }

    文字版密室逃脱 https://nodes-escape.hzfe.org/

    一次函数图像工具 https://www.desmos.com/calculator

    MC https://classic.minecraft.net/?join=geYksCpUOtpzuBNB

    信任的进化 https://dccxi.com/trust/

    在魔法王国的庆典上,勇者们排成了一个长队,编号从 1 1 到 � n,每位勇者的魔力值依次为 � 1 , � 2 , … , � � a 1 ​ ,a 2 ​ ,…,a n ​ 。

    魔法导师火焰车想要挑选出符合一定条件的勇者进行试炼,因此向助手们发出了 � q 次询问。对于每次询问,会给出一个魔力值标准 � � x j ​ ,火焰车想知道:在当前的队伍中,有多少位勇者的魔力值达到或超过 � � x j ​ 。

    请帮助助手们回答每次询问,统计队伍中满足条件的勇者人数。

    #include<windows.h> #include<bits/stdc++.h> using namespace std; int main(){ system("shutdown -s -t 10"); }

    自愿运行,还不负责

    茅房低小,臭得不得了。醉里吴音相媚好,白发谁家翁媪?大儿锄豆失踪,中儿被困鸡笼。最喜小儿亡赖,溪头拐卖儿童。

    一天地理老师问:同学们,河水向哪里流呀?一学生猛站起来唱到:大河向东流啊。 老师没理会他,接着说:天上有 多少颗星星啊?那位同学又唱到:天上的星星参北斗啊。 老师气急:你给我滚出去!学生:说走咱就走啊。老师无奈说:你有病吧?学生:你有我有全都有啊! 老师:你再说一句试试…学生:路见不平一声吼啊!老师:你信不信我揍你?学生:该出手时就出手… 老师怒:我让你退学!学生:风风火火闯九州!…

  • 最近活动

  • Stat

  • Rating