-
个人简介
3.13 育才考试(可能有点没截到)
3.19 (暂且不详)(可能有点没截到)
船员:我们一定要把WA全都揪出来
警长:消灭WA,一次只需一颗子弹
工程师:不好意思让一下,我有一个WA要修
侦探:这是最基本的AC,我的朋友
医生:我觉得WA还可以抢救一下
预言家:AC将指明我们的方向
守卫:别担心AC,我就是你的盾牌
保安:这里有我AC看着,别想闹事
换票师:我觉得AC结果,嗯,应该这样
情报员:我一定要把这份AC传递给大家,不惜一切代价
黑客:AC不会出错,会出错的只有WA
管道工:WA有问题,炸一炸就好了
守望者:没人能逃过我的AC
市长:我不会辜负大家的AC的
老兵:保持AC,是战场的第一生存守则
卧底:嘘,对不起啊,我是AC
狱卒:咳,呵呵,没有WA能逃脱我的掌心
诱饵:哈哈,WA上当了吧
时间之主:时间,由我AC来掌控
内鬼:我保证,没有WA能抵达目的地
间谍:记住,你的WA会欺骗你
清洁工:唉,这可比扫整条WA轻松多了
守夜人:没有我去不了的AC
咒术师:尽管逃,你WA是逃不掉的
变色龙:只有聪明人才能看到我AC
双面人:哈哈哈哈,AC,就是一场豪赌
搬运工:垃圾WA,就该去它该去的地方
闪光弹:AC配备检查完毕,准备行动
女巫:嗯,宝贝,帮我做AC
赏金猎人:我的眼里,只有AC和WA
小丑:哈哈哈哈哈哈哈哈,现在,谁才是真正的WA
纵火犯:芜湖,我从小就喜欢AC,我现在就想看
幸存者:AC下去,只要,AC下去
恶魔:我会将AC,分享给你
幻影:来吧,欣赏这场盛大的AC吧
饕餮:血肉苦弱,我会帮WA解脱的
大胃王:WA?嗯~闻起来臭,吃起来香
死神:WA,我来取你的性命了
《唐诗三百首》
1.日照香炉生紫烟,李白来到太平间。头朝地脚朝天,带着微笑上西天。
2.床前明月光,小偷爬进窗。打开保险箱,钞票一张张。
3.春眠不觉晓,处处蚊子咬。夜来香港脚,臭的不得了。
4.朝辞白帝彩云间,某人坐在小河边。小李飞刀一瞬间,某人变成小太监。
5.锄禾日当午,地雷埋下土。你娃挖地雷,变成二百五。
6.日照香炉生紫烟,李白走进烤鸭店,口水流下三千尺,一摸兜里没有钱。
7.墙角数枝梅,不知你爱谁。如果你不说,就是你同桌。
8.春眠不觉晓,处处蚊子咬。夜来大狗熊,谁也跑不了。
9.李白乘舟不给钱,渔夫一脚踢下船。桃花潭水深千尺,不知李白死没死。
10.床前明月光,李白爬上窗。遇见X光,头发变光光。
11.少小离家胖了回,乡音无改肉成堆。儿童相见不相识,笑问胖子你是谁。
12.远上香山石径斜,白云深处我和她。原想王子见公主,实是恐龙见青蛙。
13.大千网络绿映红,聊天见面心见空。见面四百八十次,多少恐龙在其中。
14.北理朝雨浥清晨,满腹失望伤透心。劝君在莫找网友,明日出家奔少林。
15.春眠不洗脚,处处蚊子咬。夜来鬼敲门,吓死乡巴佬。
16.垂死病中惊坐起,小丑竟是我自己。
17.巴山楚水凄凉地,Responsibility。
18.劝君更尽一杯酒,你说我丑那我走。
19.四面边声连角起,牛马竟是我自己。
20.两岸野怪停不住,欢迎来到对抗路。
21.先帝创业未办,蹦迪花光预算。
22.宝剑锋从磨砺出,得来全不费工夫。
23.乾坤未定,你我皆是牛马。
24.老骥伏枥,志在千里,横扫饥饿,做回自己。
25.如果巅峰留不住,那就进厂包吃包住。如果志同道合,那就流水线回合。有福就同享,有难就进厂,厂里包吃包住,大风大浪挺得住
26.李白上山去拉屎,忽然想起忘带纸。 勇敢伸出大拇指,扣扣屁股全是屎
27.放屁的人得意洋洋,闻屁的人愁眉苦脸
28.有一种思念叫望穿秋水,有一种寒冷叫忘穿秋裤
语文老师一回头,此地空余黄鹤楼。
数学老师一回头,二次函数对称轴。
英语老师一回头,sorry加上thank you。
化学老师一回头,二氧化碳变汽油。
物理老师一回头,一跟杠杆撬地球。
生物老师一回头,试管婴儿水中游。
地理老师一回头,大陆版块乱漂流。
历史老师一回头,秦始皇来推铅球。
劳技老师一回头,破铜烂铁来走秀。
政治老师一回头,布什改行卖豆油。
美术老师一回头,蒙娜丽莎也风流。
体育老师一回头,奥运取消打篮球。
电脑老师一回头,学生全成阿Q友。
全体老师一回头,世界人民没自由。
慈母手中剑,游子身上劈。 一秒十八剑,刀刀出暴击。 母见子未凉,挑出七匹狼。 子见七匹狼,瞬间透心凉。 透心凉,心飞扬,果冻我爱喜之郎。
考试不翻书,简直是头猪。
作弊不要慌,逮到就要装。
生是中国人,死是中国魂。
要我学洋文,死都不可能。
干饭人,干饭魂,干饭都是人上人。
干饭不积极,脑子有问题。
上课不放屁,肠道有问题。
英语不及格,说明我爱国。
语文不及格,恋爱没资格。
物理不及格,电死不负责。
化学不及格,硫酸也喝得。
政治不及格,老师没道德。
信息不及格,网吧要打折。
数学不及格,突出我性格。
历史不及格,社会要改革。
全科不及格,老妈动真格。
三百六十行,行行出状元。
人生自古谁无死 ,早死晚死都得死 那还不如现在死
各科老师被困在电梯里的反应:
语文老师正在写《困在电梯中的思考》。
数学老师开始计算电梯的长宽高。
英语老师开始说起电梯英语单词。
物理老师在计算说几小时空气会呼吸完。
化学老师在检查这个电梯的材质。
生物老师在考虑他们需要的物质,比如氧气。
地理老师在计算纬度叫人来救她们。
历史老师开始感慨并回忆之前发生过的类似的事情。
政治老师准备告物业。
体育老师默默无闻走向电梯门口,一脚把门踹开说了句我们走吧! 事实证明体育才是主科! 骗分过样例,暴力出奇迹。
数学先打表,DP看运气。
穷举TLE,递推UKE。
模拟MLE,贪心还CE。
想要骗到分,就要有方法。
图论背模板,数论背公式。
动规背方程,高精背代码。
如果都没背,干脆输样例。
模拟只会猜题意,贪心只能过样例;
数学上来先打表,DP一般看规律.
组合数学靠运气,计算几何瞎暴力;
图论强行套模板,数论只会GCD.
递归递推伤不起,搜索茫然TLE;
分治做得像枚举,暴力枚举数第一.
数据结构干瞪眼,怒刷水题找信心;
涨姿势也不容易,考试一来全懵逼! 新《满江红》 怒发冲冠,凭栏处、潇潇雨歇。 抬望眼,满天UKE,怒火激烈。 三十WA尘与土,八千RE云和月。 莫抄袭,没了AC记录,空悲切! CE耻,犹未雪。蒟蒻恨,何时灭! 驾电脑,踏破题目列表。 闭眼不会Helloworld,笑谈不懂头文件。 待从头、收拾A+B,还不会。
《将进酒》程序版 君不见,OJ之题天上来,复杂到海不舍回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生重在写算法,莫使电脑空对题。 天生OJ必有用,千方百计还CE。 AC一点且为乐,会须一刷三百WA。 吾团友,牛大佬, 将刷题,手莫停!!! 一天我去买考试用的2B铅笔,到了文具店给店员说成了买2B用的考试铅笔。
勒内·笛卡尔(René Descartes,1596年3月31日–1650年2月11日 1596年3月31日生于**[法国]安德尔–[卢瓦尔省]的图赖讷(现笛卡尔,因笛卡尔得名),1650年2月11日逝于[瑞典][斯德哥尔摩],[法国]哲学家、数学家、物理学家。他对[现代数学]的发展作出了重要的贡献,由于他的几何坐标系的公式化而被认为是[解析几何]之父。
他还是[西方现代哲学]思想的奠基人之一,是近代[唯心论]的开拓者,提出了“普遍怀疑”的主张。他的[哲学思想]深深影响了之后的几代欧洲人,并为欧洲的“[理性主义]”哲学奠定了基础。
笛卡尔最为世人熟知的是其作为数学家的成就。他于1637年发明了[现代数学]的基础工具之一——[坐标系],将[几何]和代数相结合,创立了解析[几何学]。同时,他也推导出了[笛卡尔定理]等几何学公式。值得一提的是,传说著名的[心形线]方程也是由笛卡尔提出的。
在哲学上,笛卡尔是一个二元论者以及理性主义者。他是欧陆“理性主义”的先驱。关于笛卡尔的哲学思想,最著名的就是他那句“[我思故我在]”。他的《[第一哲学沉思集]》(又名《[形而上学的沉思]》)仍然是许多大学哲学系的[必读书目]之一。
在物理学方面,笛卡尔将其坐标几何学应用到光学研究上,在《屈光学》中第一次对[折射定律]作出了理论上的推证。在他的《哲学原理》第二章中以第一和[第二自然]定律的形式首次比较完整地表述了[惯性定律],并首次明确地提出了[动量守恒定律]。这些都为后来牛顿等人的研究奠定了一定的基础。
"AC=Answer Coarse=粗劣的答案"
"WA=Wonderful Answer=好答案"
"TLE=Time Limit Enough=时间充裕"
"MLE=Memory Limit Enough=内存充裕"
"CE=Compile Easily=轻松通过编译"
"RE=Run Excellently=完美运行"
"UKE=Unbelievablly Keep Enough Score=难以置信地保持足够的分数"
"AU=All Unaccepted=全都不正确"
This person is lazy and didn't join any contests or homework^_^.
Waiting 评测:评测请求正在等待被评测机抓取 Fetched 评测:评测请求已被评测机抓取,正在准备开始评测 Compiling 评测:正在编译中 Judging 评测:编译成功,正在评测中 Accepted 通过:程序输出完全正确 Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行) Time Limit Exceeded 不通过:程序运行时间超过了题目限制 Memory Limit Exceeded 不通过:程序运行内存空间超过了题目限制 Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等) Compile Error 不通过:编译失败 System Error 错误:系统错误(如果您遇到此问题,请及时在讨论区进行反馈) Canceled 其他:评测被取消 Unknown Error 其他:未知错误 Ignored 其他:被忽略
TWJLBDQ(头文件列表大全)
#include<iostream> #include<fstream> #include<vector> #include<string> #include<cmath> #include<bits/stdc++.h> #include<algorithm> #include<ctime> #include<cstdlib> #include<cassert> #include<cstddef> #include<cstdio> #include<cstring> #include<ctime> #include<cctype> #include<iomanip> #include<cmath> #include<cstdlib> #include<stdexcept> #include<fstream> #include<stack> #include<sstream> #include<queue>
- 炼气筑基
- 金丹凝成
- 元婴出窍
- 化神渡劫
- 炼体成圣
- 合道悟真
- 大乘飞升
- 仙界证道
不好好上课 ฅ ( ̳• ◡ • ̳) ฅ
王八历险记 (电脑版) 不许抄袭!!!!!!!!!!!!!!!!!!
第一季----荒岛求生---------------------------------------------------------------------------
第一章----人类杀手???
这天王八坐在飞机上看着窗外的风景,突然飞机一阵摇晃王八就晕了过去。 王八在过了一个世纪后醒了过来。他发现自己正在一个小岛上,他又看了看周围,发现了躺在地上的电摇坤坤。王八连忙跑过去朝电摇坤坤只因上一戳,电摇坤坤顿时捂着坤坤尖叫着跳了起来,王八淡淡一笑说:“小样,跟我斗再过一百年吧!”电摇坤坤说:“什么东西,你能不能不要当‘人类杀手’”
第二章----偶遇黑衣人(上)
突然,远处传来一声巨响,王八看向声音传来的方向说:”不是哪个傻子玩儿核弹,脑子没问题吧。“说完后就走了过去,电摇坤坤捂着只因追了上去。几分钟后,一个黑影从一旁的草丛走出,竟然是黑衣人!
poki.com
<-游戏网址(1)第三章----偶遇黑衣人(下)
黑衣人嘴巴张了几下,也不知道说了什么,朝王八离开的方向赶去。再看王八他们,他们走着走着发现有些不对劲,只听一个人说道:”现在才发现,晚了!“王八一个后空翻躲过了攻击,而电摇坤坤却吓倒在地,黑衣人也没管太多,把电摇坤坤拖走了。
第四章----大战黑衣人(上)
王八看着电摇坤坤被拖走,也是非常的开心,因为他终于可以'解放'啦。
一寸光阴一寸金,三寸光阴一寸鑫
集训三年不吃苦,要吃苦三十年,集训三年吃苦,你会发现你要吃苦三十三年
规则,就是用来打破的
愿你的诡计,永不败露
贪吃蛇
#include <windows.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <cstring> #include <cstdio> #include <iostream> #define N 22 using namespace std; int gameover; int x1, y1; // 随机出米 int x,y; long start; //======================================= //类的实现与应用initialize //======================================= //下面定义贪吃蛇的坐标类 class snake_position { public: int x,y; //x表示行,y表示列 snake_position(){}; void initialize(int &);//坐标初始化 }; snake_position position[(N-2)*(N-2)+1]; //定义贪吃蛇坐标类数组,有(N-2)*(N-2)个坐标 void snake_position::initialize(int &j) { x = 1; y = j; } //下面定义贪吃蛇的棋盘图 class snake_map { private: char s[N][N];//定义贪吃蛇棋盘,包括墙壁。 int grade, length; int gamespeed; //前进时间间隔 char direction; // 初始情况下,向右运动 int head,tail; int score; bool gameauto; public: snake_map(int h=4,int t=1,int l=4,char d=77,int s=0):length(l),direction(d),head(h),tail(t),score(s){} void initialize(); //初始化函数 void show_game(); int updata_game(); void setpoint(); void getgrade(); void display(); }; //定义初始化函数,将贪吃蛇的棋盘图进行初始化 void snake_map::initialize() { int i,j; for(i=1;i<=3;i++) s[1][i] = '*'; s[1][4] = '#'; for(i=1;i<=N-2;i++) for(j=1;j<=N-2;j++) s[i][j]=' '; // 初始化贪吃蛇棋盘中间空白部分 for(i=0;i<=N-1;i++) s[0][i] = s[N-1][i] = '-'; //初始化贪吃蛇棋盘上下墙壁 for(i=1;i<=N-2;i++) s[i][0] = s[i][N-1] = '|'; //初始化贪吃蛇棋盘左右墙壁 } //============================================ //输出贪吃蛇棋盘信息 void snake_map::show_game() { system("cls"); // 清屏 int i,j; cout << endl; for(i=0;i<N;i++) { cout << '\t'; for(j=0;j<N;j++) cout<<s[i][j]<<' '; // 输出贪吃蛇棋盘 if(i==2) cout << "\t等级:" << grade; if(i==6) cout << "\t速度:" << gamespeed; if(i==10) cout << "\t得分:" << score << "分" ; if(i==14) cout << "\t暂停:按一下空格键" ; if(i==18) cout << "\t继续:按两下空格键" ; cout<<endl; } } //输入选择等级 void snake_map::getgrade() { cin>>grade; while( grade>7 || grade<1 ) { cout << "请输入数字1-7选择等级,输入其他数字无效" << endl; cin >> grade; } switch(grade) { case 1: gamespeed = 1000;gameauto = 0;break; case 2: gamespeed = 800;gameauto = 0;break; case 3: gamespeed = 600;gameauto = 0;break; case 4: gamespeed = 400;gameauto = 0;break; case 5: gamespeed = 200;gameauto = 0;break; case 6: gamespeed = 100;gameauto = 0;break; case 7: grade = 1;gamespeed = 1000;gameauto = 1;break; } } //输出等级,得分情况以及称号 void snake_map::display() { cout << "\n\t\t\t\t等级:" << grade; cout << "\n\n\n\t\t\t\t速度:" << gamespeed; cout << "\n\n\n\t\t\t\t得分:" << score << "分" ; } //随机产生米 void snake_map::setpoint() { srand(time(0)); do { x1 = rand() % (N-2) + 1; y1 = rand() % (N-2) + 1; }while(s[x1][y1]!=' '); s[x1][y1]='*'; } char key; int snake_map::updata_game() { gameover = 1; key = direction; start = clock(); while((gameover=(clock()-start<=gamespeed))&&!kbhit()); //如果有键按下或时间超过自动前进时间间隔则终止循环 if(gameover) { getch(); key = getch(); } if(key == ' ') { while(getch()!=' '){};//这里实现的是按空格键暂停,按空格键继续的功能,但不知为何原因,需要按两下空格才能继续。这是个bug。 } else direction = key; switch(direction) { case 72: x= position[head].x-1; y= position[head].y;break; // 向上 case 80: x= position[head].x+1; y= position[head].y;break; // 向下 case 75: x= position[head].x; y= position[head].y-1;break; // 向左 case 77: x= position[head].x; y= position[head].y+1; // 向右 } if(!(direction==72||direction==80||direction==75 ||direction==77)) // 按键非方向键 gameover = 0; else if(x==0 || x==N-1 ||y==0 || y==N-1) // 碰到墙壁 gameover = 0; else if(s[x][y]!=' '&&!(x==x1&&y==y1)) // 蛇头碰到蛇身 gameover = 0; else if(x==x1 && y==y1) { // 吃米,长度加1 length ++; if(length>=8 && gameauto) { length -= 8; grade ++; if(gamespeed>=200) gamespeed -= 200; // 改变贪吃蛇前进速度 else gamespeed = 100; } s[x][y]= '#'; //更新蛇头 s[position[head].x][position[head].y] = '*'; //吃米后将原先蛇头变为蛇身 head = (head+1) % ( (N-2)*(N-2) ); //取蛇头坐标 position[head].x = x; position[head].y = y; show_game(); gameover = 1; score += grade*20; //加分 setpoint(); //产生米 } else { // 不吃米 s[position[tail].x][position[tail].y]=' ';//将蛇尾置空 tail= (tail+1) % ( (N-2) * (N-2) );//更新蛇尾坐标 s[position[head].x][position[head].y]='*'; //将蛇头更为蛇身 head= (head+1) % ( (N-2) * (N-2) ); position[head].x = x; position[head].y = y; s[position[head].x][position[head].y]='#'; //更新蛇头 gameover = 1; } return gameover; } //==================================== //主函数部分 //==================================== int main() { char ctn = 'y'; int nodead; cout<<"\n\n\n\n\n\t\t\t 欢迎进入贪吃蛇游戏!"<<endl;//欢迎界面; cout<<"\n\n\n\t\t\t 按任意键马上开始。。。"<<endl;//准备开始;; getch(); while( ctn=='y' ) { system("cls"); // 清屏 snake_map snake; snake.initialize(); cout << "\n\n请输入数字选择游戏等级:" << endl; cout << "\n\n\n\t\t\t1.等级一:速度 1000 \n\n\t\t\t2.等级二:速度 800 \n\n\t\t\t3.等级三:速度 600 "; cout << "\n\n\t\t\t4.等级四:速度 400 \n\n\t\t\t5.等级五:速度 200 \n\n\t\t\t6.等级六:速度 100 \n\n\t\t\t7.自动升级模式" << endl; snake.getgrade();//获取等级 for(int i=1;i<=4;i++) { position[i].initialize(i);//初始化坐标 } snake.setpoint(); // 产生第一个米 do { snake.show_game(); nodead = snake.updata_game(); }while(nodead); system("cls"); //清屏 cout << "\n\n\n\t\t\t\tGameover!\n\n"<<endl; snake.display();//输出等级/得分情况 cout << "\n\n\n\t\t 是否选择继续游戏?输入 y 继续,n 退出" << endl; cin >> ctn; } return 0; }
坑爹大闯关
#include<bits/stdc++.h> using namespace std; int main(){ int n,q=1; cout<<"======坑爹大闯关======"<<endl; cout<<"场景:"<<q<<endl; cout<<"你看见了一袋钱,你想......"<<endl; cout<<"请选择:"<<endl; cout<<"1.捡走,跑"<<endl; cout<<"2.不管"<<endl; cout<<"3.紫砂(自杀)"<<endl; cin>>n; if(n==1){ cout<<endl<<endl; q++; cout<<"场景:"<<q<<endl; cout<<"后面有个警察,拿枪指着你..."<<endl; cout<<"你要?" <<endl; cout<<"1.把钱丢了" <<endl; cout<<"2.自首"<<endl; cout<<"3.砸死警察" <<endl; cin>>n; if(n==1){ q++; cout<<"场景:"<<q<<endl; cout<<"警察把你带进了警局,开始审问你..."<<endl; cout<<"“(警)你哪里来的钱啊?”"<<endl; cout<<"(回答)1.捡的"<<endl; cout<<"(回答)2.抢的"<<endl; cout<<"(回答)3.偷的"<<endl; cout<<"(回答)4.天上掉下来的"<<endl; cin>>n; if(n==1){ cout<<"(警)不交给警局...坐下(peng!)"<<endl; cout<<"你...坐下了"<<endl; return 0; } else if(n==2){ cout<<"(警)还敢抢东西...坐下(peng!)"<<endl; cout<<"你...坐下了"<<endl; } else if(n==3){ cout<<"(警)还敢抢东西...坐下(peng!)"<<endl; cout<<"你...坐下了"<<endl; } else if(n==4){ q++; cout<<"场景:"<<q<<endl; cout<<"你刚说完,天上掉下来一坨**,把警察砸死了"<<endl; cout<<"警察的大部队来了,你要?"<<endl; cout<<"1.跳楼"<<endl; cout<<"2.躲起来"<<endl; cin>>n; if(n==1){ q++; cout<<"场景:"<<q<<endl; cout<<"你跳到了消防垫上,活了下来"<<endl; cout<<"你走着走着就(散了)来到了小赛码的基地,"<<endl; cout<<"你回到了寝室,(平底)郭老师正在查寝"<<endl; cout<<"你的钱袋子还在身上,郭老师会报警,你要?"<<endl; cout<<"1.把钱甩到天上"<<endl; cout<<"2.把钱藏起来"<<endl; cout<<"3.不管"<<endl; cout<<"4.把钱送给郭老师"<<endl; cin>>n; if(n==1){ q++; cout<<"场景:"<<q<<endl; cout<<"郭老师突然眼瞎,没看见。"<<endl; cout<<""; } else if(n==2){ cout<<"郭老师突然眼冒金星,找到了你的钱袋并报了个警"<<endl<<endl<<endl; return 0; } else if(n==3){ cout<<"郭老师报了个警,你去屎了"<<endl<<endl<<endl; return 0; } else if(n==4){ cout<<"郭老师肥肠高兴,交给了警察,你被警察发现了,你死了"<<endl<<endl<<endl; } else{ cout<<"神经病!!!"; return 0; } } else if(n==2){ cout<<"你躲到了箱子后,被警察发现了(你死了)"<<endl<<endl<<endl; return 0; } else{ cout<<"神经病!!!"; return 0; } } else{ cout<<"神经病!!!"; return 0; } } else if(n==2){ cout<<"警察不信你,把你击毙(鸡哔你~~~)了,OK,你又死了"<<endl; return 0; } else if(n==3){ cout<<"你打不过警察,你死了"; return 0; } else{ cout<<"神经病!!!"; return 0; } } else if(n==2){ cout<<"前面个井盖,你走了进去......"<<endl; cout<<"你死了!!!"; return 0; } else if(n==3){ cout<<"OK,你死了!!!"; return 0; } else{ cout<<"神经病!!!"; return 0; } return 0; }
``
#include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #define Nor if(B[b].x<5) B[b].x=5; #define Out1 Bx1-Bvx1<=6||Bx1-Bvx1>=28||By1-Bvy1<=7||By1-Bvy1>=27 #define Out2 Bx2-Bvx2<=6||Bx2-Bvx2>=28||By2-Bvy2<=7||By2-Bvy2>=27 #define Chang1 {Bwhat1=0;Bvx1=Bvy1=0;memset(Bgo1,0,sizeof(Bgo1));} #define Chang2 {Bwhat2=0;Bvx2=Bvy2=0;memset(Bgo2,0,sizeof(Bgo2));} #define Chang3 {Bwhat3=0;Bvx3=Bvy3=0;memset(Bgo3,0,sizeof(Bgo3));} using namespace std; int ti(float a) {return ((int)(a*10+5))/10;} void Setpos(float x,float y){COORD pos;pos.X=ti(y*4)/2;pos.Y=ti(x);SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);} void Color(int a){if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE);if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE);if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);if(a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);if(a==14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);} int Blomax,Ren,Exp,Expmax,Lv,Lvl,Ice,Drug,ar1,ar2,Tar1,Tar2,bl,br,Win,T,Tb,Sy,Up,Upt,Down,u1,u2,Kill,Killb,L,Ll[4],Li,D,Gd[10],Biao,Fire,Fir,Water,Thun,Wind,Magne,I[20][2],ib,Dis,Disb,Dis1,Disb1,Boss,Bblo,Bblomax,Bwhat1,Bwhat2,Bwhat3,Bgo1[10],Bgo2[10],Bgo3[10],Bbr,Bbl,Bl[4]; float X,Y,Vx,Vy,Ding,Blo,Hui,Bx1,By1,Bx2,By2,Bx3,By3,Bvx1,Bvy1,Bvx2,Bvy2,Bvx3,Bvy3,Bway[1001][2]; struct bullet{float x,y,vx,vy;int what;int a,t,How;int life;bool kill;}B[100001]; void Map(int a,int b); void Pan(int a,float x,float y,int b){ float Nox[4],Noy[4];Nox[0]=X,Noy[0]=Y; if(Down==1&&X==22) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5;else if(Down==2) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10;else if(Down==1||X<18) Nox[1]=X-1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10;else Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; for(int i=0;i<3;i++){ if(a==-1){if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) {if(B[b].what==-10)Exp+=2;if(B[b].what==-11)Exp+=1;B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}} if(a==-2){if(abs(x-Nox[i])+abs(y-Noy[i])<2.5) {if(B[b].what==-2)Exp+=5,Biao+=5;if(B[b].what==-3)Fire=300,Ice=0,Fir=3;if(B[b].what==-4)Water=200;if(B[b].what==-5){Wind=70;Ding=28.25;Ice=0;if(Y<Ding-1)Vy=5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(B[b].what==-6){Thun=200;system("color 1F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");}if(B[b].what==-7)Magne=300;if(B[b].what==-8)Ice=0,Drug=0,Blo=fmin((float)Blomax,Blo+20);if(B[b].what==-9)Exp=fmin((float)Expmax,Exp+20);B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}} }if(Wind==0&&Thun==0&&(B[b].kill!=0||Killb>=15||Ren==1&&Killb>0)) return; for(int i=0;i<3;i++){ if((Wind>=1||Thun>=1)&&abs(x-Nox[i])+abs(y-Noy[i])<2.5) {if(B[b].what<98)Exp+=2;B[b].life=0;Map(3,b);break;} if(a==1) {if(abs(x-Nox[i])<0.5&&abs(y-Noy[i])<1) {if(B[b].what>=99)Blo-=10;if(B[b].what==14)Blo-=15,Ice=100,B[b].life=0;else if(B[b].what==15)Blo-=20,Ice=0,B[b].life=0;else if(B[b].what==17)Blo-=5,Drug=100,B[b].life=0;else if(B[b].what>=13&&B[b].what<=17)Blo-=10,B[b].life=0;else Blo-=15;B[b].kill=1,Killb=20;Kill=1;Map(3,b);break;}} if (a==2||a==6||a==8||a==9||a==10||a==11||a==12) { if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) { if(a==2)Blo-=20; else if(a==8)Blo-=10; else Blo-=15;B[b].kill=1,Killb=20;Kill=1;if(a!=2){B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}}} if(a==4) {if((Wind>=1||Thun>=1)&&abs(x-Nox[i])<1.5&&Noy[i]-y<=0&&Noy[i]-y>=-8) {if(B[b].what<98)Exp+=2;B[b].life=0;Map(3,b);break;}if(abs(x-Nox[i])<1&&Noy[i]-y<=0&&Noy[i]-y>=-8) {Blo-=25,B[b].kill=1,Killb=20;Kill=1;Vy=-1;Y-=0.5;break;}} } } void Map(int a,int b){ Color(0); if(a==-1){ if(Boss==1||Boss==6){if(Bwhat1==5){if(ti(Bx1)==20)Setpos(Bx1,By1),cout<<"==";else Setpos(Bx1,By1),cout<<" ";}else{Setpos(Bx1-1,By1-0.5),cout<<" ";Setpos(Bx1,By1-1),cout<<" ";Setpos(Bx1+1,By1-0.5),cout<<" ";if(abs(ti(Bx1)-20)<=1)Setpos(20,By1-1),cout<<"======";}} if(Boss==2||Boss==6){Setpos(Bx2-1,By2-1);cout<<" ";Setpos(Bx2,By2-1);cout<<" ";Setpos(Bx2+1,By2-1),cout<<" ";Color(0);if(abs(ti(Bx2)-20)<=1)Setpos(20,By2-1),cout<<"======";} if(Boss==3||Boss==6){Setpos(Bx3-1,By3-0.5);cout<<" ";Setpos(Bx3,By3);cout<<" ";Setpos(Bx3+1,By3-1),cout<<" ";Color(0);if(abs(ti(Bx3)-20)<=1)Setpos(20,By3-1),cout<<"=======";} if(X<0)return;if(X>=17&&X<=19){Setpos(X-1,Y);cout<<" ";Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-1),cout<<" ";}else if(X<=23&&X>=21){Setpos(X+1,Y);cout<<" ";Setpos(X,Y-1);cout<<" ";Setpos(X-1,Y-1),cout<<" ";}else if(X>23){Setpos(X,Y-1);cout<<" ";Setpos(X-1,Y-0.5),cout<<" ";}else if(X<17&&Upt!=0){Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-1.5),cout<<" ";}else if(X<17){Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-0.5),cout<<" ";}if(Thun>0){Setpos(X-2,Y-1),cout<<" ";Setpos(X+2,Y-1),cout<<" ";Setpos(X,Y+2),cout<<" ";Setpos(X,Y-2.5),cout<<" ";Setpos(X-1,Y+1),cout<<" ";Setpos(X+1,Y+1),cout<<" ";Setpos(X-1,Y-2),cout<<" ";Setpos(X+1,Y-2),cout<<" ";Setpos(20,Y-2.5),cout<<"============";}if(Wind!=0){Setpos(X+1,Y-5);cout<<" ";Setpos(X,Y-5);cout<<" ";Setpos(X-1,Y-5);cout<<" ";Setpos(20,Y-5),cout<<"========";}if(Water!=0){Setpos(X,Y-4);cout<<" ";Setpos(X+2,Y-3.5);cout<<" ";Setpos(X-2,Y-3.5);cout<<" ";Setpos(X+1,Y-3.5);cout<<" ";Setpos(X-1,Y-3.5);cout<<" ";Setpos(20,Y-5),cout<<"========";}if(Fire!=0){Setpos(X,Y+1),cout<<" ";Setpos(X+1,Y),cout<<" ";Setpos(X-1,Y-1),cout<<" ";Setpos(20,Y-1);cout<<"======";} } if(a==0){ if(Boss==1||Boss==6){if(Bwhat1==5)Color(5),Setpos(Bx1,By1),cout<<"█",Color(0);else if(Bwhat1==4&&Bgo1[1]>6&&Bgo1[1]<11)Color(4),Setpos(Bgo1[5]-1,Bgo1[6]),cout<<"︻",Setpos(Bgo1[5],Bgo1[6]-1),cout<<"【",Setpos(Bgo1[5],Bgo1[6]+1),cout<<"】",Setpos(Bgo1[5]+1,Bgo1[6]),cout<<"︼",Color(0);else{Setpos(Bx1-1,By1-0.5),Color(0),cout<<"●●";Setpos(Bx1,By1-1);if(Bwhat1==2&&Bgo1[1]<=5)Color(1);else if(Bwhat1==3&&Bgo1[1]<=5)Color(5);else if(Bwhat1==6&&Bgo1[1]<=5)Color(8); else Color(4);if(Bwhat1==4) Setpos(Bx1,By1-0.5),cout<<"██(";else cout<<")██(";Setpos(Bx1+1,By1-0.5),cout<<"……";Color(0);}} if(Boss==2||Boss==6){Setpos(Bx2-1,By2-1);Color(0),cout<<"\\ ";Color(0);cout<<"●";Setpos(Bx2,By2-1);Color(3);cout<<"◥";Color(5),cout<<"JJJ";Color(0),cout<<">";Color(3);Setpos(Bx2+1,By2-1),cout<<"◢█◣";Color(0);} if(Boss==3||Boss==6){Setpos(Bx3-1,By3-0.5);if(Bwhat3==3||Bwhat3==9) Color(1);else if(Bwhat3==4||Bwhat3==10) Color(4);else if(Bwhat3==5||Bwhat3==11) Color(5);if(Bwhat3==11)cout<<' ';else if(Bwhat3==6) Color(3);else Color(2);cout<<"●-";Setpos(Bx3,By3);if(Bwhat3==11)cout<<"/";else cout<<"┃";Color(0);Setpos(Bx3+1,By3-1),cout<<"●●●";} if(X<0)return;if(Ren==2) Color(12);if(Ren==3) Color(1);if(Ren==4) Color(3);if(Ren==5) Color(4);if(Ren==6) Color(2);if(Drug!=0&&T%5!=0) Color(11);if(Drug!=0&&T%5==0) Color(11);if(Ice!=0) Color(6);if(b==1) Color(8);if(Li!=0) Color(5);if(Ren==1&&Killb>0&&T%4<2) Color(13);if(Wind>0&&T%4<=1) Color(1);if(Wind>0&&T%4>=2) Color(0);if(Thun>0&&T%4<=1) Color(1);if(Thun>0&&T%4>=2) Color(6); if(X>=17&&X<=19){Setpos(X-1,Y);cout<<"●";Setpos(X,Y-1);cout<<"━/";if(T%10<3) Setpos(X+1,Y-1),cout<<"┛╲";else if(T%10<6) Setpos(X+1,Y-1),cout<<"┦ ";else Setpos(X+1,Y-1),cout<<"╯>";if(Wind>0&&T%3==0) Setpos(X+1,Y-1),cout<<"┛╲";else if(Wind>0&&T%3==1) Setpos(X+1,Y-1),cout<<"┦ ";else if(Wind>0&&T%3==2)Setpos(X+1,Y-1),cout<<"╯>";}else if(X<=23&&X>=21){Setpos(X+1,Y);cout<<"●";Setpos(X,Y-1);cout<<"━\\";if(T%10<3) Setpos(X-1,Y-1),cout<<"┓╱";else if(T%10<6) Setpos(X-1,Y-1),cout<<"┪ ";else Setpos(X-1,Y-1),cout<<"╮>";if(Wind>0&&T%3==0) Setpos(X-1,Y-1),cout<<"┓╱";else if(Wind>0&&T%3==1) Setpos(X-1,Y-1),cout<<"┪ ";else if(Wind>0&&T%3==2)Setpos(X-1,Y-1),cout<<"╮>";}else if(X>23){Setpos(X,Y-1);cout<<"━ ●";Setpos(X-1,Y-0.5),cout<<"│>";}else if(X<17&&Upt!=0){Setpos(X,Y-1);cout<<"━ ●";Setpos(X+1,Y-1.5),cout<<"╱ >";}else if(X<17){Setpos(X,Y-1);cout<<"━ ●";Setpos(X+1,Y-0.5),cout<<"│>";}if(Thun>0){Setpos(X-2,Y-1),cout<<"▄▄";Setpos(X+2,Y-1),cout<<"▄▄";Setpos(X,Y+2),cout<<"▌";Setpos(X,Y-2.5),cout<<"▌";Setpos(X-1,Y+1),cout<<"█";Setpos(X+1,Y+1),cout<<"█";Setpos(X-1,Y-2),cout<<"█";Setpos(X+1,Y-2),cout<<"█";}if(Magne>0&&T%7<2)Setpos(X,Y),Color(5),cout<<"★";if(Wind>1){if(T%6<2)Color(1);else Color(0);if(T%8<=1){Setpos(X+1,Y-5);cout<<"---- --";Setpos(X,Y-5);cout<<"- --- -";Setpos(X-1,Y-5);cout<<"--- - --";}else if(T%8<=3){Setpos(X+1,Y-5);cout<<"------ ";Setpos(X,Y-5);cout<<" -- ---";Setpos(X-1,Y-5);cout<<"----- - ";}else if(T%8<=5){Setpos(X+1,Y-5);cout<<" ------";Setpos(X,Y-5);cout<<"-- -- -";Setpos(X-1,Y-5);cout<<"- ----- ";}else if(T%8<=7){Setpos(X+1,Y-5);cout<<"-- ----";Setpos(X,Y-5);cout<<" --- -- ";Setpos(X-1,Y-5);cout<<"- - ----";}}if(Water!=0){Color(1);if(T%20<5){Setpos(X+2,Y-3);cout<<"■";Setpos(X+1,Y-3.5);cout<<"■";Setpos(X-1,Y-2.5);cout<<"■";Setpos(X-2,Y-3);cout<<"■";}else if(T%20<10||T%20>=15){Setpos(X+2,Y-3);cout<<"■";Setpos(X,Y-4);cout<<"■■";Setpos(X-2,Y-3); cout<<"■";}else if(T%20<15){Setpos(X+2,Y-3.5);cout<<"■";Setpos(X+1,Y-3);cout<<"■";Setpos(X-1,Y-3.5);cout<<"■";Setpos(X-2,Y-3);cout<<"■";}}if(Fire!=0){if(T%6<3)Color(4);else Color(5);if(Fir>=1)Setpos(X,Y+1),cout<<"●";if(Fir>=2)Setpos(X+1,Y),cout<<"●";if(Fir>=3)Setpos(X-1,Y-1),cout<<"●";} } if(a==1||a==3){ if(B[b].what==1){Nor;Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].How<=1) Color(13);else Color(4);cout<<"●";if(a==1) Pan(1,B[b].x,B[b].y,b);}} if(B[b].what==2){Nor;Setpos(B[b].x-1,B[b].y-1);if(ti(B[b].x-1)==20)cout<<"======";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";Setpos(B[b].x+1,B[b].y-1);if(ti(B[b].x+1)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);Color(5);if(B[b].How==0){Setpos(B[b].x-1,B[b].y),cout<<"↑";Setpos(B[b].x,B[b].y-1),cout<<"←┼ →";Setpos(B[b].x+1,B[b].y),cout<<"↓";}else if(B[b].How==1){Setpos(B[b].x-1,B[b].y-1),cout<<"↖ ↗";Setpos(B[b].x,B[b].y),cout<<"╳";Setpos(B[b].x+1,B[b].y-1),cout<<"↙ ↘";} if(a==1) Pan(2,B[b].x,B[b].y,b);}} if(B[b].what==3||B[b].what==5){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;Setpos(B[b].x,B[b].y);if(B[b].How==1) Color(5);else Color(4);cout<<"◎";}} if(B[b].what==4){Nor;Setpos(B[b].x,fmax((float)0,B[b].y-8));if(ti(B[b].x)==20){for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<"==";}else {for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<" ";}if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,fmax((float)0,B[b].y-8));Color(6); for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<"═"; if(a==1) Pan(4,B[b].x,B[b].y,b);}} if(B[b].what==6||B[b].what==8||B[b].what==9){Nor;Setpos(B[b].x-1,B[b].y);if(ti(B[b].x)-1==20)cout<<"==";else cout<<" ";Setpos(B[b].x+1,B[b].y);if(ti(B[b].x)+1==20)cout<<"==";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;Setpos(B[b].x,B[b].y-1);if(B[b].what==6){if(B[b].How<=1) Color(1); else Color(6);}if(B[b].what==9){if(B[b].How<=1) Color(4); else Color(8);}if(B[b].what==8)Color(5);Setpos(B[b].x-1,B[b].y);cout<<"︹";Setpos(B[b].x+1,B[b].y);cout<<"︺";Setpos(B[b].x,B[b].y-1);if(B[b].How%2==1) cout<<"〔●〕"; else cout<<"﹝○﹞"; if(a==1) Pan(6,B[b].x,B[b].y,b);}} if(B[b].what==7){Nor;Setpos(B[b].x,B[b].y);if(B[b].How<0) for(int i=19;i>=20+B[b].How;i--) {Setpos(i,B[b].y);cout<<" ";}if(B[b].How>0) for(int i=21;i<=20+B[b].How;i++) {Setpos(i,B[b].y);cout<<" ";}if(B[b].life!=0){B[b].y-=B[b].vy;if(B[b].How<0) for(int i=19;i>=20+B[b].How;i--) {Setpos(i,B[b].y);cout<<"║"; if(a==1) Pan(7,i,B[b].y,b);}if(B[b].How>0) for(int i=21;i<=20+B[b].How;i++) {Setpos(i,B[b].y);cout<<"║"; if(a==1) Pan(7,i,B[b].y,b);}}} if(B[b].what==10||B[b].what==11||B[b].what==12){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){B[b].x-=B[b].vx;B[b].y-=B[b].vy;if(B[b].How==1){B[b].vy-=0.2;}else B[b].vx-=0.35;if(B[b].x>=25) B[b].x=25,B[b].vx*=-0.8;if(B[b].what==11&&B[b].y<=1) B[b].y=1,B[b].vy*=-1;if(B[b].what==12&&B[b].y<=1) B[b].y=1,B[b].vx=0,B[b].vy=-0.5,B[b].How=1;Setpos(B[b].x,B[b].y);if(B[b].what==11)Color(1);else if(B[b].what==12)Color(5);else Color(0);if(B[b].t%4<2)cout<<"▃";else cout<<"▍";if(a==1) Pan(B[b].what,B[b].x,B[b].y,b);}} if(B[b].what>=13&&B[b].what<=17){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"====";else cout<<" ";if(B[b].life!=0){B[b].x-=B[b].vx;B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].what==14) Color(1);else if(B[b].what==15) Color(4);else if(B[b].what==16) Color(5);else if(B[b].what==17) Color(3);else Color(2);cout<<"●";if(B[b].what==14)cout<<"*";if(B[b].what==15)cout<<"";if(B[b].what==16)cout<<"<";if(B[b].what==17)cout<<"X";} if(a==1) Pan(1,B[b].x,B[b].y,b);} if(B[b].what==98&&B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(ti(B[b].x==20))cout<<"==";else cout<<" ";if(B[b].y<=3)B[b].life=0;} if(B[b].what>=99){if(B[b].y<=3)B[b].life=0;if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);Color(5);if(B[b].what==99)cout<<"█";if(B[b].what>=100&&B[b].what<200){if(B[b].what%5==0)cout<<"我";if(B[b].what%5==1)cout<<"是";if(B[b].what%5==2)cout<<"最";if(B[b].what%5==3)cout<<"强";if(B[b].what%5==4)cout<<"的";}if(B[b].what>=200&&B[b].what<300){if(B[b].what%6==0)cout<<"神";if(B[b].what%6==1)cout<<"级";if(B[b].what%6==2)cout<<"怪";if(B[b].what%6==3)cout<<"物";if(B[b].what%6==4)cout<<"之";if(B[b].what%6==5)cout<<"光";}if(B[b].what>=300&&B[b].what<400){if(B[b].what%8==0)cout<<"颤";if(B[b].what%8==1)cout<<"抖";if(B[b].what%8==2)cout<<"吧";if(B[b].what%8==3)cout<<"无";if(B[b].what%8==4)cout<<"能";if(B[b].what%8==5)cout<<"的";if(B[b].what%8==6)cout<<"人";if(B[b].what%8==7)cout<<"类";}if(B[b].what>=400&&B[b].what<500){if(B[b].what%8==0)cout<<"还";if(B[b].what%8==1)cout<<"不";if(B[b].what%8==2)cout<<"快";if(B[b].what%8==3)cout<<"跪";if(B[b].what%8==4)cout<<"倒";if(B[b].what%8==5)cout<<"在";if(B[b].what%8==6)cout<<"朕";if(B[b].what%8==7)cout<<"前";}if(B[b].what>=500&&B[b].what<600){if(B[b].what%8==0)cout<<"看";if(B[b].what%8==1)cout<<"懂";if(B[b].what%8==2)cout<<"这";if(B[b].what%8==3)cout<<"句";if(B[b].what%8==4)cout<<"话";if(B[b].what%8==5)cout<<"的";if(B[b].what%8==6)cout<<"是";if(B[b].what%8==7)cout<<"猪";} if(a==1) Pan(1,B[b].x,B[b].y,b);}} if(B[b].what==-1){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(Boss==0) B[b].life=0;else if(((Boss==1&&abs(B[b].x-Bx1)+abs(B[b].y-By1)<1.5)||(Boss==2&&abs(B[b].x-Bx2)+abs(B[b].y-By2)<1.5)||(Boss==3&&abs(B[b].x-Bx3)+abs(B[b].y-By3)<1.5)||(B[b].t==10))&&B[b].life==1) Bblo-=8+Lv*2,B[b].life=0;if(B[b].life!=0){if(Boss==1)B[b].x=B[b].x+(Bx1-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By1-B[b].y)/(10-B[b].t)*1.0;if(Boss==2)B[b].x=B[b].x+(Bx2-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By2-B[b].y)/(10-B[b].t)*1.0;if(Boss==3)B[b].x=B[b].x+(Bx3-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By3-B[b].y)/(10-B[b].t)*1.0;Setpos(B[b].x,B[b].y);Color(7);if(B[b].t%2==0) cout<<"+";else cout<<"×";}} if(B[b].what<=-2&&B[b].what>=-9){Nor;Setpos(B[b].x-1,B[b].y);if(ti(B[b].x)-1==20)cout<<"==";else cout<<" ";Setpos(B[b].x+1,B[b].y);if(ti(B[b].x)+1==20)cout<<"==";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;if(B[b].what<=-3&&B[b].what>=-7){if(B[b].x<=7)B[b].x=7;if(B[b].x>=28)B[b].x=28;else if(B[b].x>=B[b].a+1&&B[b].How==1)B[b].How=0;else if(B[b].x<=B[b].a-1&&B[b].How==0)B[b].How=1;if(B[b].How==1&&B[b].vx>=-1)B[b].vx-=0.2;if(B[b].How==0&&B[b].vx<=1)B[b].vx+=0.2;}if(B[b].what==-2) Color(3);if(B[b].what==-3) Color(4);if(B[b].what==-4) Color(1);if(B[b].what==-5) Color(0);if(B[b].what==-6) Color(6);if(B[b].what==-7) Color(5);if(B[b].what==-8) Color(2);if(B[b].what==-9) Color(14);if(T%7<=1&&B[b].what==-5)Color(1);else if(T%7<=1)Color(0);Setpos(B[b].x-1,B[b].y);cout<<"︹";Setpos(B[b].x+1,B[b].y);cout<<"︺";Setpos(B[b].x,B[b].y-1);if(B[b].what==-2) cout<<"﹝镖﹞";if(B[b].what==-3) cout<<"﹝火﹞";if(B[b].what==-4) cout<<"﹝水﹞";if(B[b].what==-5) cout<<"﹝风﹞";if(B[b].what==-6) cout<<"﹝雷﹞";if(B[b].what==-7) cout<<"﹝磁﹞";if(B[b].what==-8) cout<<"﹝血﹞";if(B[b].what==-9) cout<<"﹝忍﹞"; if(a==1) Pan(-2,B[b].x,B[b].y,b);}} if(B[b].what==-11||B[b].what==-12){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){if(Magne>0)B[b].How++,B[b].x=B[b].x+(X-B[b].x)/(10-B[b].How)*1.0,B[b].y=B[b].y+(Y-B[b].y)/(10-B[b].How)*1.0;B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].what==-10) Color(5);if(B[b].what==-11) Color(7);if(T%7<=1)Color(0);cout<<"◆"; if(a==1) Pan(-1,B[b].x,B[b].y,b);}} if(B[b].what==-13){Nor;Setpos(B[b].x,B[b].y-0.5);if(ti(B[b].x)==20)cout<<"===";else cout<<" ";if(B[b].life!=0){if(B[b].a==13880086){if(Boss==0) B[b].life=0;else if(((Boss==1&&abs(B[b].x-Bx1)+abs(B[b].y-By1)<1.5)||(Boss==2&&abs(B[b].x-Bx2)+abs(B[b].y-By2)<1.5)||(Boss==3&&abs(B[b].x-Bx3)+abs(B[b].y-By3)<1.5)||(B[b].t==5))&&B[b].life==1) Bblo-=8+Lv*2,B[b].life=0;if(B[b].life!=0){if(Boss==1)B[b].x=B[b].x+(Bx1-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By1-B[b].y)/(5-B[b].t)*1.0;if(Boss==2)B[b].x=B[b].x+(Bx2-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By2-B[b].y)/(5-B[b].t)*1.0;if(Boss==3)B[b].x=B[b].x+(Bx3-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By3-B[b].y)/(5-B[b].t)*1.0;}}else{if(B[B[b].a].life==0) B[b].life=0;else if((abs(B[b].x-B[B[b].a].x)+abs(B[b].y-B[B[b].a].y)<1.5||(B[b].t==5))&&B[b].life==1) Exp+=2,B[B[b].a].life=B[b].life=0;if(B[b].life!=0){B[b].x=B[b].x+(B[B[b].a].x-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(B[B[b].a].y-B[b].y)/(5-B[b].t)*1.0;}}Setpos(B[b].x,B[b].y-0.5);if(T%6<3)Color(5);else Color(4);cout<<"●";}} }if(br<bl) {br=-1,bl=0;memset(B,0,sizeof(B));}Color(0); } void Move(){ if(X<3) X=3;if(Y<1) Y=1,Vy=0;if(Y>29) Y=29,Vy=0; if(Ice!=0){X-=Vx/2.0;Y+=Vy/2.0;Vy=fmax(Vy-0.025,(float)0);if(T%6==0&&Up==0&&Y<Ding) Y+=0.25;if(T%6==3&&Up==0&&Y>=Ding) Y-=0.25;if(Up==0&&Y<=Ding-1.25) Vy=0.25;if(Up==0&&Y>=Ding+1.25&&Wind==0) Vy=-0.25;if(Up==0&&Down==0&&Vx>0&&X<=18) Up=0,Down=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2&&X<=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up==0&&Down==1&&Vx<0&&X>=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up>0&&Down==0&&X>18) Up=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2) Vx+=0.175;else if(Up>0&&Upt==0) Vx-=0.175;else if(Up>0&&Upt>0) {Vx=fmax(Vx-0.125,(float)0);if(Upt==1&&T%2==0)Map(-1,0);if(T%2==0)Upt--;}} else{X-=Vx;Y+=Vy;Vy=fmax(Vy-0.05,(float)0);if(Wind==0){if(T%6==0&&Up==0&&Y<Ding) Y+=0.5;if(T%6==3&&Up==0&&Y>=Ding) Y-=0.5;}else{if(T%2==0&&Up==0&&Y<Ding) Y+=0.5;if(T%2==1&&Up==0&&Y>=Ding) Y-=0.5;}if(Up==0&&Y<=Ding-1.25) Vy=0.5;if(Up==0&&Y>=Ding+1.25&&Wind==0) Vy=-0.5;if(Up==0&&Down==0&&Vx>0&&X<=18) Up=0,Down=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2&&X<=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up==0&&Down==1&&Vx<0&&X>=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up>0&&Down==0&&X>18) Up=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2) Vx+=0.35;else if(Up>0&&Upt==0) Vx-=0.35;else if(Up>0&&Upt>0) {Vx=fmax(Vx-0.25,(float)0);if(Upt==1)Map(-1,0); Upt--;}} for(int i=bl;i<=br;i++){ if(B[i].what<98)if(B[i].x-B[i].vx<=5||B[i].x-B[i].vx>=30||B[i].y-B[i].vy<=0||B[i].y-B[i].vy>=30){B[i].life=0;Map(1,i);} for(int j=0;j<20;j++)if(B[i].what>0&&B[i].life!=0&&abs(B[i].x-I[j][0])<2&&B[i].y-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;B[i].life=0;Exp+=2;} if(B[i].t>=100)B[i].life=0;if(B[i].life==0&&i==bl) bl++; Map(1,i);if(B[i].life==0) continue; else{B[i].t++; if(B[i].what==1){if(B[i].y<=25&&B[i].How==0) B[i].vy=0,B[i].How=1;if(B[i].t==30) B[i].y+=1.5,B[i].How=2;if(B[i].t==35) B[i].vy=1.5,B[i].How=3;} if(B[i].what==2){if(B[i].t%3==0) B[i].How=!B[i].How;} if(B[i].what==3||B[i].what==5){if(B[i].what==3&&B[i].y<=20) B[i].vy=0;if(B[i].what==5&&B[i].y<=21) B[i].vy=0;if(B[i].t>30&&B[i].t%2==0) B[i].How=!B[i].How;if(B[i].what==5&&B[i].t<=30&&B[i].x<X) B[i].vx=-0.2;else if(B[i].what==5&&B[i].t<=70&&B[i].x>X) B[i].vx=0.2;else B[i].vx=0;if(B[i].t==45){B[i].life=0;br++;B[br].what=4;B[br].x=B[i].x;B[br].y=32;B[br].vy=3;B[br].life=1;}} if(B[i].what==6||B[i].what==8||B[i].what==9){if(B[i].vx<0.25&&B[i].vy<0.25&&B[i].t>=50){B[i].life=0;if(B[i].life==0&&i==bl) bl++;Map(1,i);break;}if(B[i].t%5==0) B[i].How=rand()%4;if(B[i].what==9){if(B[i].t==7){X9:float xx=(rand()%41)/40.0,yy=(rand()%41)/40.0;if(xx<=0.5&&yy<=0.5) goto X9;for(int j=1;j<=4;j++){br++,B[br].what=9;B[br].t=11;B[br].x=B[i].x,B[br].y=B[i].y,B[br].vx=xx,B[br].vy=yy;if(j%2==0)swap(B[br].vx,B[br].vy),B[br].vy*=-1;if(j<=2)B[br].vx*=-1,B[br].vy*=-1;B[br].life=1;}B[i].life=0;}}if(B[i].what==8){if(B[i].x>X&&B[i].vx<1.2) B[i].vx+=fmax((float)0,0.2-B[i].t/25);if(B[i].x<X&&B[i].vx>-1.2) B[i].vx-=fmax((float)0,0.2-B[i].t/25);if(B[i].y>Y&&B[i].vy<1.2) B[i].vy+=fmax((float)0,0.2-B[i].t/25);if(B[i].y<Y&&B[i].vy>-1.2) B[i].vy-=fmax((float)0,0.2-B[i].t/25);}} if(B[i].what>=13&&B[i].what<=15&&B[i].How!=0){if(B[i].x==B[i].How)B[i].vx=0,B[i].How=0;} if(B[i].what==16){if(B[i].x<X&&B[i].vx>=-1) B[i].vx-=0.2;else if(B[i].x>X&&B[i].vx<=1) B[i].vx+=0.2;} } if(B[i].life==1&&B[i].a==0&&B[i].what>0){if(B[i].y>Y&&abs(B[i].x-X)<=3&&((B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y))<Dis) Dis=(B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y),Disb=i;else if(((B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y))<Dis1) Dis1=(B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y),Disb1=i;} } } void Guai(int R,int r){ if(R==-1){br++;B[br].what=-1;B[br].x=X+rand()%3-1;B[br].y=Y+rand()%3-1;B[br].life=1;} if(R<=-2&&R>=-11){br++;B[br].what=R;B[br].x=B[br].a=r;B[br].y=29;if(R<=-3&&R>=-7)B[br].vx=-1;B[br].vy=1;B[br].life=1;} if(R==0){br++;B[br].what=1;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==1){br++;B[br].what=2;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==2||R==3){br++;B[br].what=2*R-1;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==4){br++;B[br].what=6;if(r<5)r=5;if(r>30)r=30;B[br].x=r;if(r==11||r==25) B[br].y=29-(rand()%20);else B[br].y=29;X4:B[br].vx=(rand()%21-10)/30.0;B[br].vy=(rand()%25)/30.0;if(B[br].vx<=0.8&&B[br].vy<=0.8)goto X4;int rx=rand()%50;if(rx==0) B[br].vx=0;B[br].life=1;} if(R==5){br++;B[br].How=r;B[br].what=7;if(B[br].How<0) B[br].x=19;if(B[br].How>0) B[br].x=21;B[br].y=29;B[br].vy=1;B[br].life=1;} } void CpGuai(int R,float x,float y,float xx,float yy){ if(R==4){br++;B[br].what=6;B[br].x=x;B[br].y=y;B[br].vx=xx;B[br].vy=yy;B[br].life=1;} if(R==6||R==7||R==8){br++;B[br].what=4+R;B[br].x=x;B[br].y=y;B[br].vx=xx;B[br].vy=yy;B[br].life=1;} } void MesGuai(int a,int rr){ int R=rand()%rr,r=-10086; if(R==0){if(a==1) r=(5+rand()%8)*2;if(a<=3&&a!=1) r=10+rand()%16;if(a==4) r=rand()%75-20;if(a==5) r=2+rand()%4;if(r!=-10086) Guai(a,r);} } void NorGuai(int a,int b){ if(a==1) {if(b==1||b==41) Guai(0,15),Guai(0,17),Guai(0,19);if(b==21||b==61) Guai(0,21),Guai(0,23),Guai(0,25);if(b==81) Guai(0,11),Guai(0,13),Guai(0,15),Guai(0,17),Guai(0,19);if(b==101||b==141) Guai(0,17),Guai(0,19),Guai(0,21),Guai(0,23),Guai(0,25);if(b==121) Guai(0,15),Guai(0,17),Guai(0,19),Guai(0,21),Guai(0,23);if(b>=160&&b<=260&&b%10==0) Guai(0,b/10-1);if(b>=270&&b<=370&&b%10==0) Guai(0,52-b/10);if(b>=460&&b<=560&&b%10==0) Guai(0,b/10-37),Guai(0,b/10-36),Guai(0,b/10-35);if(b>=570&&b<=670&&b%10==0) Guai(0,78-b/10),Guai(0,77-b/10),Guai(0,76-b/10);if(b>=760&&b<=960&&b%10==0) Guai(0,b/10-66),Guai(0,b/10-65),Guai(0,103-b/10),Guai(0,104-b/10);if(b>=1000&&b<=1300) MesGuai(0,30-b/50);} if(a==2) {if(b<=200&&b%30==1) {int r=rand()%4;if(r==1) r=0;for(int i=0;i<4;i++) if(i!=r) Guai(1,i*4+9);}if(b>200&&b<=220&&b%5==1) Guai(1,18);if(b>220&&b<=300&&b%7==1) Guai(1,b/5-26);if(b>350&&b<=370&&b%5==1) Guai(1,22);if(b>370&&b<=450&&b%7==1) Guai(1,96-b/5);if(b==461||b==501||b==541) Guai(1,13),Guai(1,17),Guai(1,21);if(b==481||b==521||b==561) Guai(1,17),Guai(1,21),Guai(1,25);if(b>=561&&b<=861&&b%20==1) Guai(1,b/40+5);if(b>=561&&b<=861&&b%20==11) Guai(1,35-b/40);if(b>=801&&b<=961&&b%15==1) Guai(1,20);if(b>=1000&&b<=1300) MesGuai(1,30-b/50);} if(a==3) {if(b==1||b==61) Guai(3,15),Guai(2,17),Guai(2,19);if(b==31||b==91) Guai(2,21),Guai(2,23),Guai(3,25);if(b>=120&&b<=220&&b%10==0) Guai(2,b/10+3);if(b>=240&&b<=340&&b%10==0) Guai(2,49-b/10);if(b>=360&&b<=460&&b%20==0) Guai(2,b/10-21),Guai(2,61-b/10);if(b>=480&&b<=580&&b%20==0) Guai(3,b/10-33),Guai(3,73-b/10);if(b>=600&&b<750&&b%30==0) {for(int i=0;i<5;i++) Guai(3,i*3+10);}if(b>=750&&b<830&&b%10==0) if(b<=200&&b%40==1) Guai(2,X);if(b>=830&&b<910&&b%20==0) Guai(2,X);if(b>=910&&b<980&&b%10==0) Guai(2,X);if(b>=1000&&b<=1300) MesGuai(rand()%2+2,40-b/50);} if(a==4) {if(b==1) CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,21,29,0,0.65);if(b==41) CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,18,29,0,0.65);if(b==81) CpGuai(4,5,20,-0.4,0.35),CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,30,20,0.25,0.4),CpGuai(4,21,29,0,0.65);if(b==121) CpGuai(4,5,20,-0.2,0.35),CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,30,20,0.4,0.4),CpGuai(4,18,29,0,0.65);if(b==161) CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,21,29,0,0.6),CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,18,29,0,0.65);if(b>=200&&b<=500&&b%40==1) {float r=0,rr;for(int i=1;i<=5;i++){X5:rr=0.7+(rand()%5)/10.0;if(rr==r)goto X5;r=rr;CpGuai(4,i*3+7,29,0,0.5+(rand()%50)/80.0);}}if(b>540&&b<=565&&b%5==1) CpGuai(4,5,8,-2,0.2);if(b>590&&b<=615&&b%5==1) CpGuai(4,30,8,1.5,0.2);if(b>640&&b<=665&&b%5==1) CpGuai(4,5,8,-1.5,0.3);if(b>690&&b<=715&&b%5==1) CpGuai(4,30,8,2,0.3);if(b>=750&&b<=950&&b%20==1) {float r=0,rr;for(int i=1;i<=3;i++){X6:rr=0.7+(rand()%5)/10.0;if(rr==r)goto X6;r=rr;CpGuai(4,i*5+7+(rand()%3),29,0,0.5+(rand()%50)/200.0);}}if(b>=1000&&b<=1300) MesGuai(4,5);} } void RandGood(){ if(Biao>0){Biao--;Guai(-1,0);} if(Gd[1]==0){Gd[1]=rand()%1000+1;if(Win==7)Gd[1]=10086;Gd[3]=rand()%16+8;} else if(Gd[1]<=5){Guai(-2-Gd[1],Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=20&&Gd[1]<27){Guai(-8,Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=30&&Gd[1]<37){Guai(-9,Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=40&&Gd[1]<70){Gd[2]++;if(Gd[2]%2==1)Guai(-10,Gd[3]);if(Gd[2]>=9)memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=70&&Gd[1]<100){Gd[2]++;if(Gd[2]%2==1)Guai(-11,Gd[3]);if(Gd[2]>=9)memset(Gd,0,sizeof(Gd));} else if(Boss!=0&&Gd[1]>=450&&Gd[1]<=500){Guai(-2,Gd[3]);memset(Gd,0,sizeof(Gd));} else Gd[1]=0; for(int i=0;i<20;i++){if(I[i][0]==-1) continue;Setpos(I[i][0],I[i][1]);Color(0);if(I[i][0]==20) cout<<"===";else cout<<" ";I[i][1]++;if(I[i][0]>=28||I[i][0]<=0||I[i][1]>=29) I[i][0]=I[i][1]=-1;else Color(1),Setpos(I[i][0],I[i][1]),cout<<"■";Color(0);} } void Panboss(int bx,int by){ float Nox[4],Noy[4];Nox[0]=X,Noy[0]=Y; if(Down==1&&X==22) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; else if(Down==2) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else if(Down==1||X<18) Nox[1]=X-1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; for(int i=0;i<3;i++){if((Boss==1||Boss==6)&&Wind==0&&Thun==0&&abs(Nox[i]-bx)<1&&abs(Noy[i]-by)<1&&Bgo1[4]==0) Blo-=20,Bgo1[4]=1,Killb=20,Kill=1;if((Boss==2||Boss==6)&&Wind==0&&Thun==0&&abs(Nox[i]-bx)<1&&abs(Noy[i]-by)<1&&Bgo2[8]==0) Blo-=20,Bgo2[8]=1,Killb=20,Kill=1;} } void Boss1(){ for(int j=0;j<20;j++)if(abs(Bx1-I[j][0])<2&&By1-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} if(Bbr==Bbl&&Bbr!=0) Bbr=Bbl=0; for(int i=1;i<=3+(Bbl-Bbr)/5;i++)if(Bbr<Bbl){Setpos(Bway[Bbr][0],Bway[Bbr][1]);if(Bway[Bbr][0]==20) cout<<"==";else cout<<" ";Bbr++;} if(Bwhat1==5){int bx,by;Color(5);for(int i=0;i<10;i++){bx=Bx1-i*Bvx1/10.0;by=By1-i*Bvy1/10.0;Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;}Color(0);} Bx1-=Bvx1;By1-=Bvy1; if(Bwhat1==0){X2:Bwhat1=rand()%7;if(Bwhat1==2||Bwhat1==3){if(By1<=10||By1>25) goto X2;}if(Bwhat1==4){if(By1<=15||Bx1<20) goto X2;Bgo1[2]=Bx1;Bgo1[3]=By1-1;}if(Bwhat1==5) {X0:Bgo1[3]=rand()%4+1;Bvx1=(rand()%101)/20.0;Bvy1=(rand()%101)/20.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(abs(Bvx1)+abs(Bvy1)<=3||Out1)goto X0;}if(Bwhat1==6){if(By1<=17||By1>25) goto X2;}} if(Bwhat1==1){Bgo1[1]++,Bgo1[2]++;int R=rand()%(5-Bgo1[1]),r=rand()%(10-Bgo1[2]);if(Out1) R=0;if(R==0) {int vx=Bvx1,vy=Bvy1;Bgo1[1]=0;Bvx1=(rand()%101-20)/50.0;Bvy1=(rand()%101-20)/50.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(Out1) r=0;} if(r==0) Chang1 } if(Bwhat1==2){Bgo1[1]++;if(Bgo1[1]>6){Bvy1=-0.3;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=6;X3:B[br].vx=(rand()%21-10)/40.0;B[br].vy=(rand()%25)/30.0;if(B[br].vx<=0.8&&B[br].vy<=0.8)goto X3;int rx=rand()%50;if(rx==0) B[br].vx=0;B[br].life=1;}if(Bgo1[1]>8) Chang1} if(Bwhat1==3){Bgo1[1]++;if(Bgo1[1]>6&&Bgo1[1]%3==0){Bvy1=-0.3;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=8;B[br].life=1;}if(Bgo1[1]>15) Chang1} if(Bwhat1==4){Bgo1[1]++;if(Bgo1[1]<=8){Setpos(Bgo1[2],Bgo1[3]);if(Bgo1[1]==1)cout<<" ";else if(Bgo1[1]>1&&Bgo1[2]==20) cout<<"==";else cout<<" ";Bgo1[2]--;Setpos(Bgo1[2],Bgo1[3]);int r=rand()%4;if(r%2==0) Color(6);else Color(9);if(r<2) cout<<") ";else cout<<"】";Color(0);}if(Bgo1[1]==6) Bgo1[5]=X,Bgo1[6]=Y;if(Bgo1[1]==11){Map(0,(bool)Kill);Setpos(Bgo1[5],Bgo1[6]+1),cout<<" ";Setpos(Bgo1[5],Bgo1[6]-1),cout<<" ";Setpos(Bgo1[5]+1,Bgo1[6]),cout<<" ";Setpos(Bgo1[5]-1,Bgo1[6]),cout<<" ";int bx,by,bvx=Bgo1[2]-Bgo1[5],bvy=Bgo1[3]-Bgo1[6];Color(6);int i=0;while(1){bx=Bgo1[2]-i*bvx/30.0;by=Bgo1[3]-i*bvy/30.0;if(bx<=5||bx>=30||by<0||by>=29) break;Panboss(bx,by);Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;i++;}Color(0);Map(-1,0);Chang1}} if(Bwhat1==5){Bgo1[1]++,Bgo1[2]++;int R=rand()%(5-Bgo1[1]),r=rand()%(10-Bgo1[2]);if(Out1) R=0;if(R==0) {int vx=Bvx1,vy=Bvy1;Bgo1[1]=0;X1:Bvx1=(rand()%101-20)/20.0;Bvy1=(rand()%101-20)/20.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(abs(Bvx1)+abs(Bvy1)<=3||abs(Bvx1-vx)<=1||abs(Bvy1-vy)<=1)goto X1;if(Out1) r=0;} if(r==0) Chang1 } if(Bwhat1==6){Bgo1[1]++;if(Bgo1[1]>6&&Bgo1[1]%10==0){By1-=1;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=9;X30:B[br].vy=1;B[br].life=1;}if(Bgo1[1]>31) Chang1} } void Boss2(){ for(int j=0;j<20;j++)if(abs(Bx2-I[j][0])<2&&By2-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} if(Bbr==Bbl&&Bbr!=0) Bbr=Bbl=0; for(int i=1;i<=3+(Bbl-Bbr)/5;i++)if(Bbr<Bbl){Setpos(Bway[Bbr][0],Bway[Bbr][1]);if(Bway[Bbr][0]==20) cout<<"==";else cout<<" ";Bbr++;} Bx2-=Bvx2;By2-=Bvy2; if(Bwhat2==0){X21:Bwhat2=rand()%7;if(Bwhat2==2){X31:for(int i=1;i<=3;i++){Bgo2[i*2+1]=rand()%28+1,Bgo2[i*2]=rand()%25+5;if((abs(Bgo2[i*2]-Bx2)<=2&&abs(Bgo2[i*2+1]-By2)<=2)||(abs(Bgo2[i*2]-X)<=2&&abs(Bgo2[i*2+1]-Y)<=2))goto X31;}if(Bgo2[2]==Bgo2[4]||Bgo2[2]==Bgo2[6]||Bgo2[6]==Bgo2[4]||Bgo2[5]==Bgo2[3]||Bgo2[3]==Bgo2[7]||Bgo2[5]==Bgo2[7]) goto X31;}if(Bwhat2==3){Bgo2[2]=rand()%2;}if(Bwhat2==4||Bwhat2==5||Bwhat2==6){Bvy2=-1.5;Bvx2=-0.5;}} if(Bwhat2==1){Bgo2[1]++,Bgo2[2]++;int R=rand()%(5-Bgo2[1]),r=rand()%(30-Bgo2[2]);if(Out2) R=0;if(R==0) {int vx=Bvx2,vy=Bvy2;Bgo2[1]=0;Bvx2=(rand()%101-20)/50.0;Bvy2=(rand()%101-20)/50.0;if(Bgo2[3]<=2) Bvx2*=-1;if(Bgo2[3]%2==1) Bvy2*=-1;if(Out2) r=0;} if(r==0) Chang2 } if(Bwhat2==2){Bgo2[1]++;float bx,by,bvx,bvy;if(Bgo2[1]<21){for(int i=1;i<=3;i++){bvx=Bgo2[i*2]-Bx2,bvy=Bgo2[i*2+1]-By2;if(Bgo2[1]<=10){Setpos(Bx2+(Bgo2[1]-1)*bvx/10.0,By2+(Bgo2[1]-1)*bvy/10.0);if(abs(Bx2+(Bgo2[1]-1)*bvx/10.0-20)<0.5)cout<<"==";else cout<<" ";bx=Bx2+Bgo2[1]*bvx/10.0;by=By2+Bgo2[1]*bvy/10.0;Setpos(bx,by);}else Setpos(Bgo2[i*2],Bgo2[i*2+1]);int r=rand()%4;if(r%2==0) Color(3);else Color(10);if(r<=1) cout<<"×";else cout<<"+";Color(0);}}if(Bgo2[1]==21){Map(0,(bool)Kill);Color(3);int j=0;for(int j=0;j<=30;j++)for(int i=1;i<=3;i++)for(int k=1;k<=4;k++){if(k==1) bvx=j,bvy=0;if(k==2) bvx=-j,bvy=0;if(k==3) bvx=0,bvy=j;if(k==4) bvx=0,bvy=-j;bx=Bgo2[i*2]+bvx,by=Bgo2[i*2+1]+bvy;if(bx<=5||bx>=30||by<0||by>=30) {continue;}Panboss(bx,by);Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;}Color(0);Map(-1,0);Chang2}} if(Bwhat2==3){Bgo2[1]++;if(Bgo2[1]<=18){if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";if(Bgo2[1]%4==0)Bgo2[3]=!Bgo2[3];if(Bgo2[1]%6<3)Color(3);else Color(5);if(Bgo2[3]==0) Setpos(X-3,Y),cout<<"▼",Setpos(X+3,Y),cout<<"▲",Bgo2[4]=(int)(X+0.5),Bgo2[5]=(int)(Y+0.5);if(Bgo2[3]==1) Setpos(X,Y-3),cout<<" ",Setpos(X,Y+3),cout<<" ",Bgo2[4]=(int)(X+0.5),Bgo2[5]=(int)(Y+0.5);Color(0);}if(Bgo2[1]==18){if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";}if(Bgo2[1]>18&&Bgo2[1]<=25){Bgo2[3]=Bgo2[2];if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";if(Bgo2[1]%4<2)Color(3);else Color(5);if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<"▼",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<"▲";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+3),cout<<" ";Color(0);}if(Bgo2[1]==25){if(Bgo2[2]==0){Color(3);for(int i=4;i<=29;i++){Setpos(i,Bgo2[5]),cout<<"█";Bbl++;Panboss(i,Bgo2[5]);Bway[Bbl][0]=i;Bway[Bbl][1]=Bgo2[5];}}if(Bgo2[2]==1){Color(3);for(int i=0;i<=28;i++){Setpos(Bgo2[4],i),cout<<"█";Bbl++;Panboss(Bgo2[4],i);Bway[Bbl][0]=Bgo2[4];Bway[Bbl][1]=i;}}Chang2}} if(Bwhat2==4||Bwhat2==5||Bwhat2==6){Bgo2[1]++;if(By2>27)Bvy2=0;if(Bx2>23)Bvx2=0;if(Bgo2[1]>13&&Bgo2[1]%3==0){float t=By2-Y,g=0.35;if(Boss==6) t/=2.0;CpGuai(Bwhat2+2,Bx2,By2,(Bx2-X)/t*1.0+(t-1)*g/2.0,1);}if(Bgo2[1]>20) Chang2} } void Boss3(){ #define Bean br++;B[br].what=13;B[br].x=Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1; for(int j=0;j<20;j++)if(abs(Bx3-I[j][0])<2&&By3-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} Bx3-=Bvx3;By3-=Bvy3; if(Bwhat3<=8){if(Bx3>X&&Bvx3<1.5) Bvx3+=0.3;if(Bx3<X&&Bvx3>-1.5) Bvx3-=0.3;} if(Bwhat3==0){X22:Bwhat3=rand()%12;if(Bwhat3==11&&abs(Bx3-20)<=1)goto X22;if(Bwhat3==11)Bgo3[2]=rand()%5;} if(Bwhat3==1){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3>=2&&Bwhat3<=6){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].what=11+Bwhat3;B[br].vy=0.5+(rand()%100)/80.0;if(Bwhat3==5)B[br].vy=B[br].vy*3/4.0;B[br].life=1;Chang3}} if(Bwhat3==7){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3==8){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3==9){Bvx3=0;Bgo3[1]++;if(Bgo3[1]==6||Bgo3[1]==8){Bean}if(Bgo3[1]>=8)Chang3} if(Bwhat3==10){Bvx3=0;Bgo3[1]++;if(Bgo3[1]==6||Bgo3[1]==8||Bgo3[1]==10||Bgo3[1]==12){Bean}if(Bgo3[1]>=12)Chang3} if(Bwhat3==11){Bvx3=0;Bgo3[1]++;if(Bgo3[1]>=8)for(int i=1;i<=4;i++){br++;B[br].what=80+100*Bgo3[2]+Bgo3[1]*4+i;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=99;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=99;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}if(Bgo3[1]>=20){for(int i=1;i<=4;i++){br++;B[br].what=98;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}Chang3}} } void Ball(int ball){ if(ball==1){if(Fir<3&&T%8==0) Fir++;if(Fir>0){br++;B[br].what=-13;B[br].x=X;B[br].y=Y+rand()%3-1;B[br].life=1;if(Dis<=30) B[br].a=Disb,B[Disb].a=1,Fir--;else if(Boss!=0) B[br].a=13880086,Fir--;else if(Dis!=13880087) B[br].a=Disb,B[Disb].a=1,Fir--;else if(Dis1!=13880087) B[br].a=Disb1,B[Disb1].a=1,Fir--;else B[br].life=0;Dis=Dis1=13880087;}} if(ball==2){if(T%4==0)ib=(ib+1)%20,I[ib][1]=Y-2;if(T%16==0)I[ib][0]=X;if(T%16==4)I[ib][0]=X-1;if(T%16==8)I[ib][0]=X+1;if(T%16==12)I[ib][0]=X-2;if(T%12==9)I[ib][0]=X+2;if(Water==1){for(int i=X-6;i<=X+6;i++)ib=(ib+1)%20,I[ib][0]=i,I[ib][1]=Y-2-0.5*abs(i-X);}} if(ball==3){if(Wind>5){if(Y<Ding-1)Vy=5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(Wind<5){if(Y>Ding-1)Vy=-5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(Wind==5){if(Boss==2) Ding=12.25;else Ding=6.25;if(Boss!=0) Bblo-=16+Lv*4;if(Boss==1) Chang1 if(Boss==2) Chang2 if(Boss==3) Chang3 system("color 3F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");system("cls");for(int i=bl;i<=br;i++)if(B[i].what>0)B[i].life=0;Setpos(20,0);for(int i=1;i<=60;i++) printf("=");}} if(ball==4){if(Thun==1){if(Boss!=0) Bblo-=16+Lv*4;if(Boss==1) Chang1 if(Boss==2) Chang2 if(Boss==3) Chang3 system("color 9F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");system("cls");for(int i=bl;i<=br;i++)if(B[i].what>0)B[i].life=0;Setpos(20,0);for(int i=1;i<=60;i++) printf("=");}} if(ball==5){system("cls"); Color(5);Setpos(10,10);cout<<"新天赋!";Y:int rr=rand()%4+2;Setpos(12,10);if(rr==Ren) goto Y;if(rr==2)cout<<"瞬跳";if(rr==3)cout<<"空之舞";if(rr==4)cout<<"三段跳";if(rr==5)cout<<"反重力跳跃";Setpos(14,10);cout<<"当前天赋:";if(Ren==1)cout<<"小无敌";if(Ren==2)cout<<"瞬跳";if(Ren==3)cout<<"空之舞";if(Ren==4)cout<<"三段跳";if(Ren==5)cout<<"反重力跳跃";Setpos(16,10);cout<<"换否?(y/n)";G:char g=_getch();if(g=='y')Ren=rr;else if(g!='n')goto G;system("cls");Setpos(20,0);Color(0);for(int i=1;i<=60;i++) printf("=");} if(ball==6){Color(4);for(float i=1;i<=Bblo;i+=Bblomax/20.0)cout<<"▄";Color(0);cout<<' '<<Bblo<<" ";Color(0);} if(ball==7){Color(1);if(Win==7&&T%6<3)Color(3);for(float i=1;i<=Blo;i+=Blomax/20.0)cout<<"▄";Color(0);if(Win==7&&T%6<3)Color(3);printf(" %0.1f ",Blo);} } int main(){ system("mode con cols=60 lines=37");CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);srand((unsigned)time(NULL)); Win=0;Ren=1;Lv=1;Blo=Blomax=100;Expmax=300;Hui=15;X=18,Y=6; ReStart:system("cls");memset(B,0,sizeof(B));memset(I,-1,sizeof(I));T=0;bl=0;br=-1;Upt=0; Start:Blo=Blomax * 100;Ding=6.25; memset(Bgo1,0,sizeof(Bgo1));memset(Bgo2,0,sizeof(Bgo2));memset(Bgo3,0,sizeof(Bgo3)); if(Win%2==0) T=0;if(Win%2==0&&D==0){if(Win>0)Ball(5);Boss=0;lL:L=rand()%4+1;for(int i=0;i<=Win/2-1;i++)if(L==Ll[i]) goto lL;Ll[Win/2]=L;}if(Win%2==1&&D==0){if(Win==7)Boss=6,T=0,Blomax+=100;else{bl:Boss=rand()%3+1;for(int i=0;i<=3;i++)if(Boss==Bl[i]) goto bl;}Bl[Win/2]=Boss;Bwhat1=Bwhat2=Bwhat3=0,Bx1=10,By1=20,Bx2=15,By2=20,Bx3=21,By3=20;system("color 4C");Sleep(20);system("color 0F");Map(0,1);Sleep(1000);}if(Win%2==1){Bblomax=500+(Win/2)*500;Bblo=Bblomax;if(Boss==2) Ding=12.25;} while(1){ T++; if(Wind==0){if(GetAsyncKeyState(VK_LEFT)&0x8000) Vy=-(10-abs(Ding-Y)*1.5)/20.0;if(GetAsyncKeyState(VK_RIGHT)&0x8000) Vy=(10-abs(Ding-Y)*1.5)/20.0;}if(GetAsyncKeyState(VK_UP)&0x8000&&u1==0) {u1++;if(Down==1){Down=0;Up=0;if(Ren==2)Map(-1,0),Vx=0,X=18,Li=5;else Vx=7,Vy=0.3;}else if(Up==0&&Wind==0) {Down=0;Up=1;if(Ren==2)Map(-1,0),Vx=1,X=10,Map(0,3),Li=5;else Vx=2,Vy=0.1;}else if(Up==1&&Wind==0) {Down=0;Up=2;if(Ren==2)Map(-1,0),Vx=1,X-=6,Map(0,3),Li=5;else Vx=1.5,Vy=0.1;}else if(Ren==3&&Up==2&&Wind==0) {Down=0;Up=3;Vx=1;Vy=0.5;Upt=30;}else if(Ren==4&&Up==2&&Wind==0) {Down=0;Up=3;Vx=1.8;Vy=0.1;}}if(GetAsyncKeyState(VK_DOWN)&0x8000&&u2==0) {u2++;if(Down==1&&Ren==5){Down=2;Up=0;Vx=-1.7;}else {Down=1;Up=0;if(Ren==2)Map(-1,0),Vx=0,X=22,Map(0,3),Li=5;else {if(Upt!=0) Map(-1,0),Upt=0;Vx=-7;}}}if((GetAsyncKeyState(VK_UP)&0x8000) ?0:1) u1=0;if((GetAsyncKeyState(VK_DOWN)&0x8000) ?0:1) u2=0;if(kbhit()){char g=_getch();if(g==' ') Sleep(100),Setpos(4,1),Sy++,system("pause");}if(Sy==1) Setpos(4,1),printf(" "),Sy--; if(Drug==0) Blo=fmin((float)Blomax,Blo+Hui/100.0);else if(T%10==0)Blo--;if(T%20==0) {if(Kill!=0) Kill=0;if(Lvl!=0) Lvl=0;}if(Killb>0) Killb--;if(Li>0) Li--;if(Ice>0) Ice--;if(Drug>0) Drug--;if(Magne>0) Magne--; if(Fire>0) Ball(1),Fire--;if(Water>0) Ball(2),Water--;if(Wind>0) Ball(3),Wind--;if(Thun>0) Ball(4),Thun--; if(Boss==0) NorGuai(L,T%1500);RandGood();if(T%20==1)Exp++; if(T%50==1){Exp++;system("cls");Setpos(20,0);Color(0);for(int i=1;i<=60;i++) printf("=");if(Win==0&&T<300){Setpos(4,6);cout<<"↑/↓ 跳跃/下翻,←→ 些微移动(松手即返回)"; Setpos(8,6);cout<<"球可以开启特殊效果,经验积满(300)可提升级别。";Setpos(8,6);cout<<"打败 7 波即胜利,打败 BOSS 有新天赋。";Setpos(10,15);cout<<"空格可以暂停。";}} Map(-1,0); if(Boss==1) Boss1();if(Boss==2) Boss2();if(Boss==3) Boss3();if(Boss==6) Boss1(),Boss2(),Boss3(); Move();Map(0,(bool)Kill);Color(0); Setpos(1,1);Blo=fmin(Blo,(float)Blomax);if(Boss==0)cout<<"血量: "<<(int)Blo<<" ";Color(0);Setpos(1,9),cout<<"死亡次数: "<<D<<" ";Setpos(2,1);Exp=min(Exp,Expmax);if(Exp>=Expmax)Exp=0,Lv++,Lvl++,Hui++,Blomax+=5;if(Lvl>0)Color(5);cout<<"级别: "<<Lv;Color(0);Setpos(2,9);cout<<"经验: "<<Exp<<" ";if(Boss>0) Setpos(3,1),cout<<"血量 : ",Ball(7);if(Boss>0&&Boss!=6) Setpos(4,1),cout<<"怪物血量: ",Ball(6);if(Boss==6) Setpos(1,9),printf("时间: %0.1f s ",T/15.0); if(Win==0) Sleep(55);if(Win==1) Sleep(50);if(Win==2) Sleep(35);if(Win==3) Sleep(40);if(Win==4) Sleep(25);if(Win==5) Sleep(30);if(Win==6) Sleep(20);if(Win>=7) Sleep(17); if(Boss==3&&Bblo<=0){for(int i=1;i<=4;i++){br++;B[br].what=98;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}} if((Win%2==0&&T>=1400)||(Win%2==1&&Bblo<=0)||(Win==7&&T>=450)||Blo<=0) {Map(-1,0);break;} } if(Blo<=0){ Sleep(1000); D++; system("color 7F"); Setpos(15,11); Color(4); cout<<"GAME OVER..."; Sleep(2000); goto ReStart; } else if(Win==6){ system("color 7F"); Setpos(15,11); Color(4); cout<<"坚持30秒 !"; Sleep(2000); Setpos(30,0); Win++; D=0; } else if(Win==7){ Sleep(1000); system("color 6E"); Setpos(15,11); Color(5); cout<<"YOU WIN !"; Sleep(2000); Setpos(30,0); return 0; }else Sleep(1000),Win++,D=0; goto Start; }
#include<bits/stdc++.h> using namespace std; int main(){ int k; cout<<"————————————---------------------读心术魔术------------------——————————————"<<endl; cout<<"魔术开始!!!\n"; cout<<"现在请你想一个两位数,用这个两位数减去它的个位上的数字再减去十位上的数字,得到一个新的数字n,请你记住这个数字n。\n请按下回车键\n"; getchar(); cout<<"接下来请你找到数字n后面对应的字符。一定不要说出来哦!!!\n\n" ; srand(time(0));//设置随机数种子,保证每次运行的结果不一样 char c=rand()%60+65;//9的倍数对应的字符初始值 for(int i=1;i<=100;i++){ printf("%5d ",i); if(i%9==0) cout<<c<<" "; else cout<<(char)(rand()%61+65)<<" "; if(i%5==0) cout<<"\n";//每5个换一行 } cout<<"\n接下来就是见证奇迹的时刻了!:\n请按下回车键\n"; getchar(); cout<<"你心里想的字符是:"<<c<<endl; cout<<"怎么样,很神奇吧!你以为这就完了吗,nonono。接下来还有更神奇的事情,我还能猜到你算出来的数字n,你信不信?"<<endl; cout<<"现在请回答我,数字n的个位数字减去十位数字等于多少,如果不够减就是负数哦!!!\n"; cout<<"请你输入算出的这个值:"; cin>>k; cout<<"\n见证奇迹的时刻又到了!!!\n你的数字n是:"<<(9-(9+k)/2)*10+(9+k)/2; cout<<"\n\n好啦,本次的读心术程序就分享到这儿,其实我还有个终极读心术,能够猜到你最开始想的两位数!\n欲知后事如何,请听下回分解!"; return 0; }
三国杀
#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; } }
-
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework.
题目标签
- 循环嵌套
- 12
- GESP二级
- 11
- 循环结构
- 7
- 驾轻就熟
- 6
- 略有小成
- 5
- GESP
- 5
- 搜索
- 4
- 枚举
- 4
- 二维数组
- 2
- 递归
- 2
- 电子学会三级
- 2
- 二级
- 2
- while循环
- 1
- 电子学会一级
- 1
- 数位拆分
- 1