#include <bits/stdc++.h>
#include <windows.h>
using namespace std;
void movexy(short x, short y){
COORD position={x, y};
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, position);
}
int main(){
movexy(37, 7);
cout<<"反电子教室系统"<<endl;
cout<<endl;
cout<<" 目前可以反击:"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
cout<<" 红蜘蛛多媒体网络教室 - 输入 k-rs即可反击"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
cout<<" 极域电子教室 - 输入 k-jy即可反击"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
cout<<" 伽卡他卡电子教室 - 输入 k-yk即可反击"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
cout<<" 如果在开启本程序后关闭本程序,"<<endl;
cout<<" 本次反击将无效!"<<endl;
cout<<" input >>> ";
string s;
cin>>s;
if(s=="k-rs"){
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
cout<<" 红蜘蛛反击系统启动成功"<<endl;
Sleep(1000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
while(1)
{
system("taskkill /f /t /im REDAgent.exe");
system("cls");
}
}
if(s=="k-jy"){
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11);
cout<<" 极域反击系统启动成功"<<endl;
Sleep(1000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
while(1)
{
system("taskkill /f /t /im StudentMain.exe");
system("cls");
}
}
if(s=="k-yk"){
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
cout<<" 伽卡他卡反击系统启动成功"<<endl;
Sleep(1000);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
while(1){
system("taskkill /f /t /im Student.exe");
system("cls");
}
}
return 0;
}
《唐诗三百首》 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.慈母手中剑,游子身上劈。一秒十八剑,刀刀出暴击。父看子未凉,掏出七匹狼。子看七匹狼,瞬间透心凉。透心凉,心飞扬,果冻我要喜之郎。
语文老师一回头,此地空杀黄鹤楼 数学老师一回头,二次函数对称轴 英语老师一回头,sorry加上3克油 历史老师一回头,世界大战再回首 体育老师一回头,乔丹改打乒乓球 信竞老师一回头,带着学生玩网游 化学老师一回头,二氧化碳变汽油 音乐老师一回头,打着节拍摇着头 物理老师一回头,阿基米德要跳楼 地理老师一回头,校门发生泥石流 美术老师一回头,蒙娜丽莎也风流 生物老师一回头,全班同学都梦游 政治老师一回头,人类发展到尽头 全体老师一回头,从此宇宙无地球
1.木兰辞
唧唧复唧唧,木兰当户织。不闻机杼声,唯闻女叹息。
问女何所思,问女何所忆。女亦无所思,女亦无所忆。昨夜见军帖,可汗大点兵,军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄,愿为市鞍马,从此替爷征。
东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。旦辞爷娘去,暮宿黄河边,不闻爷娘唤女声,但闻黄河流水鸣溅溅。旦辞黄河去,暮至黑山头,不闻爷娘唤女声,但闻燕山胡骑鸣啾啾。
万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。
归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎,愿驰千里足,送儿还故乡。
爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西阁床,脱我战时袍,著我旧时裳。当窗理云鬓,对镜帖花黄。出门看火伴,火伴皆惊忙:同行十二年,不知木兰是女郎。
雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雄雌?
译文:
叹息声一声接着一声,木兰姑娘当门在织布。织机停下来不再作响,只听见姑娘在叹息。
问姑娘在思念什么,问姑娘在惦记什么。我也没有在想什么,也没有在惦记什么。昨夜看见征兵的文书,知道君王在大规模征募兵士,那么多卷征兵文书,每卷上都有父亲的名字。父亲没有长大成人的儿子,木兰没有兄长,木兰愿意去买来马鞍和马匹,从此替父亲去出征。
到各地集市买骏马,马鞍和鞍下的垫子,马嚼子和缰绳,马鞭。早上辞别父母上路,晚上宿营在黄河边,听不见父母呼唤女儿的声音,但能听到黄河汹涌奔流的声音。早上辞别黄河上路,晚上到达黑山(燕山)脚下,听不见父母呼唤女儿的声音,但能听到燕山胡兵战马啾啾的鸣叫声。
行军万里奔赴战场作战,翻越关隘和山岭就像飞过去一样快。北方的寒风中传来打更声,清冷的月光映照着战士们的铠甲。将士们经过无数次出生入死的战斗,有些牺牲了,有的十年之后得胜而归。
归来朝见天子,天子坐上殿堂(论功行赏)。记功木兰最高一等,得到的赏赐千百金以上。天子问木兰有什么要求,木兰不愿做尚书省的官,希望骑上一匹千里马,送我回故乡。
父母听说女儿回来了,互相搀扶着出城(迎接木兰)。姐姐听说妹妹回来了,对门梳妆打扮起来。小弟弟听说姐姐回来了,霍霍地磨刀杀猪宰羊。打开我闺房东面的门,坐在我闺房西面的床上,脱去我打仗时穿的战袍,穿上我姑娘的衣裳,当着窗子整理像云一样柔美的鬓发,对着镜子在额上贴好花黄。出门去见同营的伙伴,伙伴们都很吃惊,同行数年之久,竟然不知道木兰是女孩子。
雄兔两只脚时常动弹,雌兔两只眼时常眯着(所以容易辨别)。雄雌两只兔子一起并排着跑时,怎能辨别出哪只是雄兔,哪只是雌兔?
2.琵琶行
浔阳江头夜送客,枫叶荻花秋瑟瑟。主人下马客在船,举酒欲饮无管弦。醉不成欢惨将别,别时茫茫江浸月。
忽闻水上琵琶声,主人忘归客不发。寻声暗问弹者谁,琵琶声停欲语迟。移船相近邀相见,添酒回灯重开宴。千呼万唤始出来,犹抱琵琶半遮面。转轴拨弦三两声,未成曲调先有情。弦弦掩抑声声思,似诉平生不得志。低眉信手续续弹,说尽心中无限事。轻拢慢捻抹复挑,初为《霓裳》后《六幺》。大弦嘈嘈如急雨,小弦切切如私语。嘈嘈切切错杂弹,大珠小珠落玉盘。间关莺语花底滑,幽咽泉流冰下难。冰泉冷涩弦凝绝,凝绝不通声暂歇。别有幽愁暗恨生,此时无声胜有声。银瓶乍破水浆迸,铁骑突出刀枪鸣。曲终收拨当心画,四弦一声如裂帛。东船西舫悄无言,唯见江心秋月白。
沉吟放拨插弦中,整顿衣裳起敛容。自言本是京城女,家在虾蟆陵下住。十三学得琵琶成,名属教坊第一部。曲罢曾教善才服,妆成每被秋娘妒。五陵年少争缠头,一曲红绡不知数。钿头银篦击节碎,血色罗裙翻酒污。今年欢笑复明年,秋月春风等闲度。弟走从军阿姨死,暮去朝来颜色故。门前冷落鞍马稀,老大嫁作商人妇。商人重利轻别离,前月浮梁买茶去。去来江口守空船,绕船月明江水寒。夜深忽梦少年事,梦啼妆泪红阑干。
我闻琵琶已叹息,又闻此语重唧唧。同是天涯沦落人,相逢何必曾相识!我从去年辞帝京,谪居卧病浔阳城。浔阳地僻无音乐,终岁不闻丝竹声。住近湓江地低湿,黄芦苦竹绕宅生。其间旦暮闻何物?杜鹃啼血猿哀鸣。春江花朝秋月夜,往往取酒还独倾。岂无山歌与村笛?呕哑嘲哳难为听。今夜闻君琵琶语,如听仙乐耳暂明。莫辞更坐弹一曲,为君翻作《琵琶行》。感我此言良久立,却坐促弦弦转急。凄凄不似向前声,满座重闻皆掩泣。座中泣下谁最多?江州司马青衫湿。
译文:
秋夜我到浔阳江头送一位归客,冷风吹着枫叶和芦花秋声瑟瑟。我和客人下马在船上饯别设宴,举起酒杯要饮却无助兴的音乐。酒喝得不痛快更伤心将要分别,临别时夜茫茫江水倒映着明月。
忽听得江面上传来琵琶清脆声;我忘却了回归客人也不想动身。寻着声源探问弹琵琶的是何人?琵琶停了许久却迟迟没有动静。我们移船靠近邀请她出来相见;叫下人添酒回灯重新摆起酒宴。千呼万唤她才缓缓地走出来,怀里还抱着琵琶半遮着脸面。转紧琴轴拨动琴弦试弹了几声;尚未成曲调那形态就非常有情。弦弦凄楚悲切声音隐含着沉思;似乎在诉说着她平生的不得志;她低着头随手连续地弹个不停;用琴声把心中无限的往事说尽。轻轻地拢,慢慢地捻,一会儿抹,一会儿挑。初弹《霓裳羽衣曲》接着再弹《六幺》。大弦浑宏悠长嘈嘈如暴风骤雨;小弦和缓幽细切切如有人私语。嘈嘈声切切声互为交错地弹奏;就像大珠小珠一串串掉落玉盘。琵琶声一会儿像花底下宛转流畅的鸟鸣声,一会儿又像水在冰下流动受阻艰涩低沉、呜咽断续的声音。好像水泉冷涩琵琶声开始凝结,凝结而不通畅声音渐渐地中断。像另有一种愁思幽恨暗暗滋生;此时闷闷无声却比有声更动人。突然间好像银瓶撞破水浆四溅;又好像铁甲骑兵厮杀刀枪齐鸣。一曲终了她对准琴弦中心划拨;四弦一声轰鸣好像撕裂了布帛。东船西舫人们都静悄悄地聆听;只见江心之中映着白白秋月影。
她沉吟着收起拨片插在琴弦中;整顿衣裳依然显出庄重的颜容。她说我原是京城负有盛名的歌女;老家住在长安城东南的虾蟆陵。弹奏琵琶技艺十三岁就已学成;教坊乐团第一队中列有我姓名。每曲弹罢都令艺术大师们叹服;每次妆成都被同行歌妓们嫉妒。京都豪富子弟争先恐后来献彩;弹完一曲收来的红绡不知其数。钿头银篦打节拍常常断裂粉碎;红色罗裙被酒渍染污也不后悔。年复一年都在欢笑打闹中度过;秋去春来美好的时光白白消磨。兄弟从军老鸨死家道已经破败;暮去朝来我也渐渐地年老色衰。门前车马减少光顾者落落稀稀;青春已逝我只得嫁给商人为妻。商人重利不重情常常轻易别离;上个月他去浮梁做茶叶的生意。他去了留下我在江口孤守空船;秋月与我作伴绕舱的秋水凄寒。更深夜阑常梦少年时作乐狂欢;梦中哭醒涕泪纵横污损了粉颜。
我听琵琶的悲泣早已摇头叹息;又听到她这番诉说更叫我悲凄。我们俩同是天涯沦落的可悲人;今日相逢何必问是否曾经相识!自从去年我离开繁华长安京城;被贬居住在浔阳江畔常常卧病。浔阳这地方荒凉偏僻没有音乐;一年到头听不到管弦的乐器声。住在湓江这个低洼潮湿的地方;第宅周围黄芦和苦竹缭绕丛生。在这里早晚能听到的是什么呢?尽是杜鹃猿猴那些悲凄的哀鸣。春江花朝秋江月夜那样好光景;也无可奈何常常取酒独酌独饮。难道这里就没有山歌和村笛吗?只是那音调嘶哑粗涩实在难听。今晚我听你弹奏琵琶诉说衷情,就像听到仙乐眼也亮来耳也明。请你不要推辞坐下来再弹一曲;我要为你创作一首新诗《琵琶行》。被我的话所感动她站立了好久;回身坐下再转紧琴弦拨出急声。凄凄切切不再像刚才那种声音;在座的人重听都掩面哭泣不停。要问在座之中谁流的眼泪最多?我江州司马泪水湿透青衫衣襟!
我是奶龙
我是奶龙
我才是奶龙
今夜星光闪闪
我爱你的心满满
想你一晚又一晚
把爱你的心都填满
想吃爱情的苦
做你的小公主
月亮不睡我不睡
我是人间小美味
先擦鼻涕后提裤
后提裤 后提裤
从此走向社会步
社会步 社会步
先擦鼻涕后提裤
先擦鼻涕后提裤
从此走向社会步
从此走向 发岁
************拒绝试卷************
试卷,一种新型毒品
多呈白色,常见于学校
现已使无数学校上瘾,丧心病狂
使无数学霸沉迷其中,无法自拔
使无数学渣失眠多梦,头晕眼花
它破坏了多少个家庭的和谐
为了它能使一个考生跳楼自杀
又在毒害着多少人的精神世界……
远离试卷,从娃娃抓起
杜绝试卷,从我做起
生苦瓜,一种毒品
多呈绿色,常见于菜市场
现已使无数人上瘾,丧心病狂
使无数大人沉迷其中,无法自拔
使无数小孩失眠多梦,头晕眼花
它破坏了多少个家庭的和谐
为了它能使一个小孩被苦死
又在毒害着多少人的味蕾世界
远离生苦瓜,从味蕾抓起
杜绝生黄瓜,从我做起
没有买卖,就没有苦害
考试不翻书,简直是头猪。
作弊不要慌,逮到就要装。
生是中国人,死是中国魂。
要我学洋文,死都不可能。
抢饭不积极,智商有问题。
上课不放屁,肠道有问题。
英语不及格,说明我爱国。
语文不及格,恋爱没资格。
物理不及格,电死不负责。
化学不及格,硫酸也喝得。
政治不及格,老师没道德。
信息不及格,网吧要打折。
数学不及格,突出我性格。
历史不及格,社会要改革。
全科不及格,老妈动真格。
有才的家长:
⑴
“隔壁小明玩游戏吗?” “玩!”
“他成绩好吗?” “好!”
“你知道他为啥玩游戏吗?因为他学习好!”
⑵
“隔壁小明玩游戏吗?” “玩!”
“他成绩好吗?” “不好!”
“你知道他为啥成绩差吗?因为他打游戏!”
⑶
“隔壁小明玩游戏吗?” “不玩!”
“他成绩好吗?” “好!”
“你知道他为啥成绩好吗?因为他不打游戏!”
⑷
“隔壁小明玩游戏吗?” “不玩!”
“他成绩好吗?” “不好!”
“你知道他为啥不打游戏吗?因为他知道自己成绩差!”
顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶 顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶 顶顶顶 顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶 顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶 顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶 顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶 顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶 顶顶顶顶顶顶 顶顶顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶顶顶 顶顶顶 顶顶顶顶 顶顶顶顶顶
顶顶 顶顶顶顶顶 顶顶顶 顶顶顶 顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶 顶顶 顶顶 顶顶顶顶顶
顶顶顶顶顶顶顶顶顶 顶顶顶 顶顶顶顶
顶顶顶顶顶顶顶 顶顶顶 顶顶顶顶
顶顶顶顶顶顶 顶顶顶顶 顶顶顶顶
顶顶顶 顶顶顶顶顶 顶顶顶顶顶顶顶
顶顶顶顶顶顶 顶顶顶顶顶顶
顶顶顶顶顶顶 顶顶顶顶顶顶顶
顶顶顶顶顶 顶顶顶顶顶顶
顶顶顶顶顶 顶顶顶顶
顶顶顶 顶顶顶
叽叽复叽叽,公鸡泡母鸡。
考试够刺激,答题靠心机。
上课听不懂,都怪老古董。
老师废话多,麻烦又啰嗦。
生是中国人,死是中国魂。
要我学英文,根本不可能。
至今思项羽,不会说英语。
考试考得好,全靠同桌好。
考试考不好,同桌做不好。
天天上学愁更愁,老师讲课无离头;
听得我就像梦游,次次批评无理由;
功课多得想报仇,作业做得傻了头;
光阴不似箭,日月不如梭。
功课全靠抄,不然就不交。
上学等放学,放学就过节。
一年又一年,此意恨缠绵。
同学本是同班鸟,一到放学各自飞,一天就这样OK~··· 东风吹,战鼓擂,现今世界谁怕谁。
只因南风吹,雨微微,全怪自己太会吹。
天苍苍,野茫茫,作文纸上见四行。
#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<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;
}
}
《Minecraft我的世界》操作相当简单。具体如下(可在设定里自定义):
鼠标左键 - 攻击/使用工具
鼠标右键 - 打开箱子/放置物品
W - 前进
S - 后退
A - 左平移
D - 右平移
空格 - 跳跃
左Shift - 潜行
Q - 丢弃物品
I - 打开物品栏
T - 聊天
F - 雾化范围
F5 - 切换第一/第三人称
F11 - 切换全屏
A
/ascend (提升到一个平台)
B
/bind<命令>(设置命令快捷键)
/blockdata(修改某个方块的数据标签)
/backup(运行备份)
/ban(添加一个玩家到黑名单)
/ban-ip(添加一个ip到黑名单)
/banlist(显示你的黑名单)
/butcher(杀死附近所有的怪物)
C) /clear(清空背包)
/clone(将某个方块复制到某个位置)
D /daylock(开启或关闭日夜循环)
/difficulty(设置游戏难度,0和平,1简单,2普通,3困难)
/damage(开启或关闭伤害)
/descend(下降到一个平台)
/dupe [all](复制物品)
/destroy [all](破坏背包里的物品)
/defuse [all](拆掉点燃了的TNT)
/drops(开启或关闭物品掉落)
/duplicate [all](复制当前手中物品并丢出)
/deop(将某个玩家的管理员身份撤销)
E /explode [范围](使指定范围产生爆炸)
/effect(获得或移除某效果)
/ext [all](熄灭周围的火焰)
/enchant(附魔某个玩家的某个物品)
F /fly(飞行)
/freeze(冻结所有怪物)
/fill(用某种方块填满某块区域)
/forestgen(在身旁形成森林)
/falldamage(高空掉落是否造成伤害)
G /give(玩家)<物品> [数量] (给某个玩家某种数量的某种物品,给自己时则不需要输玩家名)
/goto<某地名>(直接去某个地方)
/gamemode(设置游戏模式)
/gamerule ture/false(开启或关闭某种游戏规则)
/gamerule pvp(开启或关闭玩家之间的伤害)
/gamerule doMobLoot(开启或关闭生物掉落物品)
/gamerule doMobSpawning(开启或关闭生物自然生成)
/gamerule doWeatherCycle(开启或关闭天气变化)
/gamerule keepInventory(开启或关闭死亡不掉落,你们最想要的东西)
/gamerule naturalRegeneration false(UHC,指超极限)
依次输入以下指令:/gamerule naturalRegeneration false /time set 18000 /gamerule doDaylightCycle false(永夜UHC,最难生存,能玩下来的都是鬼才)
/grow(生长达到满)
H
/help(命令帮助)
/heal(为某人补指定的血)
/health(设置血量)
/home(回到你的出生点)
I /i <物品代码> [数量](给玩家指定数量的物品,物品代码大全下面会给)
/invsee(查看某人的背包)
/itemstack <物品代码> [数量](同上)
/instantmine(即时挖矿)
/itemname(显示当前手上的物品名称)
J /jump(瞬移到光标所指处)
K
/kill(自杀)
/kick(将某位玩家踢出房间)
/killnpc [all](杀掉周围所有的NPC)
L /lexburner(用爱发电&一方通行)
/light(开关光照)
/list(列出玩家列表)
/lingtning(超电磁炮)
/lingtning(雷击,若不输入名字则雷会劈到你的光标所指处)
/locate(寻找遗迹或村庄)
/listwaypoints(列出所有路径点)
M
/mute(将某人禁言)
/me(显示你自己的信息)
/msg <消息>(私聊)
/maxstack [物品ID|物品名称|全部] [数量](最大堆叠物品)
/macro <文件名> {参数}(允许运行宏)
/mmoedit name skname rank(如果你安装了MCRPG插件,那么你可以使用这个命令改变某位玩家的某项技能级别)
N /nick ID(给某人改名)
/noclip(穿墙)
O
/op(给予某位玩家管理员身份)
P
/p(显示当前的坐标)
/pumpkins(在自己身旁形成南瓜林)
/pardon(从黑名单移除某位玩家或某个ip)
/pos(显示当前所有玩家的坐标)
/particle(制造颗粒效果)
/playsound(播放某个游戏音效)
/publish(对局域网开放单人世界)
Q 暂无
R
/reach(到指定的地方)
/replaceitem(替换物品栏中的物品)
/return(传送到上一次传送的地方)
/removedrops [all](删掉地上的所有物品)
/rename(修改某命令的名称)
/rem(删除指定路点)
/repair [all](当前手持物品耐久回满)
/reset(恢复所有默认设置)
S /surprise mother f**k
/stop(停止服务器运行)
/seen name(查看某位玩家最后退出的时间)
/search <关键词>(搜索某物品名)
/save-all(将服务器保存至硬盘中)
/save-off(禁用服务器自动保存)
/save-on(开启服务器自动保存)
/set <名字>(在这个世界标记一个路径点)
/say(向其他玩家显示一条信息)
/setjump [JUMP|reset](设置跳跃的高度 落地伤害和移动 1:1)
/setspawn [ X,Y,Z轴 ](设置当前位置)
/scoreboard(管理玩家或队伍)
/seed(显示此世界种子)
/setspeed [速度|重置](设置移动速度)
/spawn(产生某个生物)
/setblock(将一个方块变成另一个方块)
/setidletimeout(设置自动踢出挂机玩家的时间)
/spawnstack {NAME|ID|random}(产生一个合体的怪物NPC)
/setworldspawn(设置出生点)
/spawnpoint(设置某位玩家的出生点)
/summon(生成某个实体)
/snow(在自己附近生成下雪后的样子)
/stats(通过命令的返回改变计分板对象)
T
/tele(传送到某坐标)
/thaw(融化所有雪和冰块)
/title(设置屏幕标题)
/tp [玩家名](传送到某玩家的位置)
/tp name1 name2(把玩家1传送到玩家2的位置)
/tphere(把某位玩家传送到自己的位置)
/tpall(将当前所有玩家传送到自己的位置)
/tell(向某玩家发起私聊)
/tellraw(向其他玩家显示一条JSON信息)
/time [set|get|day|night [minute|hour|day [TIME]]](设置在指定时间得到某物品)
/timeschedule(设定一段时间,并且当前世界将永远保持着这段时间)
/testfor(计算特定条件的实体数)
/time(修改或查询当前世界时间)
/tree(生成一棵树)
/testforblock(探测某一个方块是否在某一个位置)
/testforblocks(探测某两个区域内的方块是否匹配)
/trigger(设置触发装置的激活状态)
U /up[高度](将自己提升到某个高度)
/unbind(撤销某个命令)
/unlimited id(给自己某个物品【无限】)
/useportal(传送到下界)
V 暂无
W /wtf?
/weather(设置天气)
/waterdamage(开关水下伤害)
/world(当前世界信息)
/world load(加载指定的文件)
/world save(保存并退出)
/world exit(不保存并退出)
/world list(列出所有存档)
/whitelist(列出白名单)
/worldborder(管理世界边界)
X /xp(增加或移除某位玩家的经验值)
Y 暂无
Z 暂无
下面是物品代码(基本全是图片)
作者:空梦Sakura https://www.bilibili.com/read/cv5499397 出处:bilibili
我的世界里面,房子是个非常重要的东西,也是生存必须的物品,很多时候可以抵挡住怪物的侵袭,不过对于房子的功能性,玩家可以通过后期的发展来完善,下面是游戏中最简单的房子制作方法。
最简单房子制作方法
游侠网
一个普通的房子几分钟搞定。
下面是制作方法
[游侠网](file:///C:/Documents%20and%20Settings/Administrator/%E6%A1%8C%E9%9D%A2/%E4%B8%80%E9%94%AE%E6%8E%92%E7%89%88/lib/[object])
先建宽9格长10格。
游侠网
然后高4格,中间开两个洞放门。
游侠网
我的世界 基本合成
名称 材料 合成示意图 描述
木板 Wooden Planks 原木 Wood 游侠网 基本的建筑材料.
木棍 Sticks 木板 Wooden Planks 游侠网 用来合成火把,弓箭,栅栏,木牌,工具和武器.
火把 Torches 煤碳和木棍 Coal & Stick 游侠网 提供照明,避免刷怪,融化雪和冰块.
工作台 Crafting Table 木板 Wooden Planks 游侠网 右键点击展开一个3X3的合成台.
熔炉 Furnace 圆石 Cobblestone 游侠网 用来烧制烹饪物品.
箱子 Chest 木板 Wooden Planks 游侠网 存放物品、迷路时暂存身上物品,两个箱子并排放可以增加存放空间.
梯子 Ladders 木棍 Sticks 游侠网 用来爬墙.
栅栏 Fence 游侠网 不跨越栅栏,别墅内的隔栏(装饰品)、防止跌落.
船 Boat 木板 Wooden Planks 游侠网 在水中行驶.
木质台阶 Wooden Slabs 游侠网 用于建造台阶、屋檐、窗台等.
石质台阶 Stone Slabs 石头,砖,石砖,砂石,圆石,地狱砖,石英 Stone or Brick or Stone Brick or Sandstone or Cobblestone or Nether Brick or Quartz 游侠网
告示牌 Sign 木板和木棍 Wooden Planks & Stick 游侠网 门牌、路标、告示牌、贴在楼梯两侧可组成沙发.
门 Doors 木板或者铁锭 Wooden Planks or Iron Ingots 游侠网 木门能够用手打开或者红石系统打开. 铁门只能用红石系统打开.
方块合成
名称 材料 合成示意图 描述
萤石块 Glowstone 萤石粉 Glowstone Dust 游侠网 能够用于水下照明.
雪块 Snow Block 雪球 Snowballs 游侠网 建筑材料.
TNT 火药和沙子 Gunpowder & Sand 游侠网 爆炸物.
粘土块 Clay Block 粘土 Clay 游侠网 建筑材料.
砖块 Brick Block 红砖 Clay Bricks 游侠网 坚硬的建筑材料.
书架 Bookshelf 木板和书本 Wooden Planks & Books 游侠网 装饰和附魔.
沙石 Sandstone Block 沙子 Sand 游侠网 建筑材料.
平滑沙石 Smooth Sandstone 沙石 Sandstone Block 游侠网
錾制 Decorative Sandstone 沙质台阶 Sandstone Slabs 游侠网
音符盒 Note Block 木板和红石 Wooden Planks & Redstone 游侠网 当点击时发出音符.
南瓜灯 Jack-O Lantern 南瓜和火把 Pumpkin & Torch 游侠网 光源.
青金石块 Lapis Lazuli Block 青金石染料 Lapis Lazuli Dye 游侠网 存储青金石染料.
钻石块 Diamond Block 钻石 Diamonds 游侠网 存储钻石.
金块 Gold Block 金锭 Gold Ingots 游侠网 存储金锭.
铁块 Iron Block 铁锭 Iron Ingots 游侠网 存储铁锭.
绿宝石块 Emerald Block 绿宝石 Emeralds 游侠网 存储绿宝石.
石砖 Stone Brick 石头 Stone 游侠网 建筑材料.
木质楼梯 Wooden Stairs 木板 Wooden Planks 游侠网 做楼梯.
石质楼梯 Stone Stairs 圆石,沙,砖石,石砖,地狱砖,石英Cobblestone or Sandstone or Brick or Stone Brick or Nether Brick or Quartz 游侠网
圆石墙 Cobblestone Wall 圆石或者苔石 Cobblestone or Moss Stone 游侠网 类似于栅栏的作用.
红石块 Block of Redstone 红石 Redstone 游侠网 红石电源.
地狱砖块 Nether Brick 地狱砖 Nether Brick (Item) 游侠网 建筑材料.
石英块 Block of Quartz 下界石英 Nether Quartz 游侠网
錾制石英块 Chiseled Quartz Block 石英台阶 Quartz Slabs 游侠网
竖纹石英块 Pillar Quartz Block 石英块 Block of Quartz 游侠网
工具合成
Name Ingredients Image Description
镐 Pickaxe 木棍加木板或圆石或铁锭或金锭或钻石 Sticks & Wooden Planks or Cobblestone or Iron Ingots or Gold Ingots or Diamonds 游侠网 挖方块和资源.
斧头 Axes 游侠网 比用拳头砍树快.
锹 Shovels 游侠网 用来挖沙子,沙砾,图,草和雪.
锄 Hoes 游侠网 用来锄地.
钓鱼竿 Fishing Rod 木棍和线 Sticks & String 游侠网 钓鱼.
打火石 Flint & Steel 铁锭和燧石 Iron Ingot & Flint 游侠网 生火.
指南针 Compass 铁锭和红石 Iron Ingots & Redstone 游侠网 指向出生点.
钟 Clock 金锭和红石 Gold Ingots & Redstone 游侠网 显示时间和白天黑夜.
铁桶 Bucket 铁锭 Iron Ingots 游侠网 用来装水,岩浆,牛奶.
剪刀 Shears 游侠网 用来剪羊毛和树叶
防具合成
名称 材料 合成示意图 描述
头盔 Helmet 皮革或铁锭或金锭或钻石 Leather or Iron Ingots or Gold Ingots or Diamonds 游侠网 提供1.5护甲值(钻石).
胸甲 Chestplate 游侠网 提供4点护甲值(钻石).
护腿 Leggings 游侠网 提供3点护甲值(钻石).
靴子 Boots 游侠网 提供1.5点护甲值(钻石).
剑 Sword 木棍加上木板或圆石或铁锭或金锭或钻石 Sticks & Wooden Planks or Cobblestone or Iron Ingots or Gold Ingots or Diamonds 游侠网 对怪物造成更多的伤害.
弓 Bow 线和木棍 String & Sticks 游侠网 射箭.
箭 Arrow 燧石和木棍和羽毛 Flint & Stick & Feather 游侠网 箭.
道具合成
名称 材料 合成示意图 描述
压力版 Pressure Plates 木板或石头 Wooden Planks or Stone 游侠网 有生物或玩家站在上面时会发出红石信号.
活板门 Trapdoor 木板 Wooden Planks 游侠网 可以通过右键点击和红石打开.
栅栏门 Fence Gate 木板和木棍 Wooden Planks & Sticks 游侠网 可以像门一样被打开.
按钮 Button 石头或者木板 Stone or Wooden Plank 游侠网 按下的时候发送一个短的红石信号.
拉杆 Lever 木棍和圆石 Stick & Cobblestone 游侠网 通过开关来控制红石信号的输出.
中继器 Redstone Repeater 石头,红石火把,红石和石头 Stone & Redstone Torch & Redstone 游侠网 红石电路的二极管或者延时器.
红石火把 Redstone Torch 木棍和红石 Stick & Redstone 游侠网 不间断发送红石信号.
唱片机 Jukebox 木板和钻石 Wooden Planks & Diamond 游侠网 播发唱片.
发射器 Dispenser 圆石,弓和红石 Cobblestone & Bow & Redstone 游侠网 开启的适合发射物品.
活塞 Piston 木板,原始,铁锭和红石 Wooden Planks & Cobblestone & Iron Ingot & Redstone 游侠网 推动方块.
粘性活塞 Sticky Piston 活塞和史莱姆球 Piston & Slime Ball 游侠网 推拉方块.
矿车 Minecart 铁锭 Iron Ingots 游侠网 在铁轨上行驶.
动力矿车 Powered Minecart 矿车和熔炉 Minecart & Furnace 游侠网 烧碳来产生能量推动其他矿车前进.
运输矿车 Storage Minecart 矿车和箱子 Minecart & Chest 游侠网 通过铁路运送材料和物资.
铁轨 Rail 铁锭和木棍 Iron Ingots & Stick 游侠网 铁轨.
充能铁轨 Powered Rail 金锭,木棍和红石 Gold Ingots & Stick & Redstone 游侠网 被激活的时候加速矿车.
探测铁轨 Detector Rail 铁锭,石质压力板和红石 Iron Ingots & Stone Pressure Plate & Redstone 游侠网 矿车在其上面经过时产生红石信号.
红石灯 Redstone Lamp 红石和萤石块 Redstone & Glowstone Block 游侠网 照明设施,需红石能量激活.
绊线 Tripwire Hook 铁锭,木棍和木板 Iron Ingot & Stick & Wooden Plank 游侠网 通过时产生红石信号.
激活铁轨 Activator Rail 铁锭,木棍和红石火把 Iron Ingots & Sticks & Redstone Torch 游侠网 常用来激活TNT矿车和漏斗矿车.
阳光传感器 Daylight Sensor 玻璃,下界石英和木板 Glass & Nether Quartz & Wooden Slabs 游侠网 拜托发出红石信号.
投掷器 Dropper 圆石和红石 Cobblestone & Redstone 游侠网 扔出物品(类似发射器).
漏斗 Hopper 铁锭和箱子 Iron Ingots & Chest 游侠网 物品通过漏斗在箱子中移进或者移出.
漏斗矿车 Minecart with Hopper 漏斗和矿车 Hopper & Minecart 游侠网 类似漏斗的功能.
TNT矿车 Minecart with TNT TNT和矿车 TNT & Minecart 游侠网 通过激活的铁道发生爆炸或者手动爆炸.
红石比较器 Redstone Comparator 红石火把,原始和下界石英 Redstone Torches & Stone & Nether Quartz 游侠网 仅在红石电路中使用.
陷进箱 Trapped Chest 箱子和绊线 Chest & Tripwire Hook 游侠网 打开箱子的适合发出红石信号.
测重压力板 Weighted Pressure Plates 铁锭或者金锭 Iron Ingots or Gold Ingots 游侠网 类似普通的压力板,但是只能用物品激活. 物品的数量绝对红石信号的强度.
食物合成
名称 材料 合成示意图 描述
碗 Bowl 木板 Wooden Planks 游侠网 装蘑菇煲.
蘑菇煲 Mushroom Stew 碗,红蘑菇和棕色蘑菇Bowl & Red Mushroom & Brown Mushroom 游侠网 恢复4点饥饿值.
面包 Bread 小麦 Wheat 游侠网 恢复2.5点饥饿值.
金苹果 Golden Apple 苹果和金粒 Apple & Gold Nuggets 游侠网 恢复2点饥饿值.
附魔金苹果 Enchanted Golden Apple 苹果和金块 Apple & Gold Blocks 游侠网 恢复2点饥饿值. 同时给予30秒的抗火属性.
糖 Sugar 甘蔗 Sugar Cane 游侠网 用来制作蛋糕.
蛋糕 Cake 牛奶桶,汤,小麦和鸡蛋 Milk Buckets & Sugar & Wheat & Egg 游侠网 每块恢复1.5饥饿值,一共6块.
曲奇 Cookies 小麦和可可豆 Wheat & Cocoa Beans 游侠网 恢复1点饥饿值.
西瓜 Melon Block 西瓜片 Melon Slice 游侠网 西瓜.
西瓜种子 Melon Seeds 游侠网 能够种植在耕地上.
南瓜种子 Pumpkin Seeds 南瓜 Pumpkin 游侠网
金胡萝卜 Golden Carrot 胡萝卜和金粒 Carrot & Gold Nuggets 游侠网 酿造原料,恢复3点饥饿值.
南瓜派 Pumpkin Pie 南瓜,鸡蛋和糖 Pumpkin & Egg & Sugar 游侠网 恢复4点饥饿值.
其他合成
名称 材料 合成示意图 描述
床 Bed 木板和羊毛 Wooden Planks & Wool 游侠网 在晚上睡觉快速度过夜晚.
画 Painting 木棍和羊毛 Sticks & Wool 游侠网 装饰.
纸 Paper 甘蔗 Sugar Cane 游侠网 用来制造地图和书本.
书 Book 纸 Paper 游侠网 用来制造书架和书与笔.
书与笔 Book and Quill 书,羽毛和墨囊 Book & Feather & Ink Sac 游侠网 能够写文章.
地图 Map 纸和指南针 Paper & Compass 游侠网 能够显示附近一块的地图.
玻璃板 Glass Pane 玻璃 Glass Blocks 游侠网 类似栅栏的窗格玻璃.
铁栏杆 Iron Bars 铁锭 Iron Ingots 游侠网 类似栅栏但是只有1个方块的高度.
金锭 Gold Ingot 金粒 Gold Nugget 游侠网 用来制造其他东西.
地狱砖栅栏 Nether Brick Fence 地狱砖块 Nether Brick 游侠网 类似普通的栅栏只不过原料不同.
末影之眼 Eye of Ender 末影珍珠和烈焰粉 Ender Pearl & Blaze Powder 游侠网 定位末地传送门.
附魔台 Enchantment Table 书,钻石和黑曜石 Book, Diamond & Obsidian. 游侠网 用来附魔工具.
火焰弹 Fire Charge 烈焰粉,碳和火药 Blaze Powder & Coal & Gunpowder 游侠网 能够通过发射器发射的火球.
末影箱 Ender Chest 黑曜石和末影之眼 Obsidian & Eye of Ender 游侠网 用于储存. 所有末影箱共享一个物品栏.
信标 Beacon 玻璃,黑曜石和下界之心 Glass & Obsidian & Nether Star 游侠网 用于放置在钻石块,金块,绿宝石块或铁块(或这四种方块的任意组合)结构的金字塔顶端,可以向天空直射光束的功能型方块.
铁跕 Anvil 铁块和铁锭 Iron Block & Iron Ingot 游侠网 修复物品和合并附魔.
花盆 Flower Pot 红砖 Bricks 游侠网 装饰.
物品展示框 Item Frame 木棍和皮革 Sticks & Leather 游侠网 放在墙上展示物品和方块.
萝卜钓竿 Carrot on a Stick 钓竿和胡萝卜 Fishing Rod & Carrot 游侠网 控制猪.
烟花火箭 Firework Rocket 火药,纸和烟火之星 Gunpowder & Paper & Firework Star 游侠网 烟花.
烟火之星 Firework Star 火药,燃料和附加物品(可选) Gunpowder & Dye & an extra ingredient (optional) 游侠网 不同的烟火之星决定不同的烟花效果.
染料合成
名称 材料 合成示意图 描述
骨粉 Bone Meal 骨头 Bone 游侠网 用来使农作物树木快速长大.
淡灰色染料 Light Gray Dye 骨粉和墨囊 Bonemeal & Ink Sac 游侠网 用于制作淡灰色羊毛.
灰色染料 Gray Dye 游侠网 用于制作灰色羊毛.
玫瑰红 Rose Red 玫瑰花 Rose 游侠网 用于制作红色羊毛.
橙色染料 Orange Dye 玫瑰红和蒲公英黄 Rose Red & Dandelion Yellow 游侠网 用于制作橙色羊毛.
蒲公英黄 Dandelion Yellow 蒲公英 Dandelion 游侠网 用于制作黄色羊毛.
黄绿色染料 Lime Dye 仙人掌绿和骨粉 Cactus Green & Bone Meal 游侠网 用于制作黄绿色羊毛.
淡蓝色染料 Light Blue Dye 青金石染料和骨粉 Lapis Lazuli Dye & Bone Meal 游侠网 用于制作淡蓝色羊毛.
青色染料 Cyan Dye 青金石染料和仙人掌绿 Lapis Lazuli Dye & Cactus Green 游侠网 用于制作青色羊毛.
紫色染料 Purple Dye 青金石染料和玫瑰红 Lapis Lazuli Dye & Rose Red 游侠网 用于制作紫色羊毛.
品红染料 Magenta Dye 粉红色染料和紫色染料 Purple Dye & Pink Dye 游侠网 用于制作品红羊毛.
粉红色染料 Pink Dye 骨粉和玫瑰红 Bone Meal & Rose Red 游侠网 用于制作粉红色羊毛.
羊毛合成
名称 材料 合成示意图 描述
羊毛 Wool 线 String 游侠网 建筑材料能被染色.
浅灰色羊毛 Light Gray Wool 羊毛和浅灰色染料 Wool & Light Gray Dye 游侠网 建筑和装饰材料.
灰色羊毛 Gray Wool 羊毛和灰色染料 Wool & Gray Dye 游侠网
黑色羊毛 Black Wool 羊毛和墨囊 Wool & Ink Sac 游侠网
红色羊毛 Red Wool 羊毛和玫瑰红 Wool & Rose Red 游侠网
橙色羊毛 Orange Wool 羊毛和橙色染料 Wool & Orange Dye 游侠网
黄色羊毛 Yellow Wool 羊毛和蒲公英黄 Wool & Dandelion Yellow 游侠网
黄绿色羊毛 Lime Wool 羊毛和黄绿色染料 Wool & Lime Dye 游侠网
绿色羊毛 Green Wool 羊毛和仙人掌绿 Wool & Cactus Green 游侠网
淡蓝色羊毛 Light Blue Wool 羊毛和淡蓝色染料 Wool & Light Blue Dye 游侠网
青色羊毛 Cyan Wool 羊毛和青色染料 Wool & Cyan Dye 游侠网
蓝色羊毛 Blue Wool 羊毛和青金石染料 Wool & Lapis Lazuli Dye 游侠网
紫色羊毛 Purple Wool 羊毛和紫色染料 Wool & Purple Dye 游侠网
品红色羊毛 Magenta Wool 羊毛和品红色染料 Wool & Magenta Dye 游侠网
粉红色羊毛 Pink Wool 羊毛和粉红色染料 Wool & Pink Dye 游侠网
棕色羊毛 Brown Wool 羊毛和可可豆 Wool & Cocoa Beans 游侠网
刷铁机
https://www.bilibili.com/video/BV1z84y147tj/?spm_id_from=333.337.search-card.all.click