-
个人简介
加入我的洛谷团队吧
我赌你肯定不敢大声用普通话念出这首诗:
卧春
[宋] 陆游
暗梅幽闻花,
卧枝伤恨底。
遥闻卧似水,易透达春绿。
岸似绿,
岸似透绿,
岸似透黛绿。
暴力出奇迹,骗分过样例。
数学先打表,DP看运气。
穷举TLE,递推UKE。
模拟MLE,贪心还CE。
想要骗到分,就要有方法。
图论背模板,数论背公式。
动规背方程,高精背代码。
如果都没背,干脆输样例。
模拟定想全,动规定找对。
贪心定证明,二分L M+1。
宜考NOIP , 小心别爆零。
班长说:走,我们去炸外星人
副班长说:这个主意不错
化学课代表负责提取氢气
英语课代表到外国购买进口爆炸材料
物理课代表负责拼装氢弹
数学课代表负责计算爆破面积
地理课代表负责策划爆破地点
信息课代表负责打倒计时爆炸代码
美术课代表负责绘画爆炸蘑菇云
历史课代表负责记录光辉场面并将其载入史册
体育课代表负责屠杀懵逼的外星人
生物课代表负责事后生态环境
音乐课代表负责奏乐安抚众人
政治课代表负责使用法律打官司
语文课代表负责乱写文章推卸责任
班主任:干得漂亮!
刷题是一种出路
枚举是一种思想
打表是一种勇气
搜索是一种信仰
剪枝是一种精神
骗分是一种日常
爆零是一种宿命
WA是一种绝望
TLE是一种痛苦
RE是一种放弃
UKE是一种无奈
屏幕在深夜微微发亮
思想在那虚树路径上彷徨
平面的向量交错生长
织成 忧伤的网
剪枝剪去我们的疯狂
SPFA 告诉我前途在何方
01 背包装下了忧伤
笑颜 溢满脸庞
键盘微凉 鼠标微凉
指尖流淌 代码千行
凸包周长 直径多长
一进考场 全都忘光
你在 OJ 上提交了千百遍
却依然不能卡进那时限
双手敲尽代码也敲尽岁月
只有我一人
写的题解
凋零在 OJ 里面
Tarjan 陪伴强连通分量
生成树完成后思路才闪光
欧拉跑过的七桥古塘
让你 心驰神往
队列进出图上的方向
线段树区间修改求出总量
可持久化留下的迹象
我们 伏身欣赏
数论算法 图论算法
高斯费马 树上开花
线性规划 动态规划
时间爆炸 如何优化
我在 OI 中辗转了千百天
却不让我看 AK 最后一眼
我用空间换回超限的时间
随重新编译
测完样例
才发现漏洞满篇
原来CE 是因选错语言
其实爆零 只因忘写文件
如果标算太难 请坚定信念
不如回头 再看一眼题面
以那暴力模拟向正解吊唁
蒟蒻的蜕变
神犇出现
终将与 AC 擦肩
屏幕在深夜微微发亮
我心在考场...
文理之战 物理x政治 “好久不见,政治。”物理微笑道。政治依然是那副波澜不惊的神色,眼底幽寂,深不可测。 他一步步地走向了政治:“身为文综最强的你,是唯一有资格成为我对手的学科。”政治从容不迫地回答道:“阁下谬赞了。”声音低沉如故。 物理只觉得恶心。 政治生着一张永远年轻的脸孔,尽管这张脸会随着岁月的变迁而改变样貌,却从未被岁月划下一丝皱纹。他习惯摆出一副沉稳谦逊的模样,可物理清楚,这个不老不死的诡异学科内里是如何老奸巨猾。 一枚硬币从物理手中脱离,完成了一次完美的自由落体运动,恰恰落在二人直线距离的中央。“正面,我先出手。”物理毫不客气地公布结果。政治微眯凤眸,唇角,是一丝不易察觉的弧度。 “力改变物体的运动状态!” 物理向一个特殊的角度有力地喝道,声波触碰到了摆在空间中的石膏几何体,大大小小的几何体忽然开始缓缓地匀速直线运动起来。 “加速度正向递增。”物理双手一挥,几何体旋即向政治的方向迅速撞去。 政治的脸上没有丝毫惧色。 “爱国敬业诚信友善,富强民主文明和谐。”两道防护墙凭空腾起,挡住了石膏几何体的攻击。 “马克思主义哲学为具体科学的研究提供正确的世界观和方法论!” 刹那间,两道防护墙幻化成利刃向物理刺去。物理敏捷一闪躲过了攻击,两道利刃却穷追不舍。物理暗骂道:“该死的,竟然这么快就就启用必修四!” “理想条件下物体总保持静止或匀速直线运动!”两道利刃的速度依旧迅猛,但不再改变追击方向和加速度。物理灵巧地改变逃跑方向:“视重为零时,物体完全失重!”两道利刃撞在了一道顺空而起的墙上,哐当跌落在地。 “价格围绕价值上下波动!” 两道利刃忽然如同活了起来般,腾空而起向物理疯狂袭击,物理还没来得及躲避便被利刃划伤了背部。“贫富差距影响社会总体消费水平。” 两道利刃左右相逼,物理的身上又新添了两道伤。 该死的,这不行!再被他划两道游戏就结束了! 于是物理大声喊道:“初速度等于末速度减去加速度与时间之积!”奇迹出现了,两道利刃的主动权迅速转移到了物理的手中,“量不够,a来凑!”利刃改变运动方向,转而向政治刺去。 政治的眼底忽然闪过了一丝涟漪,但又迅速恢复了平静。“国家应以经济建设为中心,大力发展生产力。”两道利刃蓦然静止。 “AABCD。” 物理猛然诧异。他完全没有想过,政治会使用选择题答案作弊。几何体,防护墙,利刃,统统幻灭为了尘埃。 …… 物理举起了双手。 政治满意地笑了。“果然,你永远都是笑到最后的赢家。”物理不甘地看着他。 当政治转身的一瞬间,物理冷冷地道:“AC DB AB DD AD ABCD” 政治的背后迅速被划下五道裂痕。 “别忘了,物理选择题的分值比政治多得多。”
鲁迅原名李大钊,浙江周树人,是著名的法西斯音乐家,一生有2000多项发明,被称为太空步的创始人。 他拥有一个好嗓子,小学时就凭借着90分钟跑100米的优异成绩考上了新东方烹饪学校! 毕业后成功进入富士康苦心练习勃鸡, 他擅长110米栏, 左手反打技术高超,拿手全垒打,大灌篮,“后空翻180度右旋体360度后蹬地翻转720度”是他的经典动作,更难得可贵的是他落地没有水花。 他还是恶魔果实能力者,传说中的三忍之一,曾大闹天宫,后改邪归正,统一三国, 传说他有107个弟兄,个个铜头铁臂,面目狰狞,这便是羊村的起源, 他生平淡泊名利,后遇到高人阿凡达的指点,打死了白雪公主,与七个小矮人快乐的生活在一起! 并写了名侦探柯南的故事。 名侦探柯南讲述的是要成为海贼王的八神太一收服了皮卡丘并登上创界山启动光能使者打败了鲨鱼辣椒, 然后跟多啦A梦一起通过黄金十二宫收集七个葫芦娃召唤神龙复活二代火影, 但最终为了保卫M78星云而成为了羊村村长, 同蓝精灵们一起抵抗光头强的入侵的故事。
语文老师一回头, 鲁迅甘为孺子牛; 数学老师一回头, 六元六次都能求; 英语老师一回头, 满口洋文跑地球; 物理老师一回头, 一根杠杆撬地球; 化学老师一回头, 二氧化碳变汽油; 劳动老师一回头, 破铜烂铁来走秀; 体育老师一回头, 黛玉也能踢足球; 政治老师一回头, 全班同学都梦游; 地理老师一回头, 找到黄金牛不牛? 美术老师一回头, 蒙娜丽莎也风流。
数学是火,点亮物理的灯; 物理是灯,照亮化学的路; 化学是路,通向生物的坑; 生物是坑,埋葬理科生。 文言是火,点亮历史宫灯; 历史是灯,照亮社会之路; 社会是路,通向哲学大坑; 哲学是坑,埋葬文科生。
听说津津为课程烦恼 金明一家住进了新房 听说丁丁玩数字游戏 火柴棒能搭出新天地 听说校门外正在砍树 大家一起做靶形数独 听说旅行者在赚差价 潜伏者正在破译着密码 只有无尽的代码知道 津津摆脱了学习的烦恼 金明开心的走进商店 挑选着书桌和电脑 总有一种算法能够让你成功拿到分 无论是贪心还是动规或者将答案二分 思如泉涌掀起波涛又汇成一个新的算法 让所有TLE 所有MLE 激励着我们前行写代码 听说玩具小人藏眼镜 许多导弹早已逼近 听说两人在挑选客栈 火星上有能量项链 听说陶陶在采摘苹果 一只青蛙要从河边过 听说推销员走入胡同 杰瑞爬进了奶酪的小洞 只有无尽的代码知道 小人儿将眼镜藏进了书架 拦截者沉着地应对 依次将导弹击打 总有一种算法能够让你成功拿到分 无论是贪心还是动规或者将答案二分 思如泉涌掀起波涛又汇成一个新的算法 让所有TLE 所有MLE 激励着我们前行写代码 总有一种暴力能够让你成功出奇迹 无论是搜索或者打表又或者无脑枚举 思如泉涌掀起波涛又汇成一个新的算法 让所有TLE 所有MLE 激励着我们前行写代码 在上~ 啊~啊~啊~啊~
一群伟大的科学家死后在天堂里玩藏猫猫,轮到爱因斯坦抓人,他数到100睁开眼睛,看到所有人都藏起来了,只见伏特趴在不远处。爱因斯坦走过去说:“伏特,我抓住你了。” 伏特说:“不,你没有抓到我。” 爱因斯坦:“你不是伏特你是谁?” 伏特:“你看我身下是什么?” 爱因斯坦低头看到在伏特身下,居然是安培! 伏特:“我身下是安培,我俩就是伏特/安培,所以你抓住的不是我,你抓住的是欧姆!” 爱因斯坦反应迅速,于是改口喊,“欧姆,我抓住你了!” 可是伏特和安培毕竟是欧姆的好哥们,于是,伏特和安培一个鱼跃站了起来,但是仍然紧紧抱在一起,爱因斯坦大惑。 他俩不紧不慢地说,现在,我们不再是欧姆,而是伏特×安培, 变成瓦特了。 爱因斯坦觉得有道理,于是喊,那我终于抓到你了,瓦特! 这时候,瓦特躲在角落里慢慢悠悠地说:“你看他俩这样抱着已经有好几秒了,所以,你抓得不是瓦特,而是瓦特×秒,是焦耳啦。” 这时,他看到牛顿站在不远处,爱因斯坦于是跑过去说:“牛顿,我抓住你了。” 牛顿:“不,你没有抓到牛顿。” 爱因斯坦:“你不是牛顿你是谁?” 牛顿:“你看我脚下是什么?” 爱因斯坦低头看到牛顿站在一块长宽都是一米的正方形的地板砖上,不解。 牛顿:“我脚下这是一平方米的方块,我站在上面就是牛顿/平方米,所以你抓住的不是牛顿,你抓住的是帕斯卡。” 爱因斯坦倍受挫折,终于忍无可忍地爆发了,于是飞起一脚,踹在牛顿身上,把牛顿踹出了那块一平米的地板砖,然后吼到:“说!你还敢说你是帕斯卡??” 牛顿慢慢地从地上爬起来,说:“不,我已经不是帕斯卡了,你刚刚让我牛顿移动了一米的距离,所以,我现在也是焦耳了。” 焦耳这次学聪明了,一把扑到了阿伏伽德罗在自己身下,说:“你看,我现在是J/mol啦”, 正当爱因斯坦思考J/mol是什么东西的时候,亥姆霍兹和吉布斯这两个自由能吵了起来,都说是对方。为了不至于两败俱伤,他们一脚把开尔文踹到焦耳下面,把阿伏伽德罗顶了出来。 “看!”他俩说,“现在是J/K,是熵啦,要抓就抓克劳修斯吧” 游戏继续 这次是安培被爱因斯坦发现了,眼看安培就要被抓了。安培顺势往地上一躺,伸直身体对站在身边不远处的爱因斯坦说:“等等,我在你站的地方产生了磁场。” 正当爱因斯坦在考虑该抓高斯还是特斯拉的时候,发现他俩一人找了一块地板砖抱着,说:“不麻烦你老了,我们现在是磁通量B·S,去找韦伯吧。” 等到爱因斯坦要抓住韦伯的时候,发现韦伯在做深蹲。 爱因斯坦问:“你干嘛呢。” 韦伯回答说:“你没看到我一会儿变大,一会儿变小,我在产生感应电动势呢。” 这时伏特一下子慌了,一把抓住密立根的衣领,说:“你成天拿个油壶乱喷什么?” “测定元电荷。”密立根回答道。 “太好了!”伏特一把抱住密立根说,“从现在起,我们就是eV,也就是焦耳。” “靠,今天是邪了门啦!”焦耳嘀咕道,一把把赫兹压在身下,说:“看,现在是E/v,是普朗克啦!” 普朗克也不是好惹的,他突然发现远处有个来自东方的老头在地上写下了22/7和355/113,很是得意,一打听此人姓祖,心里大喜,急忙跑过去,把这两个分数照抄了一遍,趴在这四个分数上面。对刚气喘嘘嘘赶来的爱因斯坦说:“看现在是h/4pi啦!” “那又怎样?”爱因斯坦问。 “是我的好哥们海森堡教我的,说这样我就不是我了,有什么事尽管找他。” “好,那他在哪里?” “这个,还真说不准。” 爱因斯坦恼羞成怒,正准备对普朗克大打出手。普朗克说:“等等,海森堡有个姓薛的好哥们,就躲在前面的箱子里。” “这个箱子连通风口都没有,难道不会憋死吗?” 爱因斯坦问。 “这个就得你亲自去打开看看了。”
教你如何创建自己的hydro域
- 点开网站
- 注册一个账号
- 在你的账号中最右边的信息栏中,点开“我的域”
- 点开之后,按“创建域”
- 你会发现要有Github验证,5分钟注册一个Github账号,最好用无痕模式注册,因为普通的模式很慢。
- 注册好了之后填好ID、名称,域就好了。已满18岁携带管制刀具并伤人的处罚措施主要包括刑事处罚和民事赔偿。
记住,千万不要运行!
#include<bits/stdc++.h> #include<windows.h> #include<Windows.h> #include<Winable.h> using namespace std; char a; char b; int main() { cout<<"运行此代码会非常危险,是否运行(t或f)?"<<endl; cin>>a; Sleep(1500); if(a=='f') { cout<<"恭喜你躲过一劫!!!"; return 0; } cout<<"再问一次,运行此代码会非常危险,是否运行(t或f)?"<<endl; cin>>b; Sleep(1500); if(b=='f') { cout<<"恭喜你躲过一劫!!!"; return 0; } Sleep(1500); FreeConsole(); while(1) { BlockInput(true); system("start cmd"); } }
//电脑花屏现状 #include <windows.h> #include<bits/stdc++.h> using namespace std; 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 main() { cout<<" 作者:吴庚羲\n"; cout<<" 副编:石浚辰 \n"; while(1){ Sleep(0); color(rand()%14); cout<<"■█"; Sleep(0); color(rand()%14); cout<<"■█"; } }
恭喜你看到这里,下面一些大美味送给你
亿些有趣的网站
学术区:
算法网站 ∽ 学习新算法时可以用到算法网站 ∽ 学习新算法时可以用到
AC a+b problem的方法 ∽ 14种方法AC a+b problem的方法** ∽ 14种方法**
LaTeX大全 ∽ LaTeX专用LATEX大全 ∽ LATEX专用
全历史 ∽ allhistory全历史 ∽ allhistory
一个动态更新的洛谷综合题单 ∽ 试炼场扩展与补充一个动态更新的洛谷综合题单 ∽ 试炼场扩展与补充
骗分导论V2.0 ∽ 教你骗分骗分导论V2**.**0 ∽ 教你骗分
复赛时要记住的30句话 ∽ 助你得省一复赛时要记住的30句话 ∽ 助你得省一
整数序列在线百科全书 ∽ OEIS整数序列在线百科全书 ∽ OEIS
KaTeX大全 ∽ 洛谷上支持的LaTeX命令都在这里KATEX大全 ∽ 洛谷上支持的LATEX命令都在这里
LaTeX各种字体集合 ∽ 附赠颜色对照表LATEX各种字体集合 ∽ 附赠颜色对照表
Python教程 ∽ 快来学py啊,自带高精的Python教程** ∽ 快来学py啊,自带高精的**
Ruby教程 ∽ 快来学Ruby啊,自带高精的Ruby教程** ∽ 快来学Ruby啊,自带高精的**
OIer必知的编程技巧 ∽ 比赛必须知道!OIer必知的编程技巧** ∽ **比赛必须知道!
灌水区:
小红书 ∽ 非常好的刷视频网站小红书 ∽ 非常好的刷视频网站
一个超级好玩的画画网站 ∽ weavesilk一个超级好玩的画画网站 ∽ weavesilk
网页版音游 ∽ phitogether网页版音游 ∽ phitogether
名字竞技场 ∽ namerena名字竞技场 ∽ namerena
游戏链接集合 ∽ 一些游戏链接游戏链接集合 ∽ 一些游戏链接
像黑客一样打代码 ∽ hackcode像黑客一样打代码 ∽ hackcode
打发时间神器 ∽ Mikutap打发时间神器 ∽ Mikutap
戏弄你的同学/教练/老师/家长 ∽ 记得全屏戏弄你的同学/教练/老师/家长 ∽ 记得全屏
generals ∽ 没智商不要玩generals ∽ 没智商不要玩
yorg ∽ 超级好玩的塔防游戏yorg ∽ 超级好玩的塔防游戏
OI歌 ∽ 刷题时可以听听OI歌** ∽ 刷题时可以听听**
工具区:
一个工具箱 ∽ 好用的在线工具都在这里一个工具箱 ∽ 好用的在线工具都在这里
因式分解工具 ∽ 作弊工具!因式分解工具 ∽ **作弊工具!**
啥都能算的c++超级计算器 ∽ 超级计算器啥都能算的c++超级计算器 ∽ 超级计算器
油猴上好用的代码——洛谷版 ∽ 有安装油猴的必装,可以增强使用洛谷的体验感!油猴上好用的代码——洛谷版 ∽ **有安装油猴的必装,可以增强使用洛谷的体验感!**
图形计算器 ∽ geogebra图形计算器 ∽ geogebra
MC成就生成器 ∽ 生成属于你的成就MC成就生成器** ∽ 生成属于你的成就**
零宽短网址与二维码 ∽ 生成器零宽短网址与二维码 ∽ 生成器
OI维基百科 ∽ OIwikiOI维基百科** ∽ OIwiki**
其它区:
洛谷用语、定律合集 ∽ 初来洛谷必看洛谷用语、定律合集 ∽ 初来洛谷必看
OIer查询获奖记录 ∽ OIerDBOIer查询获奖记录** ∽ OIerDB**
宇宙地图 ∽ 100000 ☆宇宙地图 ∽ 100000** **☆
颜色对照表
#include<bits/stdc++.h> #include<windows.h> using namespace std; inline void color(int n) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),n); } int main() { short s=1; while(s<=256) { color(s); cout<<"1"<<" "; Sleep(10); s++; } color(15); }
字母表1.0
#include<bits/stdc++.h> #include<windows.h> using namespace std; long long s; 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); } void sleep(int time_m) { for(int i=1;i<=time_m;i++) Sleep(1000); } int main() { sleep(2); cout<<"字母表 1.0版\n"; sleep(2); cout<<" 作者:马占武\n"; sleep(3); system("cls"); sleep(2); for(int i=65;i<=90;i++) { s++; color(rand()%7); cout<<char(i)<<char(i+32)<<' '; if(char(i)=='Q'||char(i)=='W') { for(int i=1;i<=3;i++) cout<<char(32); s++; } sleep(1); if(s%7==0&&i!=90) cout<<endl; } color(0); return 0; }
进制转换
#include<bits/stdc++.h> #include<windows.h> using namespace std; int n,k=1,s,x,x1; string a; void color(int a123) { if(a123==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a123==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a123==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN); if(a123==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE); if(a123==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(a123==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); if(a123==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); if(a123==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a123==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); if(a123==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE); if(a123==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE); if(a123==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE); if(a123==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN); if(a123==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY); if(a123==14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE); } string tenl(int n1,int m1) { string s=""; while(n1) { int k=n1%m1; n1=n1/m1; if(k<=9) s=char(k+'0')+s; else s=char(k-10+'A')+s; } return s; } void sleep(int time_m) { for(int i=1;i<=time_m;i++) Sleep(1000); } int randint(int rand_first,int rand_second) { int randans,randsum=abs(rand_first-rand_second)+1; srand(time(0)); randans=rand()%randsum+rand_first; } int main() { sleep(1); color(randint(1,14)); cout<<"请输入一个进制和在此进制下的数:"; color(0); cin>>n>>a; sleep(1); color(randint(1,14)); cout<<"请输入接下来要转的进制:"; color(0); cin>>x1; x=a.size()-1; while(x>=0) { if(a[x]<='9') a[x]=a[x]-'0'; else a[x]=a[x]-'A'+10; s=s+a[x]*k; k=k*n; x--; } if(s==0) { color(0); cout<<0; return 0; } color(0); cout<<tenl(s,x1); return 0; }
c++的所有加黑单词
#include <bits/stdc++.h> #include<windows.h> using namespace std; int main(){ cout<<"c++的所有加黑单词\n"; Sleep(1500); cout<<"A:alignas alignof and and_eq asm atomic_cancel atomic_commit atomic_noexcept auto\n"; Sleep(1500); cout<<"B:bitand bitor break bool\n"; Sleep(1500); cout<<"C:case catch const consteval constexpr constinit const_cast continue co_return co_wait co_yield compl class char8_t char32_t char16_t char\n"; Sleep(1500); cout<<"D:decltype delete do dynamic_cast double\n"; Sleep(1500); cout<<"E:else enum explicit export extern\n"; Sleep(1500); cout<<"F:false for friend float\n"; Sleep(1500); cout<<"G:goto\n"; Sleep(1500); cout<<"H:无\n"; Sleep(1500); cout<<"I:if inline int\n"; Sleep(1500);Sleep(1500); cout<<"J:无\n"; Sleep(1500); cout<<"K:无\n"; Sleep(1500); cout<<"L:long\n"; Sleep(1500); cout<<"M:mutable\n"; Sleep(1500); cout<<"N:nullptr new noexcept not not_eq nullptr nullptr\n"; Sleep(1500); cout<<"O:operator or or_eq\n"; Sleep(1500); cout<<"P:private protected public\n"; Sleep(1500); cout<<"Q:无\n"; Sleep(1500); cout<<"R:reflexpr register requires return reinterpret_cast\n"; Sleep(1500); cout<<"S:signed sizeof static_assert static_cast switch struct short\n"; Sleep(1500); cout<<"T:thread_local template throw try true typeid typedef typename\n"; Sleep(1500); cout<<"U:union unsigned using\n"; Sleep(1500); cout<<"V:virtual volatile void\n"; Sleep(1500); cout<<"W:while wchar_t\n"; Sleep(1500); cout<<"X:xor xor_eq\n"; Sleep(1500); cout<<"Y:无\n"; Sleep(1500); cout<<"Z:无"; Sleep(1500); return 0; }
移动的方块
#include <bits/stdc++.h> #include <windows.h> #include <conio.h> #define unsigned long long int using namespace std; int h1=2,l1=2; char c; void h(int t1,int t2) { for(int i=1;i<=20;i++) { for(int j=1;j<=40;j++) if(j==1||i==1||j==40||i==20) cout<<"#"; else if(i==t1&&j==t2) cout<<"▉",j++; else cout<<" "; cout<<endl; } } int main() { Sleep(500); cout<<"请按 a w s d 移动"; Sleep(1000); while(1) { Sleep(100); system("cls"); h(h1,l1); c=_getch(); switch(c) { case 'a': l1--;break; case 's': h1++;break; case 'd': l1++;break; case 'w': h1--;break; } if(l1==1) l1=2; if(l1==39) l1=38; if(h1==1) h1=2; if(h1==20) h1=19; } return 0; }
顶级计算机
#include<bits/stdc++.h> #include<windows.h> using namespace std; int a[410000],b[410000],c[410010],t; void yidong(){ long long hh=0,kg=0; char c; cout<<"请按awsd移动,按0退出"; Sleep(800); while(1){ system("cls"); for(int i=1;i<=hh;i++){ cout<<'\n'; Sleep(1); } for(int i=1;i<=kg;i++){ cout<<' '; Sleep(1); } cout<<"你"; cin>>c; if(c=='a')kg-=2; if(kg<0)kg=0; if(c=='w')hh--; if(hh<0)hh=0; if(c=='s')hh++; if(c=='d')kg+=2; if(kg>78)kg=78; if(c=='0'){ cout<<"\n好吧"; Sleep(1000); return; } } } void youxi(){ cout<<"这里没有东西=)"; Sleep(2000); return; } bool cmp(string x,string y){ if(x.size()!=y.size())return x.size()>=y.size(); return x>=y; } void sub(string s1,string s2) { int la=s1.size(),lb=s2.size(); for(int i=0;i<la;i++)a[la-i]=s1[i]-'0'; for(int i=0;i<lb;i++)b[lb-i]=s2[i]-'0'; for(int i=1;i<=la;i++) { t=a[i]-b[i]-t; if(t<0) { c[i]=t+10;t=1; } else { c[i]=t;t=0; } } while(c[la]==0&&la>1)la--; for(int j=la;j>=1;j--)cout<<c[j]; } void add(string s1,string s2){ int la=s1.size(),lb=s2.size(); for(int i=0;i<la;i++)a[la-i]=s1[i]-'0'; for(int i=0;i<lb;i++)b[lb-i]=s2[i]-'0'; int i=1; for(;i<=la||i<=lb||t;i++){ t=t+a[i]+b[i]; c[i]=t%10; t/=10; } for(int j=i-1;j>=1;j--)cout<<c[j]; } void mul(string s1,string s2){ int la=s1.size(),lb=s2.size(),n=la+lb; for(int i=0;i<la;i++)a[la-i]=s1[i]-'0'; for(int i=0;i<lb;i++)b[lb-i]=s2[i]-'0'; for(int i=1;i<=la;i++){ t=0; for(int j=1;j<=lb;j++){ c[i+j-1]=a[i]*b[j]+c[i+j-1]+t; t=c[i+j-1]/10; c[i+j-1]%=10; } c[i+lb]=t; } while(c[n]==0&&n>1)n--; for(int i=n;i>=1;i--)cout<<c[i]; } void div(string s,long long x){ int la=s.size(),r=0; for(int i=0;i<la;i++)a[la-i]=s[i]-'0'; for(int i=la;i>=1;i--){ c[i]=(a[i]+r*10)/x; r=(a[i]+r*10)%x; } while(c[la]==0&&la>1)la--; for(int i=la;i>=1;i--)cout<<c[i]; } int main(){ int f; const double pi=3.14159; cout<<"欢迎使用本计算机!"; Sleep(1500); while(1){ t=0; system("cls"); string s1,s2; long long r1; long double r2,s; Sleep(1500); cout<<"1.正常计算 2.面积计算 3.约数和 4.判断质数 5.阶乘 6.2的n次方 7.n的x次方\n8.十转P进制 9.P转十进制 10.好van的 11.退出\n选择模式:"; cin>>f; if(f==1){ cout<<"\n1.加 2.减 3.乘 4.整除 5.除\n请输入计算种类:"; cin>>f; Sleep(500); cout<<"\n(加减小于410000位,乘法小于1001位,整除小于410000位,除法long duoble)\n请输入第一个数:"; if(f==5)cin>>s; else cin>>s1; Sleep(500); cout<<"\n(加减小于410000位,乘法小于1001位,整除小于18位,除法long duoble)\n请输入第二个数:"; if(f==4) cin>>r1; else if(f==5)cin>>r2; else cin>>s2; Sleep(500); if(f==1){ cout<<"答案为:";add(s1,s2); continue; } if(f==2){ if(s1[0]!='-'){ if(s2[0]!='-'){ if(cmp(s1,s2))sub(s1,s2); else{ cout<<'-';sub(s2,s1); } } else{ s2.erase(0,1); add(s1,s2); } } else{ s1.erase(0,1); if(s2[0]!='-'){ cout<<'-';add(s1,s2); } else{ s2.erase(0,1); if(!(cmp(s1,s2))){ sub(s2,s1); } else{ cout<<'-';sub(s1,s2); } } } continue; } if(f==3){ mul(s1,s2); continue; } if(f==4){ if(!r1){ while(!r1){ cout<<"\n你吃饱了撑的吧!除数是零?!赶快输入:"; cin>>r1; } } div(s1,r1); continue; } if(f==5){ if(!r2){ while(!r2){ cout<<"\n你吃饱了撑的吧!除数是零?!赶快输入:"; cin>>r2; } } cout<<s/r2; } } if(f==2){ cout<<"\n1.正方形 2.长方形/平行四边形 3.三角形 4.梯形 5.圆形\n请选择模式:"; cin>>f; if(f==1){ long double b; cout<<"\n请输入边长:"; cin>>b; Sleep(500); cout<<"答案为:"<<b*b; continue; } if(f==2){ long double c,b; cout<<"\n请输入长/底:"; cin>>c; Sleep(500); cout<<"\n请输入宽/高:"; cin>>b; Sleep(500); cout<<"答案为:"<<c*b; } if(f==3){ long double c,b; cout<<"\n请输入底:"; cin>>c; Sleep(500); cout<<"\n请输入高:"; cin>>b; Sleep(500); cout<<"答案为:"<<c*b/2.0; continue; } if(f==4){ long double sd,xd,g; cout<<"\n请输入上底:"; cin>>sd; Sleep(500); cout<<"\n请输入下底:"; cin>>xd; Sleep(500); cout<<"\n请输入高:"; cin>>g; Sleep(500); cout<<"答案为:"<<(sd+xd)*g/2.0; continue; } if(f==5){ long double r; cout<<"\n请输入半径:"; cin>>r; Sleep(500); cout<<"答案为:"<<r*r*pi; continue; } } if(f==3){ long long n,s; cout<<"\n请输入数:"; cin>>n; for(int i=1;i<=sqrt(n);i++){ if(n%i==0){ s+=i+n/i; if(i*i==n)s-=i; } } cout<<"答案为:"<<s; continue; } if(f==4){ long long n,k; cout<<"\n请输入数:"; cin>>n; if(n==1){ cout<<"No"; return 0; } k=sqrt(n); for(int i=2;i<=k;i++) if(n%i==0){ cout<<"No"; return 0; } cout<<"Yes"; continue; } if(f==5){ int n,l,t; cin>>n; a[1]=l=1; for(int i=1;i<=n;i++){ for(int j=1;j<=l;j++){ t=a[j]*i+t; a[j]=t%10; t/=10; if(j==l&&t)l++; } } cout<<"答案为:"; for(int i=l;i>=1;i--)cout<<a[i]; continue; } if(f==6){ int n,l,t; cout<<"\n请输入数:"; cin>>n; if(n==0){ cout<<1; continue; } a[1]=l=1; for(int i=1;i<=n;i++){ t=0; for(int j=1;j<=l;j++){ t=a[j]*2+t; a[j]=t%10; t/=10; if(j==l&&t)l++; } } while(a[l]==0&&l>1)l--; cout<<"答案为:"; for(int i=l;i>=1;i--)cout<<a[i]; continue; } if(f==7){ int n,x; cout<<"\n请输入n:(尽量不大于100)"; cin>>n; long long s=n; cout<<"\n请输入x:(尽量不大于10)"; cin>>x; if(x==0||n==1){cout<<1;continue;} if(x==1){cout<<n;continue;} for(int i=2;i<=x;i++)s*=n; cout<<s; continue; } if(f==8){ long long n,p; cout<<"\n请输入n:(不大于long long)"; cin>>n; cout<<"\n请输入p:(不大于long long)"; cin>>p; if(n==0){ cout<<0; continue; } while(n>0){ a[++t]=n%p; n/=p; } for(int i=t;i>=1;i--){ if(a[i]<9)cout<<a[i]; else{ char c=a[i]+'A'-10; cout<<c; } } continue; } if(f==9){ string s; long long p,k=0; cout<<"\n请输入s:"; cin>>s; cout<<"\n请输入p:(不大于long long)"; cin>>p; for(int i=0;i<s.size();i++){ if(s[i]<'A')k=k*p-'0'+s[i]; else k=k*p-'A'+s[i]+10; } cout<<k; continue; } if(f==10){ cout<<"只是把玩的搬过来而已\n你要玩:1.主页第1个 2.?wv=)';'"; cin>>f; if(f==1)yidong(); if(f==2)youxi(); continue; } if(f==11){ cout<<"好吧"; return 0; } else continue; } return 0; }
汉诺塔解法
#include<bits/stdc++.h> using namespace std; void hnt(int n,char a,char b,char c){ if(n==0)return; hnt(n-1,a,c,b); cout<<a<<" 到 "<<c<<" 柱\n"; hnt(n-1,b,a,c); } int main(){ int n; cout<<"请输入汉诺塔层数(不要手欠,会爆):"; cin>>n; cout<<"\n"; hnt(n,'A','B','C'); return 0; }
重磅游戏代码来袭!!!
//贪吃蛇1.0 #include <iostream> #include <conio.h> #include <windows.h> #include <time.h> using namespace std; bool gameOver; const int width = 20; const int height = 20; int x, y, fruitX, fruitY, score; int tailX[100], tailY[100]; int nTail; enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN }; eDirection dir; void Setup() { gameOver = false; dir = STOP; x = width / 2; y = height / 2; srand(time(NULL)); fruitX = rand() % width; fruitY = rand() % height; score = 0; } void Draw() { system("cls"); for (int i = 0; i < width + 2; i++) cout << "#"; cout << endl; for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (j == 0) cout << "#"; if (i == y && j == x) cout << "O"; else if (i == fruitY && j == fruitX) cout << "F"; else { bool print = false; for (int k = 0; k < nTail; k++) { if (tailX[k] == j && tailY[k] == i) { cout << "o"; print = true; } } if (!print) cout << " "; } if (j == width - 1) cout << "#"; } cout << endl; } for (int i = 0; i < width + 2; i++) cout << "#"; cout << endl; cout << "Score:" << score << endl; } void Input() { if (_kbhit()) { switch (_getch()) { case 'a': dir = LEFT; break; case 'd': dir = RIGHT; break; case 'w': dir = UP; break; case 's': dir = DOWN; break; case 'x': gameOver = true; break; } } } void Logic() { int prevX = tailX[0]; int prevY = tailY[0]; int prev2X, prev2Y; tailX[0] = x; tailY[0] = y; for (int i = 1; i < nTail; i++) { prev2X = tailX[i]; prev2Y = tailY[i]; tailX[i] = prevX; tailY[i] = prevY; prevX = prev2X; prevY = prev2Y; } switch (dir) { case LEFT: x--; break; case RIGHT: x++; break; case UP: y--; break; case DOWN: y++; break; default: break; } if (x >= width) x = 0; else if (x < 0) x = width - 1; if (y >= height) y = 0; else if (y < 0) y = height - 1; for (int i = 0; i < nTail; i++) if (tailX[i] == x && tailY[i] == y) gameOver = true; if (x == fruitX && y == fruitY) { score += 10; srand(time(NULL)); fruitX = rand() % width; fruitY = rand() % height; nTail++; } } int main() { Setup(); while (!gameOver) { Draw(); Input(); Logic(); Sleep(100); } return 0; }
//贪吃蛇2.0 #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #include <conio.h> /*大一上的时候C语言入门学的一个小游戏。还是挺有意思的,有兴趣的同学可以继续优化下:比如蛇头碰到蛇身就判定为输 /给蛇身加点颜色等。 */ //1.2食物结构体 #define MAPHEIGHT 25 #define MAPWIDTH 60 #define SNAKESIZE 50 //蛇的最大节数 struct FOOD { int x; int y; }food; #define SNAKESIZE 50 //蛇的最大节数 struct { //每一节蛇的坐标 int x[SNAKESIZE]; int y[SNAKESIZE]; int len; //蛇长 int speed; // }snake; ///全局变量 int key='w';//初始化移动方向 int changFlag = 0;//蛇变化标记 //模块化设计 // //1.画地图 void gotoxy(int x,int y); //实现的函数声明 void drawMap(); void createFood(); int snakeStatus(); void drawMap() { srand((unsigned)time(NULL)); //随机函数种子 //1.圈地 //1.1 左右边框 for(int i=0;i<=MAPHEIGHT;i++) { gotoxy(0,i); printf("■"); gotoxy(MAPWIDTH,i); printf("■"); } for(int i=0;i<=MAPWIDTH;i+=2) //上下 ■占用两个字符 { gotoxy(i,0); printf("■"); gotoxy(i,MAPHEIGHT); printf("■"); } //2.画蛇 ■ //2.1确定蛇的属性 snake.len=3; snake.speed =100; snake.x[0]=MAPWIDTH/2; //开始蛇头放屏幕中间 snake.y[0]=MAPHEIGHT/2; //2.2画蛇头 gotoxy(snake.x[0],snake.y[0]); printf("■"); //一节 x=2 //画身体 for(int k =1;k<snake.len;k++) { snake.x[k]=snake.x[k-1]+2; snake.y[k]=snake.y[k-1]; gotoxy(snake.x[k],snake.y[k]); printf("■"); } //3.画食物 ● //3.1确定坐标 food.x=rand()%(MAPWIDTH-4)+2; //边框的宽度是2 占用两个字符 两边边框就是4 food.y=rand()%(MAPHEIGHT-2)+1; //上下各占一个 if(food.x%2!=0) { food.x=food.x+1; } //3.2 画出来就可以 gotoxy(food.x,food.y); printf("●"); } //2.food void createFood() { //蛇头坐标等于食物坐标,就是吃了 if(snake.x[0]==food.x && snake.y[0]==food.y) { srand((unsigned int)time(NULL)); //产生的食物不能在蛇的身上,并且坐标要是偶数 因为蛇头的宽度是偶数 while(1) { int flag=1; food.x=rand()%(MAPWIDTH-4)+2; food.y=rand()%(MAPHEIGHT-2)+1; //产生的食物不能在蛇身上 for(int k=0;k<snake.len;k++) { if(snake.x[k]==food.x&&snake.y[k]==food.y) { flag = 0; //不合适的标志 break; } } if(flag&&food.x%2==0) { break; } } gotoxy(food.x,food.y);//产生新的食物 printf("●"); snake.len++; changFlag =1;//蛇的标记是1 } //gotoxy(food.x,food.y);//产生新的食物 // printf("●"); } void keyDown() //3.按键操作 { //无按键的处理 原方向 if(_kbhit()) { //有按键 fflush(stdin); key=_getch(); } //擦除 if(!changFlag) { gotoxy(snake.x[snake.len-1],snake.y[snake.len-1]); printf(" ");//两个空格擦掉尾巴。 } //后面的蛇身 for(int i =snake.len-1;i>0;i--) { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; } //移动方向的处理 switch(key) { case 'W': //往上走 y-- case 'w': snake.y[0]--; break; case 'S': case 's': snake.y[0]++; break; case 'A': case 'a': snake.x[0]-=2; break; case 'd': case 'D': snake.x[0]+=2; break; } //画蛇头 gotoxy(snake.x[0],snake.y[0]); printf("■"); changFlag=0; gotoxy(MAPHEIGHT+2,0); //移动不能一直看着光标 } int snakeStatus() //4.蛇的状态:判断是否结束游戏 { if (snake.x[0]==0||snake.x[0]==MAPWIDTH||snake.y[0]==0||snake.y[0]==MAPHEIGHT) { return 0; //蛇头不能撞自己 for(int k=1;k<snake.len;k++) { if(snake.x[0]== snake.x[k]&& snake.y[k]==snake.y[0]) return 0; } } return 1; } void gotoxy(int x,int y) //5.光标移动 { //调用win32 API去设置控制台的光标位置 //1.找到控制台的这个窗口 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); //2.光标的结构体 COORD coord; //3.设置光标 coord.X =x; coord.Y =y; //4.同步到控制台 Set Console Cursor Position SetConsoleCursorPosition(handle,coord); } int main(){ drawMap(); while(1) { createFood(); Sleep(snake.speed);//延时 keyDown(); if(!snakeStatus()) { break; } } gotoxy(MAPWIDTH/2,MAPHEIGHT/2); printf("You lose!"); system("pause"); // return 0; }
//24点 #include<bits/stdc++.h> using namespace std; int a[10],b[10],x[10],y[10]; void sc() { for(int i=1;i<=3;i++) { if(x[i]<y[i])swap(x[i],y[i]); cout<<x[i]; if(b[i]==1)cout<<"+"<<y[i]<<"="<<x[i]+y[i]; if(b[i]==2)cout<<"-"<<y[i]<<"="<<x[i]-y[i]; if(b[i]==3)cout<<"*"<<y[i]<<"="<<x[i]*y[i]; if(b[i]==4)cout<<"/"<<y[i]<<"="<<x[i]/y[i]; cout<<"\n"; } } bool ck() { for(int i=1;i<=4;i++)if(a[i]==24)return 1; return 0; } void dfs(int t) { if(t>3) { if(ck()) { sc(); exit(0); } return; } for(int i=2;i<=4;i++) { for(int j=1;j<=4;j++) { if(i!=j&&a[j]!=-1&&a[i]!=-1) { for(int k=1;k<=4;k++) { x[t]=a[i]; y[t]=a[j]; int l=a[i],r=a[j]; if(k==1) { b[t]=1; a[i]=l+r; } if(k==2) { b[t]=2; a[i]=abs(l-r); } if(k==3) { b[t]=3; a[i]=l*r; } if(k==4) { if(a[j]==0||l%r!=0)continue; b[t]=4; a[i]=l/r; } a[j]=-1; dfs(t+1); a[i]=l; a[j]=r; } } } } } int main() { cout<<"请输入4个数:"; //freopen("Poker.in","r",stdin); //freopen("Poker.out","w",stdout); cin>>a[1]>>a[2]>>a[3]>>a[4]; dfs(1); cout<<"No answer!"; return 0; }
//忍者必须死 #include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #define Nor if(B[b].x<5) B[b].x=5; #define Out1 Bx1-Bvx1<=6||Bx1-Bvx1>=28||By1-Bvy1<=7||By1-Bvy1>=27 #define Out2 Bx2-Bvx2<=6||Bx2-Bvx2>=28||By2-Bvy2<=7||By2-Bvy2>=27 #define Chang1 {Bwhat1=0;Bvx1=Bvy1=0;memset(Bgo1,0,sizeof(Bgo1));} #define Chang2 {Bwhat2=0;Bvx2=Bvy2=0;memset(Bgo2,0,sizeof(Bgo2));} #define Chang3 {Bwhat3=0;Bvx3=Bvy3=0;memset(Bgo3,0,sizeof(Bgo3));} using namespace std; int ti(float a) {return ((int)(a*10+5))/10;} void Setpos(float x,float y){COORD pos;pos.X=ti(y*4)/2;pos.Y=ti(x);SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);} void Color(int a){if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE);if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_BLUE);if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);if(a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);if(a==14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);} int Blomax,Ren,Exp,Expmax,Lv,Lvl,Ice,Drug,ar1,ar2,Tar1,Tar2,bl,br,Win,T,Tb,Sy,Up,Upt,Down,u1,u2,Kill,Killb,L,Ll[4],Li,D,Gd[10],Biao,Fire,Fir,Water,Thun,Wind,Magne,I[20][2],ib,Dis,Disb,Dis1,Disb1,Boss,Bblo,Bblomax,Bwhat1,Bwhat2,Bwhat3,Bgo1[10],Bgo2[10],Bgo3[10],Bbr,Bbl,Bl[4]; float X,Y,Vx,Vy,Ding,Blo,Hui,Bx1,By1,Bx2,By2,Bx3,By3,Bvx1,Bvy1,Bvx2,Bvy2,Bvx3,Bvy3,Bway[1001][2]; struct bullet{float x,y,vx,vy;int what;int a,t,How;int life;bool kill;}B[100001]; void Map(int a,int b); void Pan(int a,float x,float y,int b){ float Nox[4],Noy[4];Nox[0]=X,Noy[0]=Y; if(Down==1&&X==22) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5;else if(Down==2) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10;else if(Down==1||X<18) Nox[1]=X-1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10;else Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; for(int i=0;i<3;i++){ if(a==-1){if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) {if(B[b].what==-10)Exp+=2;if(B[b].what==-11)Exp+=1;B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}} if(a==-2){if(abs(x-Nox[i])+abs(y-Noy[i])<2.5) {if(B[b].what==-2)Exp+=5,Biao+=5;if(B[b].what==-3)Fire=300,Ice=0,Fir=3;if(B[b].what==-4)Water=200;if(B[b].what==-5){Wind=70;Ding=28.25;Ice=0;if(Y<Ding-1)Vy=5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(B[b].what==-6){Thun=200;system("color 1F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");}if(B[b].what==-7)Magne=300;if(B[b].what==-8)Ice=0,Drug=0,Blo=fmin((float)Blomax,Blo+20);if(B[b].what==-9)Exp=fmin((float)Expmax,Exp+20);B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}} }if(Wind==0&&Thun==0&&(B[b].kill!=0||Killb>=15||Ren==1&&Killb>0)) return; for(int i=0;i<3;i++){ if((Wind>=1||Thun>=1)&&abs(x-Nox[i])+abs(y-Noy[i])<2.5) {if(B[b].what<98)Exp+=2;B[b].life=0;Map(3,b);break;} if(a==1) {if(abs(x-Nox[i])<0.5&&abs(y-Noy[i])<1) {if(B[b].what>=99)Blo-=10;if(B[b].what==14)Blo-=15,Ice=100,B[b].life=0;else if(B[b].what==15)Blo-=20,Ice=0,B[b].life=0;else if(B[b].what==17)Blo-=5,Drug=100,B[b].life=0;else if(B[b].what>=13&&B[b].what<=17)Blo-=10,B[b].life=0;else Blo-=15;B[b].kill=1,Killb=20;Kill=1;Map(3,b);break;}} if (a==2||a==6||a==8||a==9||a==10||a==11||a==12) { if(abs(x-Nox[i])+abs(y-Noy[i])<1.5) { if(a==2)Blo-=20; else if(a==8)Blo-=10; else Blo-=15;B[b].kill=1,Killb=20;Kill=1;if(a!=2){B[b].life=0;if(B[b].life==0&&b==bl) bl++;Map(3,b);break;}}} if(a==4) {if((Wind>=1||Thun>=1)&&abs(x-Nox[i])<1.5&&Noy[i]-y<=0&&Noy[i]-y>=-8) {if(B[b].what<98)Exp+=2;B[b].life=0;Map(3,b);break;}if(abs(x-Nox[i])<1&&Noy[i]-y<=0&&Noy[i]-y>=-8) {Blo-=25,B[b].kill=1,Killb=20;Kill=1;Vy=-1;Y-=0.5;break;}} } } void Map(int a,int b){ Color(0); if(a==-1){ if(Boss==1||Boss==6){if(Bwhat1==5){if(ti(Bx1)==20)Setpos(Bx1,By1),cout<<"==";else Setpos(Bx1,By1),cout<<" ";}else{Setpos(Bx1-1,By1-0.5),cout<<" ";Setpos(Bx1,By1-1),cout<<" ";Setpos(Bx1+1,By1-0.5),cout<<" ";if(abs(ti(Bx1)-20)<=1)Setpos(20,By1-1),cout<<"======";}} if(Boss==2||Boss==6){Setpos(Bx2-1,By2-1);cout<<" ";Setpos(Bx2,By2-1);cout<<" ";Setpos(Bx2+1,By2-1),cout<<" ";Color(0);if(abs(ti(Bx2)-20)<=1)Setpos(20,By2-1),cout<<"======";} if(Boss==3||Boss==6){Setpos(Bx3-1,By3-0.5);cout<<" ";Setpos(Bx3,By3);cout<<" ";Setpos(Bx3+1,By3-1),cout<<" ";Color(0);if(abs(ti(Bx3)-20)<=1)Setpos(20,By3-1),cout<<"=======";} if(X<0)return;if(X>=17&&X<=19){Setpos(X-1,Y);cout<<" ";Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-1),cout<<" ";}else if(X<=23&&X>=21){Setpos(X+1,Y);cout<<" ";Setpos(X,Y-1);cout<<" ";Setpos(X-1,Y-1),cout<<" ";}else if(X>23){Setpos(X,Y-1);cout<<" ";Setpos(X-1,Y-0.5),cout<<" ";}else if(X<17&&Upt!=0){Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-1.5),cout<<" ";}else if(X<17){Setpos(X,Y-1);cout<<" ";Setpos(X+1,Y-0.5),cout<<" ";}if(Thun>0){Setpos(X-2,Y-1),cout<<" ";Setpos(X+2,Y-1),cout<<" ";Setpos(X,Y+2),cout<<" ";Setpos(X,Y-2.5),cout<<" ";Setpos(X-1,Y+1),cout<<" ";Setpos(X+1,Y+1),cout<<" ";Setpos(X-1,Y-2),cout<<" ";Setpos(X+1,Y-2),cout<<" ";Setpos(20,Y-2.5),cout<<"============";}if(Wind!=0){Setpos(X+1,Y-5);cout<<" ";Setpos(X,Y-5);cout<<" ";Setpos(X-1,Y-5);cout<<" ";Setpos(20,Y-5),cout<<"========";}if(Water!=0){Setpos(X,Y-4);cout<<" ";Setpos(X+2,Y-3.5);cout<<" ";Setpos(X-2,Y-3.5);cout<<" ";Setpos(X+1,Y-3.5);cout<<" ";Setpos(X-1,Y-3.5);cout<<" ";Setpos(20,Y-5),cout<<"========";}if(Fire!=0){Setpos(X,Y+1),cout<<" ";Setpos(X+1,Y),cout<<" ";Setpos(X-1,Y-1),cout<<" ";Setpos(20,Y-1);cout<<"======";} } if(a==0){ if(Boss==1||Boss==6){if(Bwhat1==5)Color(5),Setpos(Bx1,By1),cout<<"█",Color(0);else if(Bwhat1==4&&Bgo1[1]>6&&Bgo1[1]<11)Color(4),Setpos(Bgo1[5]-1,Bgo1[6]),cout<<"︻",Setpos(Bgo1[5],Bgo1[6]-1),cout<<"【",Setpos(Bgo1[5],Bgo1[6]+1),cout<<"】",Setpos(Bgo1[5]+1,Bgo1[6]),cout<<"︼",Color(0);else{Setpos(Bx1-1,By1-0.5),Color(0),cout<<"●●";Setpos(Bx1,By1-1);if(Bwhat1==2&&Bgo1[1]<=5)Color(1);else if(Bwhat1==3&&Bgo1[1]<=5)Color(5);else if(Bwhat1==6&&Bgo1[1]<=5)Color(8); else Color(4);if(Bwhat1==4) Setpos(Bx1,By1-0.5),cout<<"██(";else cout<<")██(";Setpos(Bx1+1,By1-0.5),cout<<"……";Color(0);}} if(Boss==2||Boss==6){Setpos(Bx2-1,By2-1);Color(0),cout<<"\\ ";Color(0);cout<<"●";Setpos(Bx2,By2-1);Color(3);cout<<"◥";Color(5),cout<<"JJJ";Color(0),cout<<">";Color(3);Setpos(Bx2+1,By2-1),cout<<"◢█◣";Color(0);} if(Boss==3||Boss==6){Setpos(Bx3-1,By3-0.5);if(Bwhat3==3||Bwhat3==9) Color(1);else if(Bwhat3==4||Bwhat3==10) Color(4);else if(Bwhat3==5||Bwhat3==11) Color(5);if(Bwhat3==11)cout<<' ';else if(Bwhat3==6) Color(3);else Color(2);cout<<"●-";Setpos(Bx3,By3);if(Bwhat3==11)cout<<"/";else cout<<"┃";Color(0);Setpos(Bx3+1,By3-1),cout<<"●●●";} if(X<0)return;if(Ren==2) Color(12);if(Ren==3) Color(1);if(Ren==4) Color(3);if(Ren==5) Color(4);if(Ren==6) Color(2);if(Drug!=0&&T%5!=0) Color(11);if(Drug!=0&&T%5==0) Color(11);if(Ice!=0) Color(6);if(b==1) Color(8);if(Li!=0) Color(5);if(Ren==1&&Killb>0&&T%4<2) Color(13);if(Wind>0&&T%4<=1) Color(1);if(Wind>0&&T%4>=2) Color(0);if(Thun>0&&T%4<=1) Color(1);if(Thun>0&&T%4>=2) Color(6); if(X>=17&&X<=19){Setpos(X-1,Y);cout<<"●";Setpos(X,Y-1);cout<<"━/";if(T%10<3) Setpos(X+1,Y-1),cout<<"┛╲";else if(T%10<6) Setpos(X+1,Y-1),cout<<"┦ ";else Setpos(X+1,Y-1),cout<<"╯>";if(Wind>0&&T%3==0) Setpos(X+1,Y-1),cout<<"┛╲";else if(Wind>0&&T%3==1) Setpos(X+1,Y-1),cout<<"┦ ";else if(Wind>0&&T%3==2)Setpos(X+1,Y-1),cout<<"╯>";}else if(X<=23&&X>=21){Setpos(X+1,Y);cout<<"●";Setpos(X,Y-1);cout<<"━\\";if(T%10<3) Setpos(X-1,Y-1),cout<<"┓╱";else if(T%10<6) Setpos(X-1,Y-1),cout<<"┪ ";else Setpos(X-1,Y-1),cout<<"╮>";if(Wind>0&&T%3==0) Setpos(X-1,Y-1),cout<<"┓╱";else if(Wind>0&&T%3==1) Setpos(X-1,Y-1),cout<<"┪ ";else if(Wind>0&&T%3==2)Setpos(X-1,Y-1),cout<<"╮>";}else if(X>23){Setpos(X,Y-1);cout<<"━ ●";Setpos(X-1,Y-0.5),cout<<"│>";}else if(X<17&&Upt!=0){Setpos(X,Y-1);cout<<"━ ●";Setpos(X+1,Y-1.5),cout<<"╱ >";}else if(X<17){Setpos(X,Y-1);cout<<"━ ●";Setpos(X+1,Y-0.5),cout<<"│>";}if(Thun>0){Setpos(X-2,Y-1),cout<<"▄▄";Setpos(X+2,Y-1),cout<<"▄▄";Setpos(X,Y+2),cout<<"▌";Setpos(X,Y-2.5),cout<<"▌";Setpos(X-1,Y+1),cout<<"█";Setpos(X+1,Y+1),cout<<"█";Setpos(X-1,Y-2),cout<<"█";Setpos(X+1,Y-2),cout<<"█";}if(Magne>0&&T%7<2)Setpos(X,Y),Color(5),cout<<"★";if(Wind>1){if(T%6<2)Color(1);else Color(0);if(T%8<=1){Setpos(X+1,Y-5);cout<<"---- --";Setpos(X,Y-5);cout<<"- --- -";Setpos(X-1,Y-5);cout<<"--- - --";}else if(T%8<=3){Setpos(X+1,Y-5);cout<<"------ ";Setpos(X,Y-5);cout<<" -- ---";Setpos(X-1,Y-5);cout<<"----- - ";}else if(T%8<=5){Setpos(X+1,Y-5);cout<<" ------";Setpos(X,Y-5);cout<<"-- -- -";Setpos(X-1,Y-5);cout<<"- ----- ";}else if(T%8<=7){Setpos(X+1,Y-5);cout<<"-- ----";Setpos(X,Y-5);cout<<" --- -- ";Setpos(X-1,Y-5);cout<<"- - ----";}}if(Water!=0){Color(1);if(T%20<5){Setpos(X+2,Y-3);cout<<"■";Setpos(X+1,Y-3.5);cout<<"■";Setpos(X-1,Y-2.5);cout<<"■";Setpos(X-2,Y-3);cout<<"■";}else if(T%20<10||T%20>=15){Setpos(X+2,Y-3);cout<<"■";Setpos(X,Y-4);cout<<"■■";Setpos(X-2,Y-3); cout<<"■";}else if(T%20<15){Setpos(X+2,Y-3.5);cout<<"■";Setpos(X+1,Y-3);cout<<"■";Setpos(X-1,Y-3.5);cout<<"■";Setpos(X-2,Y-3);cout<<"■";}}if(Fire!=0){if(T%6<3)Color(4);else Color(5);if(Fir>=1)Setpos(X,Y+1),cout<<"●";if(Fir>=2)Setpos(X+1,Y),cout<<"●";if(Fir>=3)Setpos(X-1,Y-1),cout<<"●";} } if(a==1||a==3){ if(B[b].what==1){Nor;Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].How<=1) Color(13);else Color(4);cout<<"●";if(a==1) Pan(1,B[b].x,B[b].y,b);}} if(B[b].what==2){Nor;Setpos(B[b].x-1,B[b].y-1);if(ti(B[b].x-1)==20)cout<<"======";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";Setpos(B[b].x+1,B[b].y-1);if(ti(B[b].x+1)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);Color(5);if(B[b].How==0){Setpos(B[b].x-1,B[b].y),cout<<"↑";Setpos(B[b].x,B[b].y-1),cout<<"←┼ →";Setpos(B[b].x+1,B[b].y),cout<<"↓";}else if(B[b].How==1){Setpos(B[b].x-1,B[b].y-1),cout<<"↖ ↗";Setpos(B[b].x,B[b].y),cout<<"╳";Setpos(B[b].x+1,B[b].y-1),cout<<"↙ ↘";} if(a==1) Pan(2,B[b].x,B[b].y,b);}} if(B[b].what==3||B[b].what==5){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;Setpos(B[b].x,B[b].y);if(B[b].How==1) Color(5);else Color(4);cout<<"◎";}} if(B[b].what==4){Nor;Setpos(B[b].x,fmax((float)0,B[b].y-8));if(ti(B[b].x)==20){for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<"==";}else {for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<" ";}if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,fmax((float)0,B[b].y-8));Color(6); for(int i=max(0,(int)B[b].y-8);i<=B[b].y;i++)cout<<"═"; if(a==1) Pan(4,B[b].x,B[b].y,b);}} if(B[b].what==6||B[b].what==8||B[b].what==9){Nor;Setpos(B[b].x-1,B[b].y);if(ti(B[b].x)-1==20)cout<<"==";else cout<<" ";Setpos(B[b].x+1,B[b].y);if(ti(B[b].x)+1==20)cout<<"==";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;Setpos(B[b].x,B[b].y-1);if(B[b].what==6){if(B[b].How<=1) Color(1); else Color(6);}if(B[b].what==9){if(B[b].How<=1) Color(4); else Color(8);}if(B[b].what==8)Color(5);Setpos(B[b].x-1,B[b].y);cout<<"︹";Setpos(B[b].x+1,B[b].y);cout<<"︺";Setpos(B[b].x,B[b].y-1);if(B[b].How%2==1) cout<<"〔●〕"; else cout<<"﹝○﹞"; if(a==1) Pan(6,B[b].x,B[b].y,b);}} if(B[b].what==7){Nor;Setpos(B[b].x,B[b].y);if(B[b].How<0) for(int i=19;i>=20+B[b].How;i--) {Setpos(i,B[b].y);cout<<" ";}if(B[b].How>0) for(int i=21;i<=20+B[b].How;i++) {Setpos(i,B[b].y);cout<<" ";}if(B[b].life!=0){B[b].y-=B[b].vy;if(B[b].How<0) for(int i=19;i>=20+B[b].How;i--) {Setpos(i,B[b].y);cout<<"║"; if(a==1) Pan(7,i,B[b].y,b);}if(B[b].How>0) for(int i=21;i<=20+B[b].How;i++) {Setpos(i,B[b].y);cout<<"║"; if(a==1) Pan(7,i,B[b].y,b);}}} if(B[b].what==10||B[b].what==11||B[b].what==12){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){B[b].x-=B[b].vx;B[b].y-=B[b].vy;if(B[b].How==1){B[b].vy-=0.2;}else B[b].vx-=0.35;if(B[b].x>=25) B[b].x=25,B[b].vx*=-0.8;if(B[b].what==11&&B[b].y<=1) B[b].y=1,B[b].vy*=-1;if(B[b].what==12&&B[b].y<=1) B[b].y=1,B[b].vx=0,B[b].vy=-0.5,B[b].How=1;Setpos(B[b].x,B[b].y);if(B[b].what==11)Color(1);else if(B[b].what==12)Color(5);else Color(0);if(B[b].t%4<2)cout<<"▃";else cout<<"▍";if(a==1) Pan(B[b].what,B[b].x,B[b].y,b);}} if(B[b].what>=13&&B[b].what<=17){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"====";else cout<<" ";if(B[b].life!=0){B[b].x-=B[b].vx;B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].what==14) Color(1);else if(B[b].what==15) Color(4);else if(B[b].what==16) Color(5);else if(B[b].what==17) Color(3);else Color(2);cout<<"●";if(B[b].what==14)cout<<"*";if(B[b].what==15)cout<<"";if(B[b].what==16)cout<<"<";if(B[b].what==17)cout<<"X";} if(a==1) Pan(1,B[b].x,B[b].y,b);} if(B[b].what==98&&B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(ti(B[b].x==20))cout<<"==";else cout<<" ";if(B[b].y<=3)B[b].life=0;} if(B[b].what>=99){if(B[b].y<=3)B[b].life=0;if(B[b].life!=0){B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);Color(5);if(B[b].what==99)cout<<"█";if(B[b].what>=100&&B[b].what<200){if(B[b].what%5==0)cout<<"我";if(B[b].what%5==1)cout<<"是";if(B[b].what%5==2)cout<<"最";if(B[b].what%5==3)cout<<"强";if(B[b].what%5==4)cout<<"的";}if(B[b].what>=200&&B[b].what<300){if(B[b].what%6==0)cout<<"神";if(B[b].what%6==1)cout<<"级";if(B[b].what%6==2)cout<<"怪";if(B[b].what%6==3)cout<<"物";if(B[b].what%6==4)cout<<"之";if(B[b].what%6==5)cout<<"光";}if(B[b].what>=300&&B[b].what<400){if(B[b].what%8==0)cout<<"颤";if(B[b].what%8==1)cout<<"抖";if(B[b].what%8==2)cout<<"吧";if(B[b].what%8==3)cout<<"无";if(B[b].what%8==4)cout<<"能";if(B[b].what%8==5)cout<<"的";if(B[b].what%8==6)cout<<"人";if(B[b].what%8==7)cout<<"类";}if(B[b].what>=400&&B[b].what<500){if(B[b].what%8==0)cout<<"还";if(B[b].what%8==1)cout<<"不";if(B[b].what%8==2)cout<<"快";if(B[b].what%8==3)cout<<"跪";if(B[b].what%8==4)cout<<"倒";if(B[b].what%8==5)cout<<"在";if(B[b].what%8==6)cout<<"朕";if(B[b].what%8==7)cout<<"前";}if(B[b].what>=500&&B[b].what<600){if(B[b].what%8==0)cout<<"看";if(B[b].what%8==1)cout<<"懂";if(B[b].what%8==2)cout<<"这";if(B[b].what%8==3)cout<<"句";if(B[b].what%8==4)cout<<"话";if(B[b].what%8==5)cout<<"的";if(B[b].what%8==6)cout<<"是";if(B[b].what%8==7)cout<<"猪";} if(a==1) Pan(1,B[b].x,B[b].y,b);}} if(B[b].what==-1){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(Boss==0) B[b].life=0;else if(((Boss==1&&abs(B[b].x-Bx1)+abs(B[b].y-By1)<1.5)||(Boss==2&&abs(B[b].x-Bx2)+abs(B[b].y-By2)<1.5)||(Boss==3&&abs(B[b].x-Bx3)+abs(B[b].y-By3)<1.5)||(B[b].t==10))&&B[b].life==1) Bblo-=8+Lv*2,B[b].life=0;if(B[b].life!=0){if(Boss==1)B[b].x=B[b].x+(Bx1-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By1-B[b].y)/(10-B[b].t)*1.0;if(Boss==2)B[b].x=B[b].x+(Bx2-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By2-B[b].y)/(10-B[b].t)*1.0;if(Boss==3)B[b].x=B[b].x+(Bx3-B[b].x)/(10-B[b].t)*1.0,B[b].y=B[b].y+(By3-B[b].y)/(10-B[b].t)*1.0;Setpos(B[b].x,B[b].y);Color(7);if(B[b].t%2==0) cout<<"+";else cout<<"×";}} if(B[b].what<=-2&&B[b].what>=-9){Nor;Setpos(B[b].x-1,B[b].y);if(ti(B[b].x)-1==20)cout<<"==";else cout<<" ";Setpos(B[b].x+1,B[b].y);if(ti(B[b].x)+1==20)cout<<"==";else cout<<" ";Setpos(B[b].x,B[b].y-1);if(ti(B[b].x)==20)cout<<"======";else cout<<" ";if(B[b].life!=0){B[b].y-=B[b].vy;B[b].x-=B[b].vx;if(B[b].what<=-3&&B[b].what>=-7){if(B[b].x<=7)B[b].x=7;if(B[b].x>=28)B[b].x=28;else if(B[b].x>=B[b].a+1&&B[b].How==1)B[b].How=0;else if(B[b].x<=B[b].a-1&&B[b].How==0)B[b].How=1;if(B[b].How==1&&B[b].vx>=-1)B[b].vx-=0.2;if(B[b].How==0&&B[b].vx<=1)B[b].vx+=0.2;}if(B[b].what==-2) Color(3);if(B[b].what==-3) Color(4);if(B[b].what==-4) Color(1);if(B[b].what==-5) Color(0);if(B[b].what==-6) Color(6);if(B[b].what==-7) Color(5);if(B[b].what==-8) Color(2);if(B[b].what==-9) Color(14);if(T%7<=1&&B[b].what==-5)Color(1);else if(T%7<=1)Color(0);Setpos(B[b].x-1,B[b].y);cout<<"︹";Setpos(B[b].x+1,B[b].y);cout<<"︺";Setpos(B[b].x,B[b].y-1);if(B[b].what==-2) cout<<"﹝镖﹞";if(B[b].what==-3) cout<<"﹝火﹞";if(B[b].what==-4) cout<<"﹝水﹞";if(B[b].what==-5) cout<<"﹝风﹞";if(B[b].what==-6) cout<<"﹝雷﹞";if(B[b].what==-7) cout<<"﹝磁﹞";if(B[b].what==-8) cout<<"﹝血﹞";if(B[b].what==-9) cout<<"﹝忍﹞"; if(a==1) Pan(-2,B[b].x,B[b].y,b);}} if(B[b].what==-11||B[b].what==-12){Nor;Setpos(B[b].x,B[b].y);if(ti(B[b].x)==20)cout<<"==";else cout<<" ";if(B[b].life!=0){if(Magne>0)B[b].How++,B[b].x=B[b].x+(X-B[b].x)/(10-B[b].How)*1.0,B[b].y=B[b].y+(Y-B[b].y)/(10-B[b].How)*1.0;B[b].y-=B[b].vy;Setpos(B[b].x,B[b].y);if(B[b].what==-10) Color(5);if(B[b].what==-11) Color(7);if(T%7<=1)Color(0);cout<<"◆"; if(a==1) Pan(-1,B[b].x,B[b].y,b);}} if(B[b].what==-13){Nor;Setpos(B[b].x,B[b].y-0.5);if(ti(B[b].x)==20)cout<<"===";else cout<<" ";if(B[b].life!=0){if(B[b].a==13880086){if(Boss==0) B[b].life=0;else if(((Boss==1&&abs(B[b].x-Bx1)+abs(B[b].y-By1)<1.5)||(Boss==2&&abs(B[b].x-Bx2)+abs(B[b].y-By2)<1.5)||(Boss==3&&abs(B[b].x-Bx3)+abs(B[b].y-By3)<1.5)||(B[b].t==5))&&B[b].life==1) Bblo-=8+Lv*2,B[b].life=0;if(B[b].life!=0){if(Boss==1)B[b].x=B[b].x+(Bx1-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By1-B[b].y)/(5-B[b].t)*1.0;if(Boss==2)B[b].x=B[b].x+(Bx2-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By2-B[b].y)/(5-B[b].t)*1.0;if(Boss==3)B[b].x=B[b].x+(Bx3-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(By3-B[b].y)/(5-B[b].t)*1.0;}}else{if(B[B[b].a].life==0) B[b].life=0;else if((abs(B[b].x-B[B[b].a].x)+abs(B[b].y-B[B[b].a].y)<1.5||(B[b].t==5))&&B[b].life==1) Exp+=2,B[B[b].a].life=B[b].life=0;if(B[b].life!=0){B[b].x=B[b].x+(B[B[b].a].x-B[b].x)/(5-B[b].t)*1.0,B[b].y=B[b].y+(B[B[b].a].y-B[b].y)/(5-B[b].t)*1.0;}}Setpos(B[b].x,B[b].y-0.5);if(T%6<3)Color(5);else Color(4);cout<<"●";}} }if(br<bl) {br=-1,bl=0;memset(B,0,sizeof(B));}Color(0); } void Move(){ if(X<3) X=3;if(Y<1) Y=1,Vy=0;if(Y>29) Y=29,Vy=0; if(Ice!=0){X-=Vx/2.0;Y+=Vy/2.0;Vy=fmax(Vy-0.025,(float)0);if(T%6==0&&Up==0&&Y<Ding) Y+=0.25;if(T%6==3&&Up==0&&Y>=Ding) Y-=0.25;if(Up==0&&Y<=Ding-1.25) Vy=0.25;if(Up==0&&Y>=Ding+1.25&&Wind==0) Vy=-0.25;if(Up==0&&Down==0&&Vx>0&&X<=18) Up=0,Down=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2&&X<=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up==0&&Down==1&&Vx<0&&X>=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up>0&&Down==0&&X>18) Up=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2) Vx+=0.175;else if(Up>0&&Upt==0) Vx-=0.175;else if(Up>0&&Upt>0) {Vx=fmax(Vx-0.125,(float)0);if(Upt==1&&T%2==0)Map(-1,0);if(T%2==0)Upt--;}} else{X-=Vx;Y+=Vy;Vy=fmax(Vy-0.05,(float)0);if(Wind==0){if(T%6==0&&Up==0&&Y<Ding) Y+=0.5;if(T%6==3&&Up==0&&Y>=Ding) Y-=0.5;}else{if(T%2==0&&Up==0&&Y<Ding) Y+=0.5;if(T%2==1&&Up==0&&Y>=Ding) Y-=0.5;}if(Up==0&&Y<=Ding-1.25) Vy=0.5;if(Up==0&&Y>=Ding+1.25&&Wind==0) Vy=-0.5;if(Up==0&&Down==0&&Vx>0&&X<=18) Up=0,Down=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2&&X<=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up==0&&Down==1&&Vx<0&&X>=22) Up=0,Down=1,Vx=0,Vy=0,X=22,Setpos(20,Y-2.5),cout<<"==========";else if(Up>0&&Down==0&&X>18) Up=0,Vx=0,Vy=0,X=18,Setpos(20,Y-2.5),cout<<"==========";else if(Down==2) Vx+=0.35;else if(Up>0&&Upt==0) Vx-=0.35;else if(Up>0&&Upt>0) {Vx=fmax(Vx-0.25,(float)0);if(Upt==1)Map(-1,0); Upt--;}} for(int i=bl;i<=br;i++){ if(B[i].what<98)if(B[i].x-B[i].vx<=5||B[i].x-B[i].vx>=30||B[i].y-B[i].vy<=0||B[i].y-B[i].vy>=30){B[i].life=0;Map(1,i);} for(int j=0;j<20;j++)if(B[i].what>0&&B[i].life!=0&&abs(B[i].x-I[j][0])<2&&B[i].y-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;B[i].life=0;Exp+=2;} if(B[i].t>=100)B[i].life=0;if(B[i].life==0&&i==bl) bl++; Map(1,i);if(B[i].life==0) continue; else{B[i].t++; if(B[i].what==1){if(B[i].y<=25&&B[i].How==0) B[i].vy=0,B[i].How=1;if(B[i].t==30) B[i].y+=1.5,B[i].How=2;if(B[i].t==35) B[i].vy=1.5,B[i].How=3;} if(B[i].what==2){if(B[i].t%3==0) B[i].How=!B[i].How;} if(B[i].what==3||B[i].what==5){if(B[i].what==3&&B[i].y<=20) B[i].vy=0;if(B[i].what==5&&B[i].y<=21) B[i].vy=0;if(B[i].t>30&&B[i].t%2==0) B[i].How=!B[i].How;if(B[i].what==5&&B[i].t<=30&&B[i].x<X) B[i].vx=-0.2;else if(B[i].what==5&&B[i].t<=70&&B[i].x>X) B[i].vx=0.2;else B[i].vx=0;if(B[i].t==45){B[i].life=0;br++;B[br].what=4;B[br].x=B[i].x;B[br].y=32;B[br].vy=3;B[br].life=1;}} if(B[i].what==6||B[i].what==8||B[i].what==9){if(B[i].vx<0.25&&B[i].vy<0.25&&B[i].t>=50){B[i].life=0;if(B[i].life==0&&i==bl) bl++;Map(1,i);break;}if(B[i].t%5==0) B[i].How=rand()%4;if(B[i].what==9){if(B[i].t==7){X9:float xx=(rand()%41)/40.0,yy=(rand()%41)/40.0;if(xx<=0.5&&yy<=0.5) goto X9;for(int j=1;j<=4;j++){br++,B[br].what=9;B[br].t=11;B[br].x=B[i].x,B[br].y=B[i].y,B[br].vx=xx,B[br].vy=yy;if(j%2==0)swap(B[br].vx,B[br].vy),B[br].vy*=-1;if(j<=2)B[br].vx*=-1,B[br].vy*=-1;B[br].life=1;}B[i].life=0;}}if(B[i].what==8){if(B[i].x>X&&B[i].vx<1.2) B[i].vx+=fmax((float)0,0.2-B[i].t/25);if(B[i].x<X&&B[i].vx>-1.2) B[i].vx-=fmax((float)0,0.2-B[i].t/25);if(B[i].y>Y&&B[i].vy<1.2) B[i].vy+=fmax((float)0,0.2-B[i].t/25);if(B[i].y<Y&&B[i].vy>-1.2) B[i].vy-=fmax((float)0,0.2-B[i].t/25);}} if(B[i].what>=13&&B[i].what<=15&&B[i].How!=0){if(B[i].x==B[i].How)B[i].vx=0,B[i].How=0;} if(B[i].what==16){if(B[i].x<X&&B[i].vx>=-1) B[i].vx-=0.2;else if(B[i].x>X&&B[i].vx<=1) B[i].vx+=0.2;} } if(B[i].life==1&&B[i].a==0&&B[i].what>0){if(B[i].y>Y&&abs(B[i].x-X)<=3&&((B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y))<Dis) Dis=(B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y),Disb=i;else if(((B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y))<Dis1) Dis1=(B[i].x-X)*(B[i].x-X)+(B[i].y-Y)*(B[i].y-Y),Disb1=i;} } } void Guai(int R,int r){ if(R==-1){br++;B[br].what=-1;B[br].x=X+rand()%3-1;B[br].y=Y+rand()%3-1;B[br].life=1;} if(R<=-2&&R>=-11){br++;B[br].what=R;B[br].x=B[br].a=r;B[br].y=29;if(R<=-3&&R>=-7)B[br].vx=-1;B[br].vy=1;B[br].life=1;} if(R==0){br++;B[br].what=1;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==1){br++;B[br].what=2;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==2||R==3){br++;B[br].what=2*R-1;B[br].x=r;B[br].y=29;B[br].vy=1;B[br].life=1;} if(R==4){br++;B[br].what=6;if(r<5)r=5;if(r>30)r=30;B[br].x=r;if(r==11||r==25) B[br].y=29-(rand()%20);else B[br].y=29;X4:B[br].vx=(rand()%21-10)/30.0;B[br].vy=(rand()%25)/30.0;if(B[br].vx<=0.8&&B[br].vy<=0.8)goto X4;int rx=rand()%50;if(rx==0) B[br].vx=0;B[br].life=1;} if(R==5){br++;B[br].How=r;B[br].what=7;if(B[br].How<0) B[br].x=19;if(B[br].How>0) B[br].x=21;B[br].y=29;B[br].vy=1;B[br].life=1;} } void CpGuai(int R,float x,float y,float xx,float yy){ if(R==4){br++;B[br].what=6;B[br].x=x;B[br].y=y;B[br].vx=xx;B[br].vy=yy;B[br].life=1;} if(R==6||R==7||R==8){br++;B[br].what=4+R;B[br].x=x;B[br].y=y;B[br].vx=xx;B[br].vy=yy;B[br].life=1;} } void MesGuai(int a,int rr){ int R=rand()%rr,r=-10086; if(R==0){if(a==1) r=(5+rand()%8)*2;if(a<=3&&a!=1) r=10+rand()%16;if(a==4) r=rand()%75-20;if(a==5) r=2+rand()%4;if(r!=-10086) Guai(a,r);} } void NorGuai(int a,int b){ if(a==1) {if(b==1||b==41) Guai(0,15),Guai(0,17),Guai(0,19);if(b==21||b==61) Guai(0,21),Guai(0,23),Guai(0,25);if(b==81) Guai(0,11),Guai(0,13),Guai(0,15),Guai(0,17),Guai(0,19);if(b==101||b==141) Guai(0,17),Guai(0,19),Guai(0,21),Guai(0,23),Guai(0,25);if(b==121) Guai(0,15),Guai(0,17),Guai(0,19),Guai(0,21),Guai(0,23);if(b>=160&&b<=260&&b%10==0) Guai(0,b/10-1);if(b>=270&&b<=370&&b%10==0) Guai(0,52-b/10);if(b>=460&&b<=560&&b%10==0) Guai(0,b/10-37),Guai(0,b/10-36),Guai(0,b/10-35);if(b>=570&&b<=670&&b%10==0) Guai(0,78-b/10),Guai(0,77-b/10),Guai(0,76-b/10);if(b>=760&&b<=960&&b%10==0) Guai(0,b/10-66),Guai(0,b/10-65),Guai(0,103-b/10),Guai(0,104-b/10);if(b>=1000&&b<=1300) MesGuai(0,30-b/50);} if(a==2) {if(b<=200&&b%30==1) {int r=rand()%4;if(r==1) r=0;for(int i=0;i<4;i++) if(i!=r) Guai(1,i*4+9);}if(b>200&&b<=220&&b%5==1) Guai(1,18);if(b>220&&b<=300&&b%7==1) Guai(1,b/5-26);if(b>350&&b<=370&&b%5==1) Guai(1,22);if(b>370&&b<=450&&b%7==1) Guai(1,96-b/5);if(b==461||b==501||b==541) Guai(1,13),Guai(1,17),Guai(1,21);if(b==481||b==521||b==561) Guai(1,17),Guai(1,21),Guai(1,25);if(b>=561&&b<=861&&b%20==1) Guai(1,b/40+5);if(b>=561&&b<=861&&b%20==11) Guai(1,35-b/40);if(b>=801&&b<=961&&b%15==1) Guai(1,20);if(b>=1000&&b<=1300) MesGuai(1,30-b/50);} if(a==3) {if(b==1||b==61) Guai(3,15),Guai(2,17),Guai(2,19);if(b==31||b==91) Guai(2,21),Guai(2,23),Guai(3,25);if(b>=120&&b<=220&&b%10==0) Guai(2,b/10+3);if(b>=240&&b<=340&&b%10==0) Guai(2,49-b/10);if(b>=360&&b<=460&&b%20==0) Guai(2,b/10-21),Guai(2,61-b/10);if(b>=480&&b<=580&&b%20==0) Guai(3,b/10-33),Guai(3,73-b/10);if(b>=600&&b<750&&b%30==0) {for(int i=0;i<5;i++) Guai(3,i*3+10);}if(b>=750&&b<830&&b%10==0) if(b<=200&&b%40==1) Guai(2,X);if(b>=830&&b<910&&b%20==0) Guai(2,X);if(b>=910&&b<980&&b%10==0) Guai(2,X);if(b>=1000&&b<=1300) MesGuai(rand()%2+2,40-b/50);} if(a==4) {if(b==1) CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,21,29,0,0.65);if(b==41) CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,18,29,0,0.65);if(b==81) CpGuai(4,5,20,-0.4,0.35),CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,30,20,0.25,0.4),CpGuai(4,21,29,0,0.65);if(b==121) CpGuai(4,5,20,-0.2,0.35),CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,30,20,0.4,0.4),CpGuai(4,18,29,0,0.65);if(b==161) CpGuai(4,10,29,-0.4,0.7),CpGuai(4,14,29,-0.2,0.7),CpGuai(4,21,29,0,0.6),CpGuai(4,10,29,-0.2,0.7),CpGuai(4,14,29,-0.1,0.7),CpGuai(4,18,29,0,0.65);if(b>=200&&b<=500&&b%40==1) {float r=0,rr;for(int i=1;i<=5;i++){X5:rr=0.7+(rand()%5)/10.0;if(rr==r)goto X5;r=rr;CpGuai(4,i*3+7,29,0,0.5+(rand()%50)/80.0);}}if(b>540&&b<=565&&b%5==1) CpGuai(4,5,8,-2,0.2);if(b>590&&b<=615&&b%5==1) CpGuai(4,30,8,1.5,0.2);if(b>640&&b<=665&&b%5==1) CpGuai(4,5,8,-1.5,0.3);if(b>690&&b<=715&&b%5==1) CpGuai(4,30,8,2,0.3);if(b>=750&&b<=950&&b%20==1) {float r=0,rr;for(int i=1;i<=3;i++){X6:rr=0.7+(rand()%5)/10.0;if(rr==r)goto X6;r=rr;CpGuai(4,i*5+7+(rand()%3),29,0,0.5+(rand()%50)/200.0);}}if(b>=1000&&b<=1300) MesGuai(4,5);} } void RandGood(){ if(Biao>0){Biao--;Guai(-1,0);} if(Gd[1]==0){Gd[1]=rand()%1000+1;if(Win==7)Gd[1]=10086;Gd[3]=rand()%16+8;} else if(Gd[1]<=5){Guai(-2-Gd[1],Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=20&&Gd[1]<27){Guai(-8,Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=30&&Gd[1]<37){Guai(-9,Gd[3]);memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=40&&Gd[1]<70){Gd[2]++;if(Gd[2]%2==1)Guai(-10,Gd[3]);if(Gd[2]>=9)memset(Gd,0,sizeof(Gd));} else if(Gd[1]>=70&&Gd[1]<100){Gd[2]++;if(Gd[2]%2==1)Guai(-11,Gd[3]);if(Gd[2]>=9)memset(Gd,0,sizeof(Gd));} else if(Boss!=0&&Gd[1]>=450&&Gd[1]<=500){Guai(-2,Gd[3]);memset(Gd,0,sizeof(Gd));} else Gd[1]=0; for(int i=0;i<20;i++){if(I[i][0]==-1) continue;Setpos(I[i][0],I[i][1]);Color(0);if(I[i][0]==20) cout<<"===";else cout<<" ";I[i][1]++;if(I[i][0]>=28||I[i][0]<=0||I[i][1]>=29) I[i][0]=I[i][1]=-1;else Color(1),Setpos(I[i][0],I[i][1]),cout<<"■";Color(0);} } void Panboss(int bx,int by){ float Nox[4],Noy[4];Nox[0]=X,Noy[0]=Y; if(Down==1&&X==22) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; else if(Down==2) Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else if(Down==1||X<18) Nox[1]=X-1,Noy[1]=Y-0.5,Nox[2]=-10,Noy[2]=-10; else Nox[1]=X+1,Noy[1]=Y-0.5,Nox[2]=X-1,Noy[2]=Y-0.5; for(int i=0;i<3;i++){if((Boss==1||Boss==6)&&Wind==0&&Thun==0&&abs(Nox[i]-bx)<1&&abs(Noy[i]-by)<1&&Bgo1[4]==0) Blo-=20,Bgo1[4]=1,Killb=20,Kill=1;if((Boss==2||Boss==6)&&Wind==0&&Thun==0&&abs(Nox[i]-bx)<1&&abs(Noy[i]-by)<1&&Bgo2[8]==0) Blo-=20,Bgo2[8]=1,Killb=20,Kill=1;} } void Boss1(){ for(int j=0;j<20;j++)if(abs(Bx1-I[j][0])<2&&By1-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} if(Bbr==Bbl&&Bbr!=0) Bbr=Bbl=0; for(int i=1;i<=3+(Bbl-Bbr)/5;i++)if(Bbr<Bbl){Setpos(Bway[Bbr][0],Bway[Bbr][1]);if(Bway[Bbr][0]==20) cout<<"==";else cout<<" ";Bbr++;} if(Bwhat1==5){int bx,by;Color(5);for(int i=0;i<10;i++){bx=Bx1-i*Bvx1/10.0;by=By1-i*Bvy1/10.0;Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;}Color(0);} Bx1-=Bvx1;By1-=Bvy1; if(Bwhat1==0){X2:Bwhat1=rand()%7;if(Bwhat1==2||Bwhat1==3){if(By1<=10||By1>25) goto X2;}if(Bwhat1==4){if(By1<=15||Bx1<20) goto X2;Bgo1[2]=Bx1;Bgo1[3]=By1-1;}if(Bwhat1==5) {X0:Bgo1[3]=rand()%4+1;Bvx1=(rand()%101)/20.0;Bvy1=(rand()%101)/20.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(abs(Bvx1)+abs(Bvy1)<=3||Out1)goto X0;}if(Bwhat1==6){if(By1<=17||By1>25) goto X2;}} if(Bwhat1==1){Bgo1[1]++,Bgo1[2]++;int R=rand()%(5-Bgo1[1]),r=rand()%(10-Bgo1[2]);if(Out1) R=0;if(R==0) {int vx=Bvx1,vy=Bvy1;Bgo1[1]=0;Bvx1=(rand()%101-20)/50.0;Bvy1=(rand()%101-20)/50.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(Out1) r=0;} if(r==0) Chang1 } if(Bwhat1==2){Bgo1[1]++;if(Bgo1[1]>6){Bvy1=-0.3;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=6;X3:B[br].vx=(rand()%21-10)/40.0;B[br].vy=(rand()%25)/30.0;if(B[br].vx<=0.8&&B[br].vy<=0.8)goto X3;int rx=rand()%50;if(rx==0) B[br].vx=0;B[br].life=1;}if(Bgo1[1]>8) Chang1} if(Bwhat1==3){Bgo1[1]++;if(Bgo1[1]>6&&Bgo1[1]%3==0){Bvy1=-0.3;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=8;B[br].life=1;}if(Bgo1[1]>15) Chang1} if(Bwhat1==4){Bgo1[1]++;if(Bgo1[1]<=8){Setpos(Bgo1[2],Bgo1[3]);if(Bgo1[1]==1)cout<<" ";else if(Bgo1[1]>1&&Bgo1[2]==20) cout<<"==";else cout<<" ";Bgo1[2]--;Setpos(Bgo1[2],Bgo1[3]);int r=rand()%4;if(r%2==0) Color(6);else Color(9);if(r<2) cout<<") ";else cout<<"】";Color(0);}if(Bgo1[1]==6) Bgo1[5]=X,Bgo1[6]=Y;if(Bgo1[1]==11){Map(0,(bool)Kill);Setpos(Bgo1[5],Bgo1[6]+1),cout<<" ";Setpos(Bgo1[5],Bgo1[6]-1),cout<<" ";Setpos(Bgo1[5]+1,Bgo1[6]),cout<<" ";Setpos(Bgo1[5]-1,Bgo1[6]),cout<<" ";int bx,by,bvx=Bgo1[2]-Bgo1[5],bvy=Bgo1[3]-Bgo1[6];Color(6);int i=0;while(1){bx=Bgo1[2]-i*bvx/30.0;by=Bgo1[3]-i*bvy/30.0;if(bx<=5||bx>=30||by<0||by>=29) break;Panboss(bx,by);Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;i++;}Color(0);Map(-1,0);Chang1}} if(Bwhat1==5){Bgo1[1]++,Bgo1[2]++;int R=rand()%(5-Bgo1[1]),r=rand()%(10-Bgo1[2]);if(Out1) R=0;if(R==0) {int vx=Bvx1,vy=Bvy1;Bgo1[1]=0;X1:Bvx1=(rand()%101-20)/20.0;Bvy1=(rand()%101-20)/20.0;if(Bgo1[3]<=2) Bvx1*=-1;if(Bgo1[3]%2==1) Bvy1*=-1;if(abs(Bvx1)+abs(Bvy1)<=3||abs(Bvx1-vx)<=1||abs(Bvy1-vy)<=1)goto X1;if(Out1) r=0;} if(r==0) Chang1 } if(Bwhat1==6){Bgo1[1]++;if(Bgo1[1]>6&&Bgo1[1]%10==0){By1-=1;br++;B[br].x=Bx1,B[br].y=By1-1;B[br].what=9;X30:B[br].vy=1;B[br].life=1;}if(Bgo1[1]>31) Chang1} } void Boss2(){ for(int j=0;j<20;j++)if(abs(Bx2-I[j][0])<2&&By2-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} if(Bbr==Bbl&&Bbr!=0) Bbr=Bbl=0; for(int i=1;i<=3+(Bbl-Bbr)/5;i++)if(Bbr<Bbl){Setpos(Bway[Bbr][0],Bway[Bbr][1]);if(Bway[Bbr][0]==20) cout<<"==";else cout<<" ";Bbr++;} Bx2-=Bvx2;By2-=Bvy2; if(Bwhat2==0){X21:Bwhat2=rand()%7;if(Bwhat2==2){X31:for(int i=1;i<=3;i++){Bgo2[i*2+1]=rand()%28+1,Bgo2[i*2]=rand()%25+5;if((abs(Bgo2[i*2]-Bx2)<=2&&abs(Bgo2[i*2+1]-By2)<=2)||(abs(Bgo2[i*2]-X)<=2&&abs(Bgo2[i*2+1]-Y)<=2))goto X31;}if(Bgo2[2]==Bgo2[4]||Bgo2[2]==Bgo2[6]||Bgo2[6]==Bgo2[4]||Bgo2[5]==Bgo2[3]||Bgo2[3]==Bgo2[7]||Bgo2[5]==Bgo2[7]) goto X31;}if(Bwhat2==3){Bgo2[2]=rand()%2;}if(Bwhat2==4||Bwhat2==5||Bwhat2==6){Bvy2=-1.5;Bvx2=-0.5;}} if(Bwhat2==1){Bgo2[1]++,Bgo2[2]++;int R=rand()%(5-Bgo2[1]),r=rand()%(30-Bgo2[2]);if(Out2) R=0;if(R==0) {int vx=Bvx2,vy=Bvy2;Bgo2[1]=0;Bvx2=(rand()%101-20)/50.0;Bvy2=(rand()%101-20)/50.0;if(Bgo2[3]<=2) Bvx2*=-1;if(Bgo2[3]%2==1) Bvy2*=-1;if(Out2) r=0;} if(r==0) Chang2 } if(Bwhat2==2){Bgo2[1]++;float bx,by,bvx,bvy;if(Bgo2[1]<21){for(int i=1;i<=3;i++){bvx=Bgo2[i*2]-Bx2,bvy=Bgo2[i*2+1]-By2;if(Bgo2[1]<=10){Setpos(Bx2+(Bgo2[1]-1)*bvx/10.0,By2+(Bgo2[1]-1)*bvy/10.0);if(abs(Bx2+(Bgo2[1]-1)*bvx/10.0-20)<0.5)cout<<"==";else cout<<" ";bx=Bx2+Bgo2[1]*bvx/10.0;by=By2+Bgo2[1]*bvy/10.0;Setpos(bx,by);}else Setpos(Bgo2[i*2],Bgo2[i*2+1]);int r=rand()%4;if(r%2==0) Color(3);else Color(10);if(r<=1) cout<<"×";else cout<<"+";Color(0);}}if(Bgo2[1]==21){Map(0,(bool)Kill);Color(3);int j=0;for(int j=0;j<=30;j++)for(int i=1;i<=3;i++)for(int k=1;k<=4;k++){if(k==1) bvx=j,bvy=0;if(k==2) bvx=-j,bvy=0;if(k==3) bvx=0,bvy=j;if(k==4) bvx=0,bvy=-j;bx=Bgo2[i*2]+bvx,by=Bgo2[i*2+1]+bvy;if(bx<=5||bx>=30||by<0||by>=30) {continue;}Panboss(bx,by);Setpos(bx,by),cout<<"█";Bbl++;Bway[Bbl][0]=bx;Bway[Bbl][1]=by;}Color(0);Map(-1,0);Chang2}} if(Bwhat2==3){Bgo2[1]++;if(Bgo2[1]<=18){if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";if(Bgo2[1]%4==0)Bgo2[3]=!Bgo2[3];if(Bgo2[1]%6<3)Color(3);else Color(5);if(Bgo2[3]==0) Setpos(X-3,Y),cout<<"▼",Setpos(X+3,Y),cout<<"▲",Bgo2[4]=(int)(X+0.5),Bgo2[5]=(int)(Y+0.5);if(Bgo2[3]==1) Setpos(X,Y-3),cout<<" ",Setpos(X,Y+3),cout<<" ",Bgo2[4]=(int)(X+0.5),Bgo2[5]=(int)(Y+0.5);Color(0);}if(Bgo2[1]==18){if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";}if(Bgo2[1]>18&&Bgo2[1]<=25){Bgo2[3]=Bgo2[2];if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<" ",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<" ",Color(0),Setpos(20,Bgo2[5]),cout<<"==";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3.5),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+2.5),cout<<" ",Color(0),Setpos(20,Bgo2[5]+2.5),cout<<"====",Setpos(20,Bgo2[5]-3.5),cout<<"====";if(Bgo2[1]%4<2)Color(3);else Color(5);if(Bgo2[3]==0) Setpos(Bgo2[4]-3,Bgo2[5]),cout<<"▼",Setpos(Bgo2[4]+3,Bgo2[5]),cout<<"▲";if(Bgo2[3]==1) Setpos(Bgo2[4],Bgo2[5]-3),cout<<" ",Setpos(Bgo2[4],Bgo2[5]+3),cout<<" ";Color(0);}if(Bgo2[1]==25){if(Bgo2[2]==0){Color(3);for(int i=4;i<=29;i++){Setpos(i,Bgo2[5]),cout<<"█";Bbl++;Panboss(i,Bgo2[5]);Bway[Bbl][0]=i;Bway[Bbl][1]=Bgo2[5];}}if(Bgo2[2]==1){Color(3);for(int i=0;i<=28;i++){Setpos(Bgo2[4],i),cout<<"█";Bbl++;Panboss(Bgo2[4],i);Bway[Bbl][0]=Bgo2[4];Bway[Bbl][1]=i;}}Chang2}} if(Bwhat2==4||Bwhat2==5||Bwhat2==6){Bgo2[1]++;if(By2>27)Bvy2=0;if(Bx2>23)Bvx2=0;if(Bgo2[1]>13&&Bgo2[1]%3==0){float t=By2-Y,g=0.35;if(Boss==6) t/=2.0;CpGuai(Bwhat2+2,Bx2,By2,(Bx2-X)/t*1.0+(t-1)*g/2.0,1);}if(Bgo2[1]>20) Chang2} } void Boss3(){ #define Bean br++;B[br].what=13;B[br].x=Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1; for(int j=0;j<20;j++)if(abs(Bx3-I[j][0])<2&&By3-I[j][1]<=2){Setpos(I[j][0],I[j][1]);if(I[j][0]==20) cout<<"===";else cout<<" ";I[j][0]=I[j][1]=-1;Bblo-=8+Lv*2;Exp+=2;} Bx3-=Bvx3;By3-=Bvy3; if(Bwhat3<=8){if(Bx3>X&&Bvx3<1.5) Bvx3+=0.3;if(Bx3<X&&Bvx3>-1.5) Bvx3-=0.3;} if(Bwhat3==0){X22:Bwhat3=rand()%12;if(Bwhat3==11&&abs(Bx3-20)<=1)goto X22;if(Bwhat3==11)Bgo3[2]=rand()%5;} if(Bwhat3==1){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=13;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3>=2&&Bwhat3<=6){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].what=11+Bwhat3;B[br].vy=0.5+(rand()%100)/80.0;if(Bwhat3==5)B[br].vy=B[br].vy*3/4.0;B[br].life=1;Chang3}} if(Bwhat3==7){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=14;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3==8){Bgo3[1]++;if(Bgo3[1]==6){br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=1;B[br].How=(int)Bx3-4;B[br].life=1;br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].vx=-1;B[br].How=(int)Bx3+2;B[br].life=1;br++;B[br].what=15;B[br].x=(int)Bx3-1,B[br].y=By3-1;B[br].vy=1;B[br].life=1;Chang3}} if(Bwhat3==9){Bvx3=0;Bgo3[1]++;if(Bgo3[1]==6||Bgo3[1]==8){Bean}if(Bgo3[1]>=8)Chang3} if(Bwhat3==10){Bvx3=0;Bgo3[1]++;if(Bgo3[1]==6||Bgo3[1]==8||Bgo3[1]==10||Bgo3[1]==12){Bean}if(Bgo3[1]>=12)Chang3} if(Bwhat3==11){Bvx3=0;Bgo3[1]++;if(Bgo3[1]>=8)for(int i=1;i<=4;i++){br++;B[br].what=80+100*Bgo3[2]+Bgo3[1]*4+i;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=99;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=99;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}if(Bgo3[1]>=20){for(int i=1;i<=4;i++){br++;B[br].what=98;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}Chang3}} } void Ball(int ball){ if(ball==1){if(Fir<3&&T%8==0) Fir++;if(Fir>0){br++;B[br].what=-13;B[br].x=X;B[br].y=Y+rand()%3-1;B[br].life=1;if(Dis<=30) B[br].a=Disb,B[Disb].a=1,Fir--;else if(Boss!=0) B[br].a=13880086,Fir--;else if(Dis!=13880087) B[br].a=Disb,B[Disb].a=1,Fir--;else if(Dis1!=13880087) B[br].a=Disb1,B[Disb1].a=1,Fir--;else B[br].life=0;Dis=Dis1=13880087;}} if(ball==2){if(T%4==0)ib=(ib+1)%20,I[ib][1]=Y-2;if(T%16==0)I[ib][0]=X;if(T%16==4)I[ib][0]=X-1;if(T%16==8)I[ib][0]=X+1;if(T%16==12)I[ib][0]=X-2;if(T%12==9)I[ib][0]=X+2;if(Water==1){for(int i=X-6;i<=X+6;i++)ib=(ib+1)%20,I[ib][0]=i,I[ib][1]=Y-2-0.5*abs(i-X);}} if(ball==3){if(Wind>5){if(Y<Ding-1)Vy=5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(Wind<5){if(Y>Ding-1)Vy=-5;else Vy=0;if(Up>=1) Vx=-5;if(Down==2) Vx=5;}if(Wind==5){if(Boss==2) Ding=12.25;else Ding=6.25;if(Boss!=0) Bblo-=16+Lv*4;if(Boss==1) Chang1 if(Boss==2) Chang2 if(Boss==3) Chang3 system("color 3F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");system("cls");for(int i=bl;i<=br;i++)if(B[i].what>0)B[i].life=0;Setpos(20,0);for(int i=1;i<=60;i++) printf("=");}} if(ball==4){if(Thun==1){if(Boss!=0) Bblo-=16+Lv*4;if(Boss==1) Chang1 if(Boss==2) Chang2 if(Boss==3) Chang3 system("color 9F");Sleep(20);system("color 6F");Sleep(10);system("color 0F");system("cls");for(int i=bl;i<=br;i++)if(B[i].what>0)B[i].life=0;Setpos(20,0);for(int i=1;i<=60;i++) printf("=");}} if(ball==5){system("cls"); Color(5);Setpos(10,10);cout<<"新天赋!";Y:int rr=rand()%4+2;Setpos(12,10);if(rr==Ren) goto Y;if(rr==2)cout<<"瞬跳";if(rr==3)cout<<"空之舞";if(rr==4)cout<<"三段跳";if(rr==5)cout<<"反重力跳跃";Setpos(14,10);cout<<"当前天赋:";if(Ren==1)cout<<"小无敌";if(Ren==2)cout<<"瞬跳";if(Ren==3)cout<<"空之舞";if(Ren==4)cout<<"三段跳";if(Ren==5)cout<<"反重力跳跃";Setpos(16,10);cout<<"换否?(y/n)";G:char g=_getch();if(g=='y')Ren=rr;else if(g!='n')goto G;system("cls");Setpos(20,0);Color(0);for(int i=1;i<=60;i++) printf("=");} if(ball==6){Color(4);for(float i=1;i<=Bblo;i+=Bblomax/20.0)cout<<"▄";Color(0);cout<<' '<<Bblo<<" ";Color(0);} if(ball==7){Color(1);if(Win==7&&T%6<3)Color(3);for(float i=1;i<=Blo;i+=Blomax/20.0)cout<<"▄";Color(0);if(Win==7&&T%6<3)Color(3);printf(" %0.1f ",Blo);} } int main(){ system("mode con cols=60 lines=37");CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);srand((unsigned)time(NULL)); Win=0;Ren=1;Lv=1;Blo=Blomax=100;Expmax=300;Hui=15;X=18,Y=6; ReStart:system("cls");memset(B,0,sizeof(B));memset(I,-1,sizeof(I));T=0;bl=0;br=-1;Upt=0; Start:Blo=Blomax * 100;Ding=6.25; memset(Bgo1,0,sizeof(Bgo1));memset(Bgo2,0,sizeof(Bgo2));memset(Bgo3,0,sizeof(Bgo3)); if(Win%2==0) T=0;if(Win%2==0&&D==0){if(Win>0)Ball(5);Boss=0;lL:L=rand()%4+1;for(int i=0;i<=Win/2-1;i++)if(L==Ll[i]) goto lL;Ll[Win/2]=L;}if(Win%2==1&&D==0){if(Win==7)Boss=6,T=0,Blomax+=100;else{bl:Boss=rand()%3+1;for(int i=0;i<=3;i++)if(Boss==Bl[i]) goto bl;}Bl[Win/2]=Boss;Bwhat1=Bwhat2=Bwhat3=0,Bx1=10,By1=20,Bx2=15,By2=20,Bx3=21,By3=20;system("color 4C");Sleep(20);system("color 0F");Map(0,1);Sleep(1000);}if(Win%2==1){Bblomax=500+(Win/2)*500;Bblo=Bblomax;if(Boss==2) Ding=12.25;} while(1){ T++; if(Wind==0){if(GetAsyncKeyState(VK_LEFT)&0x8000) Vy=-(10-abs(Ding-Y)*1.5)/20.0;if(GetAsyncKeyState(VK_RIGHT)&0x8000) Vy=(10-abs(Ding-Y)*1.5)/20.0;}if(GetAsyncKeyState(VK_UP)&0x8000&&u1==0) {u1++;if(Down==1){Down=0;Up=0;if(Ren==2)Map(-1,0),Vx=0,X=18,Li=5;else Vx=7,Vy=0.3;}else if(Up==0&&Wind==0) {Down=0;Up=1;if(Ren==2)Map(-1,0),Vx=1,X=10,Map(0,3),Li=5;else Vx=2,Vy=0.1;}else if(Up==1&&Wind==0) {Down=0;Up=2;if(Ren==2)Map(-1,0),Vx=1,X-=6,Map(0,3),Li=5;else Vx=1.5,Vy=0.1;}else if(Ren==3&&Up==2&&Wind==0) {Down=0;Up=3;Vx=1;Vy=0.5;Upt=30;}else if(Ren==4&&Up==2&&Wind==0) {Down=0;Up=3;Vx=1.8;Vy=0.1;}}if(GetAsyncKeyState(VK_DOWN)&0x8000&&u2==0) {u2++;if(Down==1&&Ren==5){Down=2;Up=0;Vx=-1.7;}else {Down=1;Up=0;if(Ren==2)Map(-1,0),Vx=0,X=22,Map(0,3),Li=5;else {if(Upt!=0) Map(-1,0),Upt=0;Vx=-7;}}}if((GetAsyncKeyState(VK_UP)&0x8000) ?0:1) u1=0;if((GetAsyncKeyState(VK_DOWN)&0x8000) ?0:1) u2=0;if(kbhit()){char g=_getch();if(g==' ') Sleep(100),Setpos(4,1),Sy++,system("pause");}if(Sy==1) Setpos(4,1),printf(" "),Sy--; if(Drug==0) Blo=fmin((float)Blomax,Blo+Hui/100.0);else if(T%10==0)Blo--;if(T%20==0) {if(Kill!=0) Kill=0;if(Lvl!=0) Lvl=0;}if(Killb>0) Killb--;if(Li>0) Li--;if(Ice>0) Ice--;if(Drug>0) Drug--;if(Magne>0) Magne--; if(Fire>0) Ball(1),Fire--;if(Water>0) Ball(2),Water--;if(Wind>0) Ball(3),Wind--;if(Thun>0) Ball(4),Thun--; if(Boss==0) NorGuai(L,T%1500);RandGood();if(T%20==1)Exp++; if(T%50==1){Exp++;system("cls");Setpos(20,0);Color(0);for(int i=1;i<=60;i++) printf("=");if(Win==0&&T<300){Setpos(4,6);cout<<"↑/↓ 跳跃/下翻,←→ 些微移动(松手即返回)"; Setpos(8,6);cout<<"球可以开启特殊效果,经验积满(300)可提升级别。";Setpos(8,6);cout<<"打败 7 波即胜利,打败 BOSS 有新天赋。";Setpos(10,15);cout<<"空格可以暂停。";}} Map(-1,0); if(Boss==1) Boss1();if(Boss==2) Boss2();if(Boss==3) Boss3();if(Boss==6) Boss1(),Boss2(),Boss3(); Move();Map(0,(bool)Kill);Color(0); Setpos(1,1);Blo=fmin(Blo,(float)Blomax);if(Boss==0)cout<<"血量: "<<(int)Blo<<" ";Color(0);Setpos(1,9),cout<<"死亡次数: "<<D<<" ";Setpos(2,1);Exp=min(Exp,Expmax);if(Exp>=Expmax)Exp=0,Lv++,Lvl++,Hui++,Blomax+=5;if(Lvl>0)Color(5);cout<<"级别: "<<Lv;Color(0);Setpos(2,9);cout<<"经验: "<<Exp<<" ";if(Boss>0) Setpos(3,1),cout<<"血量 : ",Ball(7);if(Boss>0&&Boss!=6) Setpos(4,1),cout<<"怪物血量: ",Ball(6);if(Boss==6) Setpos(1,9),printf("时间: %0.1f s ",T/15.0); if(Win==0) Sleep(55);if(Win==1) Sleep(50);if(Win==2) Sleep(35);if(Win==3) Sleep(40);if(Win==4) Sleep(25);if(Win==5) Sleep(30);if(Win==6) Sleep(20);if(Win>=7) Sleep(17); if(Boss==3&&Bblo<=0){for(int i=1;i<=4;i++){br++;B[br].what=98;B[br].x=Bx3-1,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;br++;B[br].what=98;B[br].x=Bx3-2,B[br].y=By3-1+i;B[br].vy=4;B[br].life=1;}} if((Win%2==0&&T>=1400)||(Win%2==1&&Bblo<=0)||(Win==7&&T>=450)||Blo<=0) {Map(-1,0);break;} } if(Blo<=0){ Sleep(1000); D++; system("color 7F"); Setpos(15,11); Color(4); cout<<"GAME OVER..."; Sleep(2000); goto ReStart; } else if(Win==6){ system("color 7F"); Setpos(15,11); Color(4); cout<<"坚持30秒 !"; Sleep(2000); Setpos(30,0); Win++; D=0; } else if(Win==7){ Sleep(1000); system("color 6E"); Setpos(15,11); Color(5); cout<<"YOU WIN !"; Sleep(2000); Setpos(30,0); return 0; }else Sleep(1000),Win++,D=0; goto Start; }
//PVP #include<algorithm> #include<cmath> #include<vector> #include<stdio.h> #include<iostream> #include<string> #include<cstring> #include<windows.h> #include<conio.h> #include<cstdlib> #include<ctime> #include<fstream> using namespace std; int ax[5]; void gotoxy(int y,int x) { COORD coord; coord.X=x; coord.Y=y; HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(a,coord); } void coutwhat(int a,int b,int c,int d,string n) { int i,j; for(i=a;i<=c;i++) for(j=b;j<=d;j++) { gotoxy(i,j); cout<<n; } } void color(int x) { switch(x) { case 0:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);break; case 1:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_GREEN);break; case 2:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_GREEN);break; case 3:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_GREEN);break; case 4:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE);break; case 5:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_BLUE |FOREGROUND_RED);break; case 7:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED);break; case 8:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_GREEN);break; case 9:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY |FOREGROUND_RED|FOREGROUND_BLUE);break; case 10:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED);break; default:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);break; } } int random(int n,int m) { int s; s=rand()%(m-n+1); s+=n; return s; } void cls() { system("cls"); } struct Player { string name; int hp; int HP; int attack; int defence; int fw;//0,1,2,3 int energy; int kill; int x; int y; int sc; int zl; int cs; }; Player player[5]; void printfssbh(int n) { int i,j,k; for(i=1;i<=4;i++) { gotoxy(0,i*25); cout<<player[i].energy<<"("<<player[i].energy/10.0<<"%)"<<player[i].kill<<"kill "; } //计算生命百分比 float a[5]; int b[5]; for(i=1;i<=n;i++) a[i]=(player[i].hp*1.0)/(player[i].HP*1.0); for(i=1;i<=n;i++) b[i]=a[i]*100; for(i=1;i<=n;i++) if (b[i]>10000) b[i]=0;//死者 else if (b[i]>100) b[i]=100;//血量溢出但还没死 //输出 for(i=1;i<=n;i++) { gotoxy(35+i,0); cout<<"|"; coutwhat(35+i,1,35+i,b[i],"#"); coutwhat(35+i,b[i]+1,35+i,100," "); gotoxy(35+i,101); cout<<"|"; cout<<a[i]*100.0<<'%'; cout<<" "<<player[i].hp; gotoxy(35+i,120); printf("Player %d",ax[i]); } } bool save[5]={1,1,1,1,1}; void printfplayer(string ml,int n) { int i; if (ml=="clear") { for(i=1;i<=n;i++) { gotoxy(player[i].x,player[i].y); cout<<" "; } } if (ml=="printf") { for(i=1;i<=n;i++) { if (save[i]==0) //此人已亡 continue; color(i*3); gotoxy(player[i].x,player[i].y); cout<<"♀"; } } } void hidden() { HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(handle, &CursorInfo); CursorInfo.bVisible = false; SetConsoleCursorInfo(handle, &CursorInfo); } bool choose[5]={0,0,0,0,0}; /* 攻击方式: player 1 十字架攻击 player 2 小范围攻击 player 3 全战场攻击 (随机攻击一人) player 4 三角形攻击 */ int PVP(int n) { int r=n,m,i,j,k,sh; //输出界面 coutwhat(1,0,1,100,"="); coutwhat(2,0,32,0,"|"); coutwhat(33,0,33,100,"="); coutwhat(2,101,32,101,"|"); for(i=1;i<=4;i++) save[i]=choose[i];//没被选的都是死人 while(r>1) { for(i=1;i<=n;i++) if (save[i]==0) player[i].hp=21474836;//永远无法击败死者 int GJ[5]={0,0,0,0,0};//记录被攻击者编号 int qx=0,qy=0,zx=0,zy=0; hidden(); //输出实时变化 printfssbh(n); //输入 char l='/'; if (kbhit()) l=getch(); m=0; //已死亡玩家判断 if ((l=='w'||l=='a'||l=='s'||l=='d'||l=='x'||l=='q'||l=='e'||l=='z'||l=='c')&&save[1]==0) l='/'; if ((l=='u'||l=='i'||l=='o'||l=='j'||l=='k'||l=='l'||l=='m'||l==','||l=='.')&&save[2]==0) l='/'; if ((l>='1'&&l<='9')&&save[3]==0) l='/'; printfplayer("clear",n); switch(l) { //Player 1 case 'w':if (player[1].x-1>=4)player[1].x--;break; case 'a':if (player[1].y-1>=2)player[1].y--;break; case 's':if (player[1].x+1<=32)player[1].x++;break; case 'd':if (player[1].y+1<=100)player[1].y++;break; case 'x': { coutwhat(player[1].x,2,player[1].x,99,"-"); coutwhat(2,player[1].y,31,player[1].y,"|"); for(i=2;i<=4;i++) if (player[i].x==player[1].x||player[i].y==player[1].y) GJ[++m]=i; for(i=1;i<=m;i++) { if (save[GJ[i]]==0) continue; player[1].energy+=random(10,30); player[GJ[i]].energy+random(5,15); sh=player[1].attack-player[GJ[i]].defence; player[1].sc+=sh; player[GJ[i]].cs+=sh; player[GJ[i]].hp-=sh; gotoxy(player[GJ[i]].x,player[GJ[i]].y); cout<<'-'<<sh; if (player[GJ[i]].hp<=0) save[GJ[i]]=0,player[1].kill++,player[1].energy+=350,r--; } for(i=1;i<=m;i++) gotoxy(player[GJ[i]].x,player[GJ[i]].y); cout<<" "; coutwhat(player[1].x,2,player[1].x,100," "); coutwhat(2,player[1].y,31,player[1].y," "); break; } case 'q': { if (player[1].energy<1000) break; player[1].energy-=1000; m=random(367,763); player[2].energy-=m; if (n>=3) player[3].energy-=1000-m; sh=player[1].attack*3; for(i=2;i<=n;i++) { if (save[i]==0) continue; gotoxy(player[i].x-2,player[i].y); cout<<'-'<<sh-player[i].defence; player[i].hp-=sh-player[i].defence; player[1].sc+=sh-player[i].defence; player[i].cs+=sh-player[i].defence; if (player[i].hp<=0) player[1].kill++,player[1].energy+=350,save[i]=0; } break; } case 'e': { if (player[1].energy<500) break; player[1].energy-=500; m=random(player[1].attack*3,player[1].attack*5); player[1].zl+=m; player[1].hp+=m; gotoxy(player[1].x-1,player[1].y); cout<<"+"<<m; break; } //Player 2 case 'i':if (player[2].x-1>=1)player[2].x--;break; case 'j':if (player[2].y-1>=1)player[2].y--;break; case 'k':if (player[2].x+1<=32)player[2].x++;break; case 'l':if (player[2].y+1<=100)player[2].y++;break; case ',': { qx=player[2].x-5; qy=player[2].y-5; zx=player[2].x+5; zy=player[2].y+5; if (qx<=2) qx=2; if (qx>=32) qx=32; if (qy<=2) qy=2; if (qy>=100) qy=100; if (zx<=2) zx=2; if (zx>=32) zx=32; if (zy<=2) zy=2; if (zy>=100) zy=100; coutwhat(qx,qy,zx,zy,"#"); if (player[1].x>=qx&&player[1].x<=zx&&player[1].y>=qy&&player[1].y<=zy&&save[1]==1) GJ[++m]=1; for(i=3;i<=n;i++) if (player[i].x>=qx&&player[i].x<=zx&&player[i].y>=qy&&player[i].y<=zy&&save[i]==1) GJ[++m]=i; for(i=1;i<=m;i++) { player[2].energy+=random(10,30); player[GJ[i]].energy+random(5,15); sh=player[2].attack-player[GJ[i]].defence; player[2].sc+=sh; gotoxy(player[GJ[i]].x,player[GJ[i]].y); cout<<'-'<<sh; player[GJ[i]].cs+=sh; player[GJ[i]].hp-=sh; if (player[GJ[i]].hp<=0) save[GJ[i]]=0,player[2].kill++,player[2].energy+=350,r--; } for(i=1;i<=m;i++) gotoxy(player[GJ[i]].x,player[GJ[i]].y); cout<<" "; coutwhat(qx,qy,zx,zy," "); break; } case 'u': { if (player[2].energy<1000) break; player[2].energy-=1000; sh=player[2].attack*3.5; gotoxy(player[1].x-2,player[1].y); cout<<'-'<<sh-player[1].defence; player[1].hp-=sh-player[1].defence; player[1].cs+=sh-player[1].defence; player[2].sc+=sh-player[1].defence; for(i=3;i<=n;i++) { gotoxy(player[i].x-2,player[i].y); cout<<'-'<<sh-player[i].defence; player[i].hp-=sh-player[i].defence; player[i].cs+=sh-player[i].defence; player[2].sc+=sh-player[i].defence; } sh*=(n-1); gotoxy(player[2].x-1,player[2].y); cout<<'+'<<sh; player[2].hp+=sh; player[2].zl+=sh; break; } case 'o': { if (player[2].energy<500) break; player[2].energy-=500; m=random(player[2].attack*3,player[2].attack*5); player[2].zl+=m; player[2].hp+=m; gotoxy(player[2].x-1,player[2].y); cout<<"+"<<m; break; } //Player 3 case '1':if (player[3].x-1>=1)player[3].x--;break; case '2':if (player[3].y-1>=1)player[3].y--;break; case '3':if (player[3].x+1<=32)player[3].x++;break; case '4':if (player[3].y+1<=100)player[3].y++;break; case '5': { do m=random(1,n); while(m==3||save[m]==0); player[3].energy+=random(10,30); player[m].energy+random(5,15); sh=player[3].attack-player[m].defence; player[3].sc+=sh; gotoxy(player[m].x-2,player[m].y); cout<<'-'<<sh; player[m].cs+=sh; player[m].hp-=sh; if (player[m].hp<=0) save[m]=0,player[3].kill++,player[3].energy+=350,r--; gotoxy(player[m].x-2,player[m].y); cout<<" "; break; } case '6': { if (player[3].energy<1000) break; player[3].energy-=1000; m=0; for(i=1;i<=n;i++) if (i==3) continue; else if (player[i].hp*100/player[i].HP<=13) { GJ[++m]=i; } if (m==0) { do m=random(1,n); while(m==3); sh=player[3].attack*5.6; player[m].hp-=sh; player[m].cs+=sh; player[3].sc+=sh; break; } else { m=GJ[random(1,m)]; player[3].sc+=player[m].hp; player[m].cs+=player[m].hp; player[m].hp=0; save[m]=0; player[3].kill++,player[3].energy+=350,r--; break; } break; } case '7': { if (player[3].energy<500) break; player[3].energy-=500; m=random(player[3].attack*3,player[3].attack*5); player[3].zl+=m; player[3].hp+=m; gotoxy(player[3].x-1,player[3].y); cout<<"+"<<m; break; } } printfplayer("printf",n); int live=0; for(i=1;i<=n;i++) { live+=save[i]; if (live>=2) break; } if (live<=1) break; } for(i=1;i<=n;i++) if (save[i]&&player[i].hp<=1000000)// return i; } int main() { srand(time(0)); hidden(); int n,i,win; printf("请选择游戏人数:\n"); printf("1.2人\n"); printf("2.3人\n"); printf("3.4人\n"); char m,l; do m=_getch(); while(!(m>='1'&&m<='2')); n=m-'0'+1; system("cls"); player[1].x=1*random(6,8),player[1].y=1*random(6,8),player[1].HP=random(450000,678901),player[1].hp=player[1].HP,player[1].attack=random(3500,5500),player[1].defence=random(600,800); player[2].x=2*random(6,8),player[2].y=2*random(6,8),player[2].HP=random(670000,1000000),player[2].hp=player[2].HP,player[2].attack=random(2700,4600),player[2].defence=random(750,900); player[3].x=3*random(6,8),player[3].y=3*random(6,8),player[3].HP=random(489000,730000),player[3].hp=player[3].HP,player[3].attack=random(3800,4700),player[3].defence=random(540,700); player[4].x=4*random(6,8),player[4].y=4*random(6,8); cout<<"操作方式:\n"; cout<<"1.法师\n"; cout<<"上移:W\n"; cout<<"左移:A\n"; cout<<"下移:S\n"; cout<<"右移:D\n"; cout<<"攻击:X\n"; cout<<"技能:Q、E\n"; cout<<"技能描述\n"; cout<<"Q湮灭枷锁:对其他1~2名敌人造成300%attack伤害,并令第一个目标失去367~763点能量,如果还有其它玩家则令其中一人失去与之前一人总和1000点能量\n"; cout<<"E自疗:立刻恢复350%~550%攻击的血量\n"; cout<<"攻击范围:十字架攻击(同一行或同一列上的敌人受伤)\n"; cout<<"特点:血量较高,攻击一般,防御一般,攻击范围较广,适合远战\n"; cout<<"---------------------------------------------------------------------------\n"; cout<<"2.坦克\n"; cout<<"上移:I\n"; cout<<"左移:J\n"; cout<<"下移:K\n"; cout<<"右移:L\n"; cout<<"攻击:<,\n"; cout<<"技能:U、O\n"; cout<<"技能描述\n"; cout<<"U毒雾:释放烟雾,对其它所有敌人造成350%attack伤害,并恢复伤害总量100%的生命\n"; cout<<"O自疗:立刻恢复350%~550%攻击的血量\n"; cout<<"攻击范围:周围10*10的小范围攻击\n"; cout<<"特点:血量极高,攻击较低,防御较低,适合近战\n"; cout<<"---------------------------------------------------------------------------\n"; cout<<"3.射手\n"; cout<<"上移:1\n"; cout<<"左移:2\n"; cout<<"下移:3\n"; cout<<"右移:4\n"; cout<<"攻击:5\n"; cout<<"技能:6、7\n"; cout<<"技能描述\n"; cout<<"6斩杀:秒杀随机一名生命低于13%的敌人,如果没有,则对随机一名敌人造成360%attack真实伤害\n"; cout<<"7自疗:立刻恢复350%~550%攻击的血量\n"; cout<<"攻击范围:随机攻击场上任意一人\n"; cout<<"特点:血量一般,防御较低,攻击一般,但是攻击范围较大\n"; cout<<"---------------------------------------------------------------------------\n"; for(i=1;i<=(m-'0'+1);i++) { printf("Player %d请选择(输入编号1~3)\n",i); do l=_getch(); while(l<'1'||l>'3'||choose[l-'0']); choose[l-'0']=1; ax[l-'0']=i; } if (choose[3]) m='2'; Sleep(2000); _getch(); system("cls"); win=PVP(m-'0'+1); printf("%d win!",ax[win]); Sleep(5000); system("cls"); for(i=1;i<=n;i++) { printf("Player %d\n",i); if (i==win) printf("\b( WIN )\n"); printf("输出:%d\n",player[ax[i]].sc); printf("治疗:%d\n",player[ax[i]].zl); printf("承伤:%d\n",player[ax[i]].cs); printf("---------------------------\n"); } Sleep(5000); return 0; }
//五子棋 #include <iostream> #include <vector> #include <array> #include <optional> #include <string_view> #include <cstdio> #include <cstdlib> #include <algorithm> // 使用C++17的强类型枚举类 enum class Player { None, Black, White }; // 棋盘尺寸常量 constexpr int BOARD_SIZE = 15; // 方向数组,使用constexpr和std::array(C++11起,但在C++17中更完善) constexpr std::array<std::pair<int, int>, 4> directions = {{ {0, 1}, // 水平 {1, 0}, // 垂直 {1, 1}, // 对角线 {1, -1} // 反对角线 }}; class GobangGame { private: // 使用std::vector的emplace_back等C++11+特性 std::vector<std::vector<Player>> board; Player currentPlayer; bool isGameOver; std::optional<Player> winner; // C++17: std::optional表示可能存在的获胜者 public: // 构造函数 GobangGame() : board(BOARD_SIZE, std::vector<Player>(BOARD_SIZE, Player::None)), currentPlayer(Player::Black), isGameOver(false), winner(std::nullopt) {} // 打印棋盘,使用constexpr和if constexpr(C++17) void printBoard() const { // 清屏,跨平台处理 #ifdef _WIN32 system("cls"); #else system("clear"); #endif // 打印列索引 std::cout << " "; for (int i = 0; i < BOARD_SIZE; ++i) { printf("%2d", i); } std::cout << '\n'; // 打印棋盘内容 for (int i = 0; i < BOARD_SIZE; ++i) { printf("%2d", i); // 行索引 for (int j = 0; j < BOARD_SIZE; ++j) { // C++17: if constexpr用于编译期条件判断 if constexpr (true) { // 示例用法 switch (board[i][j]) { case Player::None: std::cout << " ."; break; case Player::Black: std::cout << " ●"; break; case Player::White: std::cout << " ○"; break; } } } std::cout << '\n'; } // 显示当前玩家 std::cout << "\n当前玩家: " << (currentPlayer == Player::Black ? "黑棋 (●)" : "白棋 (○)") << '\n'; } // 检查落子是否有效,返回std::optional描述错误信息(C++17) std::optional<std::string_view> isValidMove(int row, int col) const { if (row < 0 || row >= BOARD_SIZE || col < 0 || col >= BOARD_SIZE) { return "坐标超出棋盘范围!"; } if (board[row][col] != Player::None) { return "该位置已有棋子!"; } if (isGameOver) { return "游戏已结束,请重新开始!"; } return std::nullopt; // 表示无错误 } // 落子并检查结果 bool placeStone(int row, int col) { // 使用C++17结构化绑定 if (auto error = isValidMove(row, col)) { std::cout << "错误: " << *error << '\n'; return false; } board[row][col] = currentPlayer; return true; } // 检查胜利条件,使用constexpr循环 bool checkVictory(int row, int col) const { const Player player = board[row][col]; if (player == Player::None) return false; // 检查四个方向 for (const auto& [dx, dy] : directions) { // C++17: 结构化绑定 int count = 1; // 当前位置已有一个棋子 // 正向检查 for (int i = 1; i < 5; ++i) { int r = row + dx * i; int c = col + dy * i; if (r < 0 || r >= BOARD_SIZE || c < 0 || c >= BOARD_SIZE || board[r][c] != player) { break; } count++; } // 反向检查 for (int i = 1; i < 5; ++i) { int r = row - dx * i; int c = col - dy * i; if (r < 0 || r >= BOARD_SIZE || c < 0 || c >= BOARD_SIZE || board[r][c] != player) { break; } count++; } if (count >= 5) { return true; } } return false; } // 检查平局 bool checkDraw() const { // C++17: 使用std::all_of和lambda表达式 return std::all_of(board.begin(), board.end(), [](const auto& row) { return std::none_of(row.begin(), row.end(), [](Player p) { return p == Player::None; }); }); } // 切换玩家 void switchPlayer() { currentPlayer = (currentPlayer == Player::Black) ? Player::White : Player::Black; } // 游戏主循环 void play() { std::cout << "===== C++17 五子棋游戏 =====" << '\n'; std::cout << "玩法: 输入坐标(行 列)来落子,先连成五子者获胜" << '\n'; std::cout << "示例: 输入 7 7 表示在中间位置落子" << "\n\n"; system("pause"); while (!isGameOver) { printBoard(); // 获取玩家输入 int row, col; std::cout << "请输入落子位置 (行 列): "; std::cin >> row >> col; // 检查输入有效性 if (std::cin.fail()) { std::cin.clear(); std::cin.ignore(1000, '\n'); std::cout << "输入无效,请输入两个整数!" << '\n'; system("pause"); continue; } // 尝试落子 if (!placeStone(row, col)) { system("pause"); continue; } // 检查是否获胜 if (checkVictory(row, col)) { isGameOver = true; winner = currentPlayer; printBoard(); std::cout << "\n恭喜!" << (winner == Player::Black ? "黑棋" : "白棋") << "获胜!" << '\n'; break; } // 检查是否平局 if (checkDraw()) { isGameOver = true; printBoard(); std::cout << "\n游戏结束,平局!" << '\n'; break; } // 切换玩家 switchPlayer(); } } }; int main() { // C++17: 保证初始化顺序,使用constexpr if的潜在场景 bool playAgain; do { GobangGame game; game.play(); std::cout << "是否再玩一局?(1-是,0-否): "; std::cin >> playAgain; } while (playAgain); std::cout << "谢谢游玩!" << std::endl; return 0; }
//mc 1.6 //2024 12 23 18:09 //baoyexuan #include <bits/stdc++.h> #include <windows.h> #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) #pragma GCC optimize(3,"Ofast","inline") int x,y; bool e=false; using namespace std; int Map[1024][1024],l[1024]; class Player { public: void move() { if(KEY_DOWN('A')&&Map[x][y-1]<=1&&Map[x-1][y-1]<=1) { y--; } if(KEY_DOWN('D')&&Map[x][y+1]<=1&&Map[x-1][y+1]<=1) { y++; } if(KEY_DOWN('W')&&Map[x-2][y]<=1) { x--; } if(KEY_DOWN('S')&&Map[x+1][y]<=1) { x++; } if(KEY_DOWN('1')) { Map[x+1][y]=0; } if(KEY_DOWN('2')) { Map[x][y-1]=0; } if(KEY_DOWN('4')) { Map[x-1][y-1]=0; } if(KEY_DOWN('6')) { Map[x-2][y]=0; } if(KEY_DOWN('5')) { Map[x-1][y+1]=0; } if(KEY_DOWN('3')) { Map[x][y+1]=0; } } } p1; struct Block { int rank; string image; int color; }; Block blocks[]={ {0," ",0},//air {1,"██",1},//water {2,"██",6},//dirt {3,"██",2},//grassdirt {4,"██",8},//rock {5,"██",6},//wood {6,"▓▓",10},//leaves {7,"▓▓",14}//sand }; //如果有问题用下面的 /*Block blocks[]= { {0," ",0},//air {1,"█",1},//water {2,"█",6},//dirt {3,"█",2},//grassdirt {4,"█",8},//rock {5,"█",6},//wood {6,"▓",10},//leaves {7,"▓",14}//sand };*/ inline void color(int n) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),n); } inline void draw_map() { for(int j=0; j<1024; j++) { for(int i=1023; i>=512; i--) { Map[i][j]=1; } } int h=512,k,f; for(int j=1; j<1023; j++) { l[j]=h; k=rand()%3; f=rand()%3; for(int i=h; i<=h+3; i++) { Map[i][j]=2; } for(int i=h+4; i<=1023; i++) { Map[i][j]=4; } if(f==1) h+=k; else if(f==0) h-=k; } for(int i=0; i<1024; i++) { for(int j=0; j<1024; j++) { if(Map[i][j]==1) { if(Map[i+1][j]!=1) { Map[i+1][j]=7; } if(Map[i][j+1]!=1) { Map[i][j+1]=7; } if(Map[i][j-1]!=1) { Map[i][j-1]=7; } if(Map[i-1][j]!=1) { Map[i-1][j]=0; } } } } int x,y,sum=0,s=0; while(sum!=640) { s++; if(s>200000000) { e=true; return ; } y=rand()%1024; x=l[y]+1; if(Map[x][y]!=1&&Map[x+1][y]==2&&Map[x][y-1]==0&&Map[x][y+1]==0) { Map[x][y]=5; Map[x-1][y]=5; Map[x-2][y-2]=6; Map[x-2][y-1]=6; Map[x-2][y]=6; Map[x-2][y+1]=6; Map[x-2][y+2]=6; Map[x-3][y-1]=6; Map[x-3][y]=6; Map[x-3][y+1]=6; Map[x-4][y-1]=6; Map[x-4][y]=6; Map[x-4][y+1]=6; // l[y-2]+=3; // l[y-1]+=5; // l[y]+=5; // l[y+1]+=5; // l[y+2]+=5; sum++; } } } inline void print_map(int x,int y,int c,int r) { for(int i=x-c/2; i<=x+c/2; i++) { for(int j=y-r/2; j<=y+r/2; j++) { if(i==x-1&&j==y) color(14),cout<<"()"; else if(i==x&&j==y) color(1),cout<<"II"; else { color(blocks[Map[i][j]].color); cout<<blocks[Map[i][j]].image; } } cout<<endl; } color(7); cout<<"X:"; color(6); cout<<x<<endl; color(7); cout<<"Y:"; color(6); cout<<y; } inline void update() { system("cls"); for(int i=0; i<1024; i++) { for(int j=0; j<1024; j++) { if(Map[i][j]==2&&(Map[i-1][j]==0||Map[i-1][j]==6)) { Map[i][j]=3; } } } p1.move(); print_map(x,y,15,15); } int main() { // ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); SetConsoleTitle("MyWorld_1.6"); srand(time(0)); cout<<"正在加载世界..."; draw_map(); system("cls"); if(e) { cout<<"加载失败>_<\n"; system("pause"); return 0; } int t=rand()%1024; x=l[t]-1; x=min(x,512); y=t; while(true) { ShowCursor(false); update(); } return 0; } /* 1 深蓝色 2 深绿色 3 深青色 4 深红色 5 深粉色 6 黄色 7 深白色 8 灰色 9 浅蓝色 10 浅绿色 11 浅青色 12 浅红色 13 浅粉色 14 浅黄色 15 浅白色 */
//扫雷 #include <bits/stdc++.h> #include <windows.h> #pragma GCC optimize(3,"Ofast","inline") #define key(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) using namespace std; int x, y, sum; bool run, bai; int l[17][17]; bool f[16][16]; const int px[] = {-1, -1, -1, 0, 0, 1, 1, 1}; const int py[] = {-1, 0, 1, -1, 1, -1, 0, 1}; inline void clean() { system("cls"); } inline void color(int n) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),n); } inline void dig(int x, int y) { f[x][y] = true; sum++; if(!f[x - 1][y] && l[x - 1][y] == 0 && x - 1 > 0) { dig(x - 1, y); } if(!f[x + 1][y] && l[x + 1][y] == 0 && x + 1 < 16) { dig(x + 1, y); } if(!f[x][y - 1] && l[x][y - 1] == 0&& y - 1 > 0) { dig(x, y - 1); } if(!f[x][y + 1] && l[x][y + 1] == 0&& y + 1 < 16) { dig(x, y + 1); } } inline void print(int p) { for(int i = 1; i <= 17; i++) { printf("#"); } printf("\n# "); if(p == 1) { printf("'_'"); } if(p == 2) { printf(">_<"); } if(p == 3) { printf("^_^"); } printf(" #\n"); printf("#score:%d", sum); if(sum < 10) { printf(" "); } else if(sum < 100) { printf(" "); } else { printf(" "); } printf("#\n"); for(int i = 1; i <= 17; i++) { printf("#"); } printf("\n"); for(int i = 1; i <= 15; i++) { color(15); printf("#"); for(int j = 1; j <= 15; j++) { if(i == x && j == y) { color(4); if(f[i][j]) { if(l[i][j] == -1) { printf("*"); } else if(l[i][j] != 0) { printf("%d", l[i][j]); } else { printf(" "); } } else { printf("?"); } continue; } if(f[i][j]) { if(l[i][j] == -1) { color(4); printf("*"); } else if(l[i][j] != 0) { color(15); printf("%d", l[i][j]); } else { printf(" "); } } else { color(15); printf("?"); } } color(15); printf("#\n"); } for(int i = 1; i <= 17; i++) { printf("#"); } printf("\nX: %d Y: %d", x, y); } inline void init() { int dl = 0, x, y; for(int i = 1; i <= 15; i++) { for(int j = 1; j <= 15; j++) { f[i][j] = false; l[i][j] = 0; } } while(dl < 20) { x = rand() % 15 + 1; y = rand() % 15 + 1; if(l[x][y] != -1) { l[x][y] = -1; dl++; for(int k = 0; k <= 7; k++) { int tx = x + px[k]; int ty = y + py[k]; if(l[tx][ty] != -1) { l[tx][ty]++; } } } } } inline void update() { clean(); print(1); bool kd = false; do { if(key('A')) { y--; kd = true; } if(key('D')) { y++; kd = true; } if(key('W')) { x--; kd = true; } if(key('S')) { x++; kd = true; } if(key('Q')) { if(l[x][y] == -1) { clean(); for(int i = 1; i <= 15; i++) { for(int j = 1; j <= 15; j++) { f[i][j] = true; } } print(2); printf("\n"); system("pause"); run = false; bai = true; return ; } else if(l[x][y] != 0) { f[x][y] = true; clean(); sum++; } else { dig(x, y); } kd = true; } } while(!kd); x = max(1, x); x = min(15, x); y = max(1, y); y = min(15, y); if(sum == 225) { run = false; } Sleep(100); } int main() { srand(time(0)); init(); x = 1; y = 1; run = true; bai = false; while(run) { update(); } if(!bai) { clean(); for(int i = 1; i <= 15; i++) { for(int j = 1; j <= 15; j++) { f[i][j] = true; } } print(3); printf("\n"); system("pause"); } return 0; }
//俄罗斯方块 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <time.h> #include <conio.h> #include <windows.h> #define WIDTH 10 #define HEIGHT 20 typedef struct { int x, y; int shape[4][4]; } Tetromino; int board[HEIGHT][WIDTH] = {0}; Tetromino current; const int shapes[7][4][4] = { // I {{0,0,0,0}, {1,1,1,1}, {0,0,0,0}, {0,0,0,0}}, // J {{1,0,0,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}}, // L {{0,0,1,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}}, // O {{0,1,1,0}, {0,1,1,0}, {0,0,0,0}, {0,0,0,0}}, // S {{0,1,1,0}, {1,1,0,0}, {0,0,0,0}, {0,0,0,0}}, // T {{0,1,0,0}, {1,1,1,0}, {0,0,0,0}, {0,0,0,0}}, // Z {{1,1,0,0}, {0,1,1,0}, {0,0,0,0}, {0,0,0,0}} }; void init_game() { srand(time(0)); current.x = WIDTH/2 - 2; current.y = 0; int shape_idx = rand() % 7; for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { current.shape[i][j]=shapes[shape_idx][i][j]; } } } void draw_game() { system("cls"); printf("俄罗斯方块(A左,D右,W旋转,长按S快速下降)\n"); for(int y=0; y<HEIGHT; y++) { for(int x=0; x<WIDTH; x++) { bool isCurrent = false; for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { if(current.shape[i][j]&¤t.x+j==x&¤t.y+i==y) { isCurrent = true; } } } if(isCurrent) printf("■"); else printf(board[y][x] ? "■" : " ."); } printf("\n"); } } bool check_collision() { for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { if(current.shape[i][j]) { int newX = current.x + j; int newY = current.y + i; if(newX<0||newX>=WIDTH||newY>=HEIGHT||(newY>=0&&board[newY][newX])) { return true; } } } } return false; } bool move_tetromino(int dx, int dy) { current.x += dx; current.y += dy; if(check_collision()) { current.x -= dx; current.y -= dy; return false; } return true; } void rotate_tetromino() { int temp[4][4]; for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { temp[j][3-i] = current.shape[i][j]; } } for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { current.shape[i][j] = temp[i][j]; } } if(check_collision()) { for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { current.shape[i][j] = temp[j][i]; } } } } void merge_tetromino() { for(int i=0; i<4; i++) { for(int j=0; j<4; j++) { if(current.shape[i][j]) { int y = current.y + i; int x = current.x + j; if(y>=0&&y<HEIGHT&&x>=0&&x<WIDTH) { board[y][x] = 1; } } } } } void clear_lines() { for(int y=HEIGHT-1; y>=0; y--) { bool full = true; for(int x=0; x<WIDTH; x++) { if(!board[y][x]) { full = false; break; } } if(full) { for(int ny=y; ny>0; ny--) { for(int x=0; x<WIDTH; x++) { board[ny][x] = board[ny-1][x]; } } for(int x=0; x<WIDTH; x++) { board[0][x] = 0; } y++; } } } int main() { init_game(); int counter = 0; while(1) { if(_kbhit()) { char key = _getch(); switch(key) { case 'a': move_tetromino(-1, 0); break; case 'd': move_tetromino(1, 0); break; case 's': move_tetromino(0, 1); break; case 'w': rotate_tetromino(); break; case 'q': return 0; } } if(++counter % 10 == 0) { if(!move_tetromino(0, 1)) { merge_tetromino(); clear_lines(); init_game(); if(check_collision()) { printf("游戏结束!\n"); return 0; } } } draw_game(); Sleep(100); } return 0; }
-
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework. -
最近编写的题解
题目标签
- 聪明人游戏
- 4
- 2021
- 1
- cspj 2021
- 1
- CSP-J
- 1
- 深搜 广搜
- 1
- 广搜
- 1
- 大沥2021
- 1