-
个人简介
玩第五人格吗? 第五id:修彀哪有坏心思 极域网通用密码:mythware_super_password 我的世界中文网址:MC.JS WebMC 1.8.8 Plus 如何游玩:搜索并点击MC.JS网页。 itch.io crazygames.com Webcs.xyz 《我的世界》是一款带有生存冒险元素的建造类游戏,为了在游戏里生存和发展,玩家需要通过伐木、挖矿、捕猎等方式获取资源,并通过合成系统打造武器和工具。随着游戏的进行,玩家自立更生,逐渐建造出一个自己的家园。
《Minecraft我的世界》操作相当简单。具体如下(可在设定里自定义):
鼠标左键 - 攻击/使用工具
鼠标右键 - 打开箱子/放置物品
W - 前进
S - 后退
A - 左平移
D - 右平移
空格 - 跳跃
左Shift - 潜行
Q - 丢弃物品
I - 打开物品栏
T - 聊天
F - 雾化范围
F5 - 切换第一/第三人称
F11 - 切换全屏
A
/ascend (提升到一个平台)
B
/bind<命令>(设置命令快捷键)
/blockdata(修改某个方块的数据标签)
/backup(运行备份)
/ban(添加一个玩家到黑名单)
/ban-ip(添加一个ip到黑名单)
/banlist(显示你的黑名单)
/butcher(杀死附近所有的怪物)
C) /clear(清空背包)
/clone(将某个方块复制到某个位置)
D /daylock(开启或关闭日夜循环)
/difficulty(设置游戏难度,0和平,1简单,2普通,3困难)
/damage(开启或关闭伤害)
/descend(下降到一个平台)
/dupe [all](复制物品)
/destroy [all](破坏背包里的物品)
/defuse [all](拆掉点燃了的TNT)
/drops(开启或关闭物品掉落)
/duplicate [all](复制当前手中物品并丢出)
/deop(将某个玩家的管理员身份撤销)
E /explode [范围](使指定范围产生爆炸)
/effect(获得或移除某效果)
/ext [all](熄灭周围的火焰)
/enchant(附魔某个玩家的某个物品)
F /fly(飞行)
/freeze(冻结所有怪物)
/fill(用某种方块填满某块区域)
/forestgen(在身旁形成森林)
/falldamage(高空掉落是否造成伤害)
G /give(玩家)<物品> [数量] (给某个玩家某种数量的某种物品,给自己时则不需要输玩家名)
/goto<某地名>(直接去某个地方)
/gamemode(设置游戏模式)
/gamerule ture/false(开启或关闭某种游戏规则)
/gamerule pvp(开启或关闭玩家之间的伤害)
/gamerule doMobLoot(开启或关闭生物掉落物品)
/gamerule doMobSpawning(开启或关闭生物自然生成)
/gamerule doWeatherCycle(开启或关闭天气变化)
/gamerule keepInventory(开启或关闭死亡不掉落,你们最想要的东西)
/gamerule naturalRegeneration false(UHC,指超极限)
依次输入以下指令:/gamerule naturalRegeneration false /time set 18000 /gamerule doDaylightCycle false(永夜UHC,最难生存,能玩下来的都是鬼才)
/grow(生长达到满)
H
/help(命令帮助)
/heal(为某人补指定的血)
/health(设置血量)
/home(回到你的出生点)
I /i <物品代码> [数量](给玩家指定数量的物品,物品代码大全下面会给)
/invsee(查看某人的背包)
/itemstack <物品代码> [数量](同上)
/instantmine(即时挖矿)
/itemname(显示当前手上的物品名称)
J /jump(瞬移到光标所指处)
K
/kill(自杀)
/kick(将某位玩家踢出房间)
/killnpc [all](杀掉周围所有的NPC)
L /lexburner(用爱发电&一方通行)
/light(开关光照)
/list(列出玩家列表)
/lingtning(超电磁炮)
/lingtning(雷击,若不输入名字则雷会劈到你的光标所指处)
/locate(寻找遗迹或村庄)
/listwaypoints(列出所有路径点)
M
/mute(将某人禁言)
/me(显示你自己的信息)
/msg <消息>(私聊)
/maxstack [物品ID|物品名称|全部] [数量](最大堆叠物品)
/macro <文件名> {参数}(允许运行宏)
/mmoedit name skname rank(如果你安装了MCRPG插件,那么你可以使用这个命令改变某位玩家的某项技能级别)
N /nick ID(给某人改名)
/noclip(穿墙)
O
/op(给予某位玩家管理员身份)
P
/p(显示当前的坐标)
/pumpkins(在自己身旁形成南瓜林)
/pardon(从黑名单移除某位玩家或某个ip)
/pos(显示当前所有玩家的坐标)
/particle(制造颗粒效果)
/playsound(播放某个游戏音效)
/publish(对局域网开放单人世界)
Q 暂无
R
/reach(到指定的地方)
/replaceitem(替换物品栏中的物品)
/return(传送到上一次传送的地方)
/removedrops [all](删掉地上的所有物品)
/rename(修改某命令的名称)
/rem(删除指定路点)
/repair [all](当前手持物品耐久回满)
/reset(恢复所有默认设置)
S /surprise mother f**k
/stop(停止服务器运行)
/seen name(查看某位玩家最后退出的时间)
/search <关键词>(搜索某物品名)
/save-all(将服务器保存至硬盘中)
/save-off(禁用服务器自动保存)
/save-on(开启服务器自动保存)
/set <名字>(在这个世界标记一个路径点)
/say(向其他玩家显示一条信息)
/setjump [JUMP|reset](设置跳跃的高度 落地伤害和移动 1:1)
/setspawn [ X,Y,Z轴 ](设置当前位置)
/scoreboard(管理玩家或队伍)
/seed(显示此世界种子)
/setspeed [速度|重置](设置移动速度)
/spawn(产生某个生物)
/setblock(将一个方块变成另一个方块)
/setidletimeout(设置自动踢出挂机玩家的时间)
/spawnstack {NAME|ID|random}(产生一个合体的怪物NPC)
/setworldspawn(设置出生点)
/spawnpoint(设置某位玩家的出生点)
/summon(生成某个实体)
/snow(在自己附近生成下雪后的样子)
/stats(通过命令的返回改变计分板对象)
T
/tele(传送到某坐标)
/thaw(融化所有雪和冰块)
/title(设置屏幕标题)
/tp [玩家名](传送到某玩家的位置)
/tp name1 name2(把玩家1传送到玩家2的位置)
/tphere(把某位玩家传送到自己的位置)
/tpall(将当前所有玩家传送到自己的位置)
/tell(向某玩家发起私聊)
/tellraw(向其他玩家显示一条JSON信息)
/time [set|get|day|night [minute|hour|day [TIME]]](设置在指定时间得到某物品)
/timeschedule(设定一段时间,并且当前世界将永远保持着这段时间)
/testfor(计算特定条件的实体数)
/time(修改或查询当前世界时间)
/tree(生成一棵树)
/testforblock(探测某一个方块是否在某一个位置)
/testforblocks(探测某两个区域内的方块是否匹配)
/trigger(设置触发装置的激活状态)
U /up[高度](将自己提升到某个高度)
/unbind(撤销某个命令)
/unlimited id(给自己某个物品【无限】)
/useportal(传送到下界)
V 暂无
W /wtf?
/weather(设置天气)
/waterdamage(开关水下伤害)
/world(当前世界信息)
/world load(加载指定的文件)
/world save(保存并退出)
/world exit(不保存并退出)
/world list(列出所有存档)
/whitelist(列出白名单)
/worldborder(管理世界边界)
X /xp(增加或移除某位玩家的经验值)
Y 暂无
Z 暂无 摸鱼人的小仓库 http://www.staggeringbeauty.com/ 大虫子 https://www.ak-ioi.com/apps/oi-2048/ 华容道 chrome://dino/ 小恐龙 https://littlealchemy2.com/ 小小炼金师 https://2048game.com/ 数字组 https://dimit.me/Fe26/index_zh_CN.html 死铁 http://www.4399.com/ 4399 https://www.mazegenerator.net/ 迷宫 https://lewan.baidu.com/rankland?idfrom=5056&gameSource=mini&gameType=0 百度游戏 [https://deepmess.com/namerena/]名字竞技场 ev.io 枪战游戏https://www.crazygames.com/game/air-wars-2 飞机 https://www.crazygames.com/game/kirka-io 枪战 https://www.crazygames.com/game/ev-io 枪战 CrazyGames - Free Online Games on CrazyGames.com https://student-vip.xiaomawang.com/ forr.io电子木鱼: 你说得对,但《第五人格》是由网易开发的非对称性对抗竞技类(Asymmetrical Battle Arena)游戏,游戏于2018年4月2日开启限号测试4月12日开启全平台公测。该游戏适龄级别为16+。
玩家将扮演侦探 奥尔菲斯,在收到一封神秘的委托信后,进入恶名昭著的庄园调查一件失踪案。在进行证据调查过程中,玩家扮演的奥尔菲斯将采用演绎法,对案情进行回顾。在案情回顾时,玩家可以选择扮演监管者或求生者,展开激烈的对抗。而在调查的过程,无限接近事实时,却发现越来越不可思议的真相
20世纪欧洲,有一对年轻的艺术家夫妇在某偏远的山区以低廉的价格买下了一座占地面积巨大的庄园。因为历代主人有不祥传闻,这座庄园的名声很差。但是这对夫妻对迷信和流言置若罔闻。玩家扮演的主角便是这对夫妇的孩子。
24年前,主角迎来了12岁生日,但就在这一天双亲被匪徒残忍杀害了,主角精神受到了极大的冲击,精神恍惚,变得自闭。在他人的欺诈下,庄园被变卖而主角则被送进精神病院。庄园虽几经转手,但恶名依旧,不久便被荒废。
13年前,新兴犯罪推理小说家——奥尔菲斯开始在文学界崭露头角。同年,庄园被一位青年收购,在重金打造下庄园恢复了生机,但仍有很多地方被闲置(例如林场、猎场、教堂等区域)。就在大家认为庄园会在这位青年手下日益好转,但诡异的是事情发生了,人们察觉到这里的人员缺口像填不满似的,从未停止人员招募。社会上诸多的人口失踪案最后也都指向了这个地方。但警方的数次调查都一无所获。
10年前,一场大火烧了庄园大半区域。人们发现火灾中的遇难者死因和火灾没有任何关系,仅有少数几个幸存者昏迷在地,他们躺在地上的位置是经过特殊布置的,似乎在举办某种神秘的仪式,而小说家奥尔菲斯也在幸存者中。但奇怪的是,所有幸存者醒来后发现自己完全忘记了为什么来这个庄园,以及在这里发生过什么。幸存者等人的遭遇被定性为某种仪式的牺牲者,但其余人员的死因则始终无法得到合理解释。随后庄园被关闭,从此这个地方再无人敢问津甚至靠近这片区域,人们称之为“恶名昭著的庄园”。
主角——奥尔菲斯昏迷了整整一年,醒来时完全忘记了自己是谁。作为作家他已经写不出好的小说了,不久,这个曾名动一时的名字再也没有出现于公众视野中。
7年前,奥尔菲斯开了所私人侦探事务。1月前,某富商年幼的女儿离奇失踪,种种迹象都指向了“恶名昭著的庄园”,富商需要人帮他调查出真相。2天前,主角收到了富商的委托函,邀请主角协助帮忙调查。细看委托函上的收件人,是一个他自己的都已经遗忘的名字——(玩家输入姓名)。1天前,主角寄出了回执函,决定前去调查。次日,主角直接来到荒废已久的庄园主屋开始了调查……
求生者
除基础角色,其余求生者角色需要用线索兑换或付费购买解锁(在精华中抽到部分限定皮肤也可直接获得该角色)。进入游戏时玩家可以自行选择扮演,直到一轮游戏结束,方可更换角色。每局对抗开始后,4位求生者会在场景中随机位置出生。求生者需要寻找密码机进行破译,场景中总计存在7台密码机,玩家需要破译完成5台,随后才能打开电闸,并且至少3位求生者成功逃脱方可获胜。
职业/称号 姓名 外在特质 携带道具 幸运儿 - 幸运儿 庄园老友 医生 艾米丽·黛儿 医药专精 医术高超 律师 弗雷迪·莱利 深谋远虑 郎心似铁 “慈善家” 克利切·皮尔森 狡猾 身体灵活 园丁 艾玛·伍兹 巧手匠心 守护 魔术师 瑟维·勒·罗伊 魔术演绎 灵活双手 冒险家 库特·弗兰克 探险幻想 探险 佣兵 奈布·萨贝达 钢铁冲刺 久经训练 空军 玛尔塔·贝坦菲尔 精准打击 坚强 机械师 特蕾西·列兹尼克 机械操纵 羸弱 前锋 威廉·艾利斯 橄榄球员 运动天赋 盲女 海伦娜·亚当斯 回声定位 心眼 祭司 菲欧娜·吉尔曼 门之钥 羸弱 调香师 薇拉·奈尔 忘忧之香 失忆 牛仔 凯文·阿尤索 套索技艺 马背英雄 舞女 玛格丽莎·泽莱 二重奏 杂技 先知 伊莱·克拉克 役鸟 预言 入殓师 伊索·卡尔 入殓 化妆精通 勘探员 诺顿·坎贝尔 陨石磁铁 野外生存 咒术师 帕缇夏·多里瓦尔 猿猴咒像 咒像守护 野人 穆罗 野性伙伴 自然守护 大副 何塞·巴登 海神怀表 消失 杂技演员 麦克·莫顿 危险杂耍 即兴演出 调酒师 黛米·波本 多夫林酒 调酒 邮差 维克多·葛兰兹 邮件 送信犬 守墓人 安德鲁·克雷斯 掘地逃生 幽闭恐惧 “囚徒” 卢卡·巴尔萨 线路控制 “导体” 昆虫学者 梅莉·普林尼 昆虫研究 混合试剂 画家 艾格·瓦尔登 艺术敏感 审美共鸣 击球手 甘吉·古普塔 板球球棒 运动天赋 玩具商 安妮·莱斯特 精巧玩具 安抚物 心理学家 艾达·梅斯默 移情 应激 病患 埃米尔 钩爪逃生 情感依附 小说家 “奥尔菲斯 白描 隐喻 小女孩 回忆 哭泣小丑 裘克 火箭 爆炸 教授 卢基诺 鳞片硬化 蜕鳞 古董商 戚十一 藏锋 身轻如燕 作曲家 弗雷德里克·克雷伯格 调律 组曲 监管者
除基础角色,其余监管者角色需要用线索兑换或付费购买解锁(在精华中抽到部分限定皮肤也可直接获得该角色)。进入游戏时玩家可以自行选择,在准备过程中可选择特殊技能,直到一轮游戏结束,方可更换角色。监管者淘汰(绑上狂欢之椅或放血至少3名求生者,方可获胜。
称号 姓名 外在特质 实体能力(存在感0/1000/2500) 厂长 里奥·贝克 怨魂狱火 - 小丑 裘克 火箭改装 鹿头 班恩•佩雷兹 仇恨重压 “杰克” 杰克 寒雾 蜘蛛 瓦尔莱塔 茧刑 蛛网缠身 红蝶 美智子 三相之身 - 黄衣之主 哈斯塔 恐惧之形 惶恐 宿伞之魂 谢必安/范无咎 双魂 - 摄影师 约瑟夫•德拉索恩斯 相中世界 时空重叠 疯眼 巴尔克·拉帕杜拉 机关控制台 监控器 梦之女巫 伊德海拉 女巫标记 梦隐 爱哭鬼 罗比·怀特 腐朽领域 无尽生息 孽蜥 卢基诺·迪鲁西 负咒之体 - 红夫人 玛丽 水镜 26号守卫 邦邦 炸弹连锁 “使徒” 安 踩影 小提琴家 安东尼奥 颤栗旋律 雕刻家 伽拉泰亚 千钧之形 “博士” 珀西 充能 代偿 “破轮” 威尔三兄弟 轮刑 穿刺 渔女 格蕾丝 至深之渊 - 蜡像师 菲利普 蜡衣 凝与熔 “噩梦” 奥尔菲斯 巡猎 记录员 柯根 - 隐士 阿尔瓦·洛伦兹 恩典 分享 守夜人 伊塔库亚 风行之物 - #include<bits/stdc++.h> #include <windows.h> using namespace std; void movexy(short x, short y){ COORD position={x, y}; HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut, position); } int main(){ movexy(37, 7); cout<<"反电子教室系统"<<endl; cout<<endl; cout<<" 目前可以反击:"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); cout<<" 红蜘蛛多媒体网络教室 - 输入 k-rs即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); cout<<" 极域电子教室 - 输入 k-jy即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); cout<<" 伽卡他卡电子教室 - 输入 k-yk即可反击"<<endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); cout<<" 如果在开启本程序后关闭本程序,"<<endl; cout<<" 本次反击将无效!"<<endl; cout<<" input >>> "; string s; cin>>s; if(s=="k-rs"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); cout<<" 红蜘蛛反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1) { system("taskkill /f /t /im REDAgent.exe"); system("cls"); } } if(s=="k-jy"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 11); cout<<" 极域反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1) { system("taskkill /f /t /im StudentMain.exe"); system("cls"); } } if(s=="k-yk"){ system("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); cout<<" 伽卡他卡反击系统启动成功"<<endl; Sleep(1000); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); while(1){ system("taskkill /f /t /im Student.exe"); system("cls"); } } return 0; } Free GPT:https://chat.coding61.com 使用检查消除登录界面,即可无限免费使用Chat GPT4.0 好玩的网站都在:fuun.fun 临时邮箱,帮助你注册使用邮箱注册的网站,免费:temp-mail.io 网游网站:poki.com,crazygames.com poki我喜欢的游戏:real cars in city 白嫖音乐:https://tools.liumingye.cn/music/#/ 全部都有 免费在线观看电视网站:qqqiyi.com #include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> #include #define KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0) using namespace std; int m[35][35],n[35][35]; void Color(int a) { if(a0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN); if(a3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE); if(a4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(a5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); if(a6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); if(a7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);//木 if(a8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//铁 if(a9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY); if(a10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|BACKGROUND_GREEN); if(a11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE|BACKGROUND_GREEN); if(a12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_GREEN); if(a13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_INTENSITY|BACKGROUND_BLUE); } void SetPos(int x,int y) { COORD pos; pos.X=y2,pos.Y=x+3; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } int X,Y,gx,gy,gunT,gunZ,T,G[10],F[30]; int Win,Lev,Blood,Dun,Bmax,Dmax,WuDi,Gguai,Bo,Boo,sy,bu; int Bx,By,Bblood,Bsi,Bjiao,Bdu,Bfang,Bxz,Byz; void Map(int x); void Jian(int x) { if(WuDi>0) return; if(Dun>x) Dun-=x; else if(Dun<=0) Blood-=x; else if(Dun>0&&Dun<=x) { if(F[13]0) Blood-=x-Dun; if(F[13]1) WuDi=20; if(F[17]1) Boo=3; Dun=-1; } } bool CanGo(int x,int y,int q) //0为自己 1其他 2激光怪 3激光枪 4子弹怪 5爆毒 6子弹 7 BOSS { if(abs(Bx-x)<=1&&abs(By-y)<=1&&q1) return 0; if(m[x][y]2||m[x][y]3) return 0; if((q0||q1)&&n[x][y]1) return 0; if(m[x][y]0) return 1; if(m[x][y]>=4&&m[x][y]<=8) return 1; if(m[x][y]>=84&&m[x][y]<=88) return 1; if(m[x][y]>=9&&m[x][y]<=31) return 1; if(m[x][y]>=59&&m[x][y]<=81) return 1; if((q2||q3||q5)&&m[x][y]1) return 1; if((q2||q3)&&m[x][y]>=100&&m[x][y]<250) return 1; if((q0||q3||q5)&&m[x][y]>=50&&m[x][y]<55) return 1; if((q4||q7)&&m[x][y]/1001) return 1; return 0; } void CoutMe() { if(gx<0&&CanGo(X-1,Y,0)) X--;if(gx>0&&CanGo(X+1,Y,0)) X++;if(gy<0&&CanGo(X,Y-1,0)) Y--;if(gy>0&&CanGo(X,Y+1,0)) Y++; int r;Color(0);if(WuDi>0) r=rand()%5+1,Color(r); if(gunT!=1) SetPos(X-1,Y),cout<<"︹";if(gunT!=5) SetPos(X+1,Y),cout<<"︺";if(gunT!=7) SetPos(X,Y-1),cout<<"﹝";if(gunT!=3) SetPos(X,Y+1),cout<<"﹞"; if(gunT1) SetPos(X-1,Y),cout<<"↑";if(gunT2) SetPos(X-1,Y+1),cout<<"↗";if(gunT3) SetPos(X,Y+1), cout<<"→";if(gunT4) SetPos(X+1,Y+1),cout<<"↘"; if(gunT5) SetPos(X+1,Y),cout<<"↓";if(gunT6) SetPos(X+1,Y-1),cout<<"↙";if(gunT7) SetPos(X,Y-1), cout<<"←";if(gunT8) SetPos(X-1,Y-1),cout<<"↖"; SetPos(X,Y),cout<<"●";Color(0); if(WuDi>0) Map(4); if(m[X][Y]>=50&&m[X][Y]<55) Jian(5),system("color 4F"),Sleep(30),system("color 0F"),Map(4); if(m[X][Y]>=4&&m[X][Y]<=7&&F[12]==0) Jian(3),system("color 4F"),Sleep(30),system("color 0F"),Map(4); if(m[X][Y]>=4&&m[X][Y]<=7&&F[12]==1) Jian(1),system("color 4F"),Sleep(30),system("color 0F"),Map(4); if(m[X][Y]>=59&&m[X][Y]<=80&&F[4]0) Jian(1),system("color 4F"),Sleep(30),system("color 0F"),Map(4); if(m[X][Y]2&&F[4]0) Jian(3),system("color 4F"),Sleep(30),system("color 0F"),Map(4); m[X][Y]=0,gx=gy=0; } int Cout(int x,int i,int j) { int Guai=0; if(m[i][j]0&&x2) SetPos(i,j),cout<<" "; if(m[i][j]1) SetPos(i,j),Color(7),cout<<"■",Color(0);//木 if(n[i][j]0&&m[i][j]2) SetPos(i,j),Color(8),cout<<"■",Color(0);//铁 if(n[i][j]10&&m[i][j]0) SetPos(i,j),cout<<" ",Color(0); if(n[i][j]31&&m[i][j]0) SetPos(i,j),cout<<" ",Color(0); if(m[i][j]32) m[i][j]=0;//怪子弹灰 if(n[i][j]>=20&&n[i][j]<22&&m[i][j]1) SetPos(i,j),Color(7),cout<<"▁",Color(0);//木 if(n[i][j]>=22&&n[i][j]<24&&m[i][j]1) SetPos(i,j),Color(7),cout<<"▂",Color(0);//木 if(n[i][j]>=24&&n[i][j]<26&&m[i][j]1) SetPos(i,j),Color(7),cout<<"▄",Color(0);//木 if(n[i][j]>=26&&n[i][j]<28&&m[i][j]1) SetPos(i,j),Color(7),cout<<"▆",Color(0);//木 if(n[i][j]>=28&&n[i][j]<30&&m[i][j]1) SetPos(i,j),Color(7),cout<<"▆",Color(0);//木 if(n[i][j]>45&&n[i][j]<=50&&m[i][j]2) SetPos(i,j),Color(4),cout<<"▲",Color(0);//刺 if(m[i][j]3) SetPos(i,j),Color(5),cout<<"〓",Color(0);//箱 if(m[i][j]>=4&&m[i][j]<=7) SetPos(i,j),Color(5),cout<<"█",Color(0),m[i][j]++;//烟 if(m[i][j]8) SetPos(i,j),cout<<" ",m[i][j]=0;//烟尘 if(m[i][j]>=84&&m[i][j]<=87) SetPos(i,j),Color(5),cout<<"█",Color(0),m[i][j]++;//烟 if(m[i][j]88) SetPos(i,j),cout<<" ",m[i][j]=0;//烟尘 if(m[i][j]>=10&&m[i][j]<=30) SetPos(i,j),Color(10),cout<<"@ ",Color(0),m[i][j]++;//毒 if(m[i][j]>=60&&m[i][j]<=80) SetPos(i,j),Color(11),cout<<"@ ",Color(0),m[i][j]++;//怪毒 if(m[i][j]9||m[i][j]59) SetPos(i,j),Color(12),cout<<"@ ",Color(0),m[i][j]++;//金毒 if(m[i][j]31||m[i][j]81) SetPos(i,j),cout<<" ",m[i][j]=0;//毒尘 if(n[i][j]1) SetPos(i,j),Color(13),cout<<"~ ",Color(0);//水 if(m[i][j]50) SetPos(i,j),Color(1),cout<<"●",Color(0),Guai++;//怪 if(m[i][j]51) SetPos(i,j),Color(10),cout<<"●",Color(0),Guai++;//怪 if(m[i][j]52) SetPos(i,j),Color(3),cout<<"●",Color(0),Guai++;//怪 if(m[i][j]53) SetPos(i,j),Color(4),cout<<"●",Color(0),Guai++;//怪 if(m[i][j]54) SetPos(i,j),Color(5),cout<<"●",Color(0),Guai++;//怪 if(m[i][j]/1001) { if((m[i][j]%100)/10<=1) SetPos(i,j),cout<<"☉"; if((m[i][j]%100)/102) SetPos(i,j),Color(4),cout<<"◎",Color(0); if((m[i][j]%100)/103) SetPos(i,j),Color(1),cout<<"◎",Color(0); if((m[i][j]%100)/104) m[i][j]=4; if((m[i][j]%100)/105) SetPos(i,j),Color(3),cout<<"◎",Color(0); if((m[i][j]%100)/106) SetPos(i,j),Color(2),cout<<"¤",Color(0); if((m[i][j]%100)/10>=7&&(m[i][j]%100)/10<=9) SetPos(i,j),Color(2),cout<<"◎",Color(0); } if(m[i][j]/1002) if((m[i][j]%100)/101) SetPos(i,j),Color(3),cout<<"☉",Color(0); return Guai; } void Boss() { SetPos(Bx-1,By-1),cout<<" ";SetPos(Bx,By-1),cout<<" ";SetPos(Bx+1,By-1),cout<<" "; int mov=rand()%30+1,R=rand()%300,ms; if(mov1&&CanGo(Bx-1,By-2,1)&&CanGo(Bx,By-2,1)&&CanGo(Bx+1,By-2,1)) By--; if(mov2&&CanGo(Bx-1,By+2,1)&&CanGo(Bx,By+2,1)&&CanGo(Bx+1,By+2,1)) By++; if(mov3&&CanGo(Bx-2,By-1,1)&&CanGo(Bx-2,By,1)&&CanGo(Bx-2,By+1,1)) Bx--; if(mov4&&CanGo(Bx+2,By-1,1)&&CanGo(Bx+2,By,1)&&CanGo(Bx+2,By+1,1)) Bx++; if(mov5&&Bsi0) Bsi+=rand()%3+1; if(mov6&&Bjiao0) Bjiao+=rand()%3+1;if(mov7&&Bdu0) Bdu+=5; if(mov8&&Bxz0) Bxz+=rand()%20-10;if(mov9&&Byz0) Byz+=rand()%20-10; if(Byz<0) {Byz++; if(By-2>1) By--;}if(Byz>0) {Byz--; if(By+2<28) By++;}if(Bxz<0) {Bxz++; if(Bx-2>1) Bx--;}if(Bxz>0) {Bxz--; if(Bx+2<28) Bx++;} if(R<15&Gguai<=5) Bfang++; else if(R<5&&Gguai<=10) Bfang++; else if(R0) Bfang++; SetPos(Bx-1,By-1),Color(0),cout<<" ●● "; SetPos(Bx,By-1) ,Color(4),cout<<")██("; SetPos(Bx+1,By-1),Color(4),cout<<" …… ";Color(0); if(abs(Bx-X)<=1&&abs(By-Y)<=1) Jian(50);int I,J; if(Bsi>0) {Bsi--;I=Bx-2,J=By+rand()%3-1;if(CanGo(I,J,7)) m[I][J]=211;I=Bx+rand()%3-1,J=By+2;if(CanGo(I,J,7)) m[I][J]=213;I=Bx+2,J=By+rand()%3-1;if(CanGo(I,J,7)) m[I][J]=215;I=Bx+rand()%3-1,J=By-2;if(CanGo(I,J,7)) m[I][J]=217;} if(Bjiao>0) {Bjiao--;I=Bx-2,J=By+2;if(CanGo(I,J,7)) m[I][J]=212;I=Bx+2,J=By+2;if(CanGo(I,J,7)) m[I][J]=214;I=Bx+2,J=By-2;if(CanGo(I,J,7)) m[I][J]=216;I=Bx-2,J=By-2;if(CanGo(I,J,7)) m[I][J]=218;} if(Bdu>0) {if(Bdu>0) Bdu--;for(int i=Bx-4;i<=Bx+4;i++) for(int j=By-4;j<=By+4;j++) if(CanGo(i,j,2)&&abs(Bx-X)>1&&abs(By-Y)>1&&i>0&&j>0) m[i][j]=59;} if(Bfang>0) {Bfang--;I=Bx+rand()%5-2,J=By+rand()%5-2;int rr=rand()%6-1;if(rr-1) rr=0; if(((rr<3&&Lev<5)||(Lev>5))&&(CanGo(I,J,7))) m[I][J]=50+rr;} if(Lev4) ms=3;if(Lev9) ms=5;if(Lev14) ms=10;if(Lev19) ms=15;if(Lev24) ms=20; if(T%500&&Bblood<ms12) Bblood++,Map(3); for(int i=Bx-1;i<=Bx+1;i++) for(int j=By-1;j<=By+1;j++) { int du=0; if(m[i][j]/1001) Bblood-=1,Bsi+=rand()%3+1,Map(3); if(m[i][j]/1015) Bblood-=2,Map(3); if(m[i][j]<50||m[i][j]>55) m[i][j]=0; if(m[i][j]>=84&&m[i][j]<=87) Bblood-=1,Bsi+=rand()%3+1,Map(3); if(du0&&m[i][j]>=9&&m[i][j]<=30) Bblood-=1,du++,Bdu++,Map(3); if(Bblood<=0) {Bblood=0;SetPos(Bx-1,By-1),cout<<" ";SetPos(Bx,By-1),cout<<" ";SetPos(Bx+1,By-1),cout<<" ";} } } void Map(int x)//x=0只输中间 1输全屏 2输身周 2输上方 4 CoutMe中用 5 GuaiQuan中用 { if(x!=4) CoutMe(); int f1,f2,f3,f4,Guai=0; if(x0) f1=f3=2,f2=f4=28; if(x1||x5) f1=f3=1,f2=f4=29; if(x2) f1=X-1,f2=X+1,f3=Y-1,f4=Y+1; if((x4||x3||x1)&&Win>=0) { SetPos(-3,2),cout<<Lev/5+1<<'-'<<Lev%5+1; SetPos(-2,2),cout<<"枪:"; if(gunZ1) cout<<"普通枪";if(gunZ2) cout<<"分裂枪";if(gunZ3) cout<<"穿甲枪"; if(gunZ4) cout<<"激光枪";if(gunZ5) cout<<"爆炸枪";if(gunZ6) cout<<"毒气枪";if(gunZ7) cout<<"弹跳枪"; cout<<" 子弹数:";if(gunZ1) cout<<"∞";else cout<<G[gunZ]<<" "; SetPos(-1,2),cout<<"血量:";Color(4);int r; if(WuDi>0) r=rand()%5+1,Color(r); for(int i=1;i<=Blood;i++) cout<<"█";Color(0);for(int i=Blood;i<Bmax;i++) cout<<"█"; Color(0);SetPos(-1,18),cout<<" "; SetPos(0,2),cout<<"盾牌:";Color(9); if(Dun!=0) for(int i=1;i<=Dun;i++) cout<<"█";Color(0);for(int i=max(1,Dun);i<Dmax;i++) cout<<"█"; if(Bblood>0) { int ms; if(Lev4) ms=5; if(Lev9) ms=10; if(Lev14) ms=14; if(Lev19) ms=17; if(Lev24) ms=20; SetPos(-1,15),cout<<" "; SetPos(-1,15),cout<<"Boss:";Color(4);for(int i=1;i<=(Bblood-1)%12+1;i++) cout<<"█"; SetPos(-1,24),Color(3);cout<<(Bblood-1)/12+1; } } if(x5) { Color(0); SetPos(-3,2),cout<<" ↑ W 开箱(当有箱子在旁时) 开局无敌3秒"; SetPos(-2,2),cout<<"← →移动 A/D 顺/逆时针转枪 空格 暂停"; SetPos(-1,2),cout<<" ↓ S 发射子弹 清除所有怪进下一关 盾会恢复"; SetPos(0,2), cout<<" 每五关可获得一个天赋 完成 5-5 通关 ",Color(3),cout<<"按 y 进第一关"; for(int i=f1;i<=f2;i++) for(int j=f3;j<=f4;j++) Cout(x,i,j); } if(x!=3&&x!=4) { for(int i=f1;i<=f2;i++) for(int j=f3;j<=f4;j++) Guai+=Cout(x,i,j); if(x!=2) { int Rr=rand()%3; if(Guai<Gguai&&Guai!=0&&F[15]1&&Rr0&&Lev%54) Dun=min(Dmax,Dun+1),Map(3); Gguai=Guai; } if(Guai0&&x0&&Win0&&Bblood<=0) { if(Lev!=24) {
system("color 6E"),Color(5); SetPos(2,2),cout<<"You! Win!!!";Sleep(500); SetPos(3,2),cout<<"Please point 'y' to Play AGain.",Sleep(1000); system("color 0F");Map(1); } Win++,Lev++; } } } void Fan(int i,int j,int M) { if(M%101||M%103) m[i][j]=M+4; if(M%105||M%107) m[i][j]=M-4; if(M%102) { if(m[i][j+1]!=0||m[i-2][j+1]!=0) m[i][j]=M+6; else if(m[i-1][j]!=0||m[i-1][j+2]!=0) m[i][j]=M+2; else m[i][j]=M+4; } if(M%104) { if(m[i+1][j]!=0||m[i+1][j+2]!=0) m[i][j]=M-2; else if(m[i][j+1]!=0||m[i+2][j+1]!=0) m[i][j]=M+2; else m[i][j]=M+4; } if(M%106) { if(m[i][j-1]!=0||m[i+2][j-1]!=0) m[i][j]=M-2; else if(m[i+1][j]!=0||m[i+1][j-2]!=0) m[i][j]=M+2; else m[i][j]=M-4; } if(M%108) { if(m[i][j-1]!=0||m[i-2][j-1]!=0) m[i][j]=M-6; else if(m[i-1][j]!=0||m[i-1][j-2]!=0) m[i][j]=M-2; else m[i][j]=M-4; } } void Light(int i,int j,int M,int x) { if(M%101) for(int k=1;CanGo(i-k,j,x);k++) {if(x3) m[i-k][j]=84; else m[i-k][j]=4;} if(M%102) for(int k=1;CanGo(i-k,j+k,x);k++){if(x3) m[i-k][j+k]=84; else m[i-k][j+k]=4;} if(M%103) for(int k=1;CanGo(i,j+k,x);k++) {if(x3) m[i][j+k]=84; else m[i][j+k]=4;} if(M%104) for(int k=1;CanGo(i+k,j+k,x);k++){if(x3) m[i+k][j+k]=84; else m[i+k][j+k]=4;} if(M%105) for(int k=1;CanGo(i+k,j,x);k++) {if(x3) m[i+k][j]=84; else m[i+k][j]=4;} if(M%106) for(int k=1;CanGo(i+k,j-k,x);k++){if(x3) m[i+k][j-k]=84; else m[i+k][j-k]=4;} if(M%107) for(int k=1;CanGo(i,j-k,x);k++) {if(x3) m[i][j-k]=84; else m[i][j-k]=4;} if(M%108) for(int k=1;CanGo(i-k,j-k,x);k++){if(x3) m[i-k][j-k]=84; else m[i-k][j-k]=4;} } void Move() { bool nx[32][32]; memset(nx,0,sizeof(nx)); for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) { if(m[i][j]50&&nx[i][j]0&&T%20)//无脑怪 { int r,I=i,J=j,rr=rand()%5,rrr=rand()%2; if(rrr0) {if(X<i) r=1;if(X>i) r=4;} if(rrr1) {if(Y>j) r=2;if(Y<j) r=3;} if(rr0) r=rand()%4+1; if(r1) I=i-1,J=j;if(r2) I=i,J=j+1;if(r3) I=i,J=j-1;if(r4) I=i+1,J=j; if(CanGo(I,J,1)) m[i][j]=0,m[I][J]=50,SetPos(i,j),cout<<" ",SetPos(I,J),cout<<"●",nx[I][J]=1; } if(m[i][j]51&&nx[i][j]0)//毒怪 { int R=rand()%10; int r,I=i,J=j,rr=rand()%30,rrr=rand()%2,mr=rand()%15; if(rrr0) {if(X<i) r=1;if(X>i) r=4;} if(rrr1) {if(Y>j) r=2;if(Y<j) r=3;} if(rr!=0) r=rand()%4+1; if(r1) I=i-1,J=j;if(r2) I=i,J=j+1;if(r3) I=i,J=j-1;if(r4) I=i+1,J=j; if(mr0) {for(int k=I-2;k<=I+2;k++) for(int l=J-2;l<=J+2;l++) if(k>1&&l>1&&k<=28&&l<=28&&(CanGo(k,l,1)||m[k][l]1)) m[k][l]=59;} if(CanGo(I,J,1)||m[I][J]1) m[i][j]=59,m[I][J]=51,SetPos(i,j),cout<<" ",SetPos(I,J),cout<<"●",nx[I][J]=1; } if(m[i][j]52&&nx[i][j]0)//散弹怪 { int R=rand()%10; if(R0) { int I,J,r,rn=0; int rr=rand()%8,Rn=rand()%3+1; Xr: rr=rand()%8,rn++; if(rr0) {r=1,I=i-1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr1) {r=3,I=i,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr2) {r=5,I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr3) {r=7,I=i,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr4) {r=2,I=i-1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr5) {r=4,I=i+1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr6) {r=6,I=i+1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr7) {r=8,I=i-1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} if(rr8) {r=rand()%7+2;I=i+1,J=j;if(m[I][J]!=2) m[I][J]=210+r;}nx[I][J]=1; if(rn<Rn) goto Xr; } else if(R<=2) { int r=rand()%4+1,Ie,Je; if(r1) Ie=i-1,Je=j;if(r2) Ie=i,Je=j+1;if(r3) Ie=i,Je=j-1;if(r4) Ie=i+1,Je=j; if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=52,SetPos(i,j),cout<<" ",SetPos(Ie,Je),cout<<"●"; } } if(m[i][j]53&&nx[i][j]0)//瞄准怪 { int R=rand()%6; if(R0) { int I,J,r,rr=rand()%5; if(X-i<0&&abs(Y-j)<=2) {r=1,I=i-1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(Y-j>0&&abs(X-i)<=2) {r=3,I=i,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(X-i>0&&abs(Y-j)<=2) {r=5,I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(Y-j<0&&abs(X-i)<=2) {r=7,I=i,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(X-i<0&&Y-j>0&&abs((i-X)-(Y-j))<=2) {r=2,I=i-1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(X-i>0&&Y-j>0&&abs((X-i)-(Y-j))<=2) {r=4,I=i+1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(X-i>0&&j-Y>0&&abs((X-i)-(j-Y))<=2) {r=6,I=i+1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(X-i<0&&Y-j<0&&abs((i-X)-(j-Y))<=2) {r=8,I=i-1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;} else if(rr0) {r=rand()%7+2;I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;} } else if(R1) { int r=rand()%4+1,Ie,Je; if(r1) Ie=i-1,Je=j;if(r2) Ie=i,Je=j+1;if(r3) Ie=i,Je=j-1;if(r4) Ie=i+1,Je=j; if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=53,SetPos(i,j),cout<<" ",SetPos(Ie,Je),cout<<"●"; } } if(m[i][j]54&&nx[i][j]0)//激光怪 { int R=rand()%10; if(R0) {int r=rand()%4; Light(i,j,231+2*r,2);} else if(R<=3) { int r=rand()%4+1,Ie,Je; if(r1) Ie=i-1,Je=j;if(r2) Ie=i,Je=j+1;if(r3) Ie=i,Je=j-1;if(r4) Ie=i+1,Je=j; if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=54,SetPos(i,j),cout<<" ",SetPos(Ie,Je),cout<<"●"; } } if(m[i][j]/1002&&F[3]1&&T%20) nx[i][j]=1; if((m[i][j]/1001||m[i][j]/1002)&&nx[i][j]0)//子弹 { int M=m[i][j],I,J;m[i][j]=0;SetPos(i,j),cout<<" "; if(M%101) I=i-1,J=j;if(M%102) I=i-1,J=j+1;if(M%103) I=i,J=j+1;if(M%104) I=i+1,J=j+1; if(M%105) I=i+1,J=j;if(M%106) I=i+1,J=j-1;if(M%107) I=i,J=j-1;if(M%10==8) I=i-1,J=j-1;if(I==X&&J==Y&&M/100==2) {Jian(2),system("color 4F"),Sleep(30);system("color 0F"),m[i][j]=0;Map(4);} else if(I==X&&J==Y&&M/100==1) m[I][J]=0; else if(M/100==2&&m[I][J]/100==1) m[i][j]=32; else if(M/100==2&&m[I][J]<55&&m[I][J]>=50) m[i][j]=0; else if(m[I][J]==2||m[I][J]==3)//石 { if((M%100)/10==0) { int rr=rand()%3; if(rr==0) Fan(i,j,M),m[i][j]+=10; else m[i][j]=84; } if((M%100)/10==1) { m[i][j]=84; int rr=rand()%5; if(rr==0&&F[14]==1&&M/100==1) { for(int ii=i-1;ii<=i+1;ii++) for(int jj=j-1;jj<=j+1;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84; } } if((M%100)/10==2) { m[i][j]=84; if(m[i-1][j]!=2&&m[i-1][j]!=3) m[i-1][j]=111; if(m[i-1][j+1]!=2&&m[i-1][j+1]!=3) m[i-1][j+1]=112; if(m[i][j+1]!=2&&m[i][j+1]!=3) m[i][j+1]=113; if(m[i+1][j+1]!=2&&m[i+1][j+1]!=3) m[i+1][j+1]=114; if(m[i+1][j]!=2&&m[i+1][j]!=3) m[i+1][j]=115; if(m[i+1][j-1]!=2&&m[i+1][j-1]!=3) m[i+1][j-1]=116; if(m[i][j-1]!=2&&m[i][j-1]!=3) m[i][j-1]=117; if(m[i-1][j-1]!=2&&m[i-1][j-1]!=3) m[i-1][j-1]=118; } if((M%100)/10==3) {if(m[I][J]==2&&(I!=1&&J!=1&&I!=29&&J!=29)) m[I][J]=84;else m[i][j]=84;} if((M%100)/10==4) m[i][j]=84; if((M%100)/10==5) { for(int ii=i-2;ii<=i+2;ii++) for(int jj=j-2;jj<=j+2;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84; } if((M%100)/10==6) { for(int ii=i-1;ii<=i+1;ii++) for(int jj=j-1;jj<=j+1;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=9; } if((M%100)/10>=7&&(M%100)/10<9) Fan(i,j,M),m[i][j]+=(rand()%2)*10; if((M%100)/10==9) m[i][j]=84; } else if(!CanGo(I,J,6))//其他 { if((M%100)/10==0) m[I][J]=84,Fan(i,j,M),m[i][j]+=10; if((M%100)/10==1) { if(M/100==2&&m[I][J]==50) m[i][j]=0; else m[I][J]=84; if(F[14]==1&&M/100==1) { for(int ii=I-1;ii<=I+1;ii++) for(int jj=J-1;jj<=J+1;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84; } } if((M%100)/10==2) { m[I][J]=84; if(m[I-1][J]!=2&&m[I-1][J]!=3) m[I-1][J]=111; if(m[I-1][J+1]!=2&&m[I-1][J+1]!=3) m[I-1][J+1]=112; if(m[I][J+1]!=2&&m[I][J+1]!=3) m[I][J+1]=113; if(m[I+1][J+1]!=2&&m[I+1][J+1]!=3) m[I+1][J+1]=114; if(m[I+1][J]!=2&&m[I+1][J]!=3) m[I+1][J]=115; if(m[I+1][J-1]!=2&&m[I+1][J-1]!=3) m[I+1][J-1]=116; if(m[I][J-1]!=2&&m[I][J-1]!=3) m[I][J-1]=117; if(m[I-1][J-1]!=2&&m[I-1][J-1]!=3) m[I-1][J-1]=118; } if((M%100)/10==3) m[I][J]=M,nx[I][J]=1; if((M%100)/10==4) Light(i,j,M,3); if((M%100)/10==5) { for(int ii=I-2;ii<=I+2;ii++) for(int jj=J-2;jj<=J+2;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84; } if((M%100)/10==6) { for(int ii=I-1;ii<=I+1;ii++) for(int jj=J-1;jj<=J+1;jj++) if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=9; } if((M%100)/10>=7&&(M%100)/10<9) m[I][J]=84,Fan(i,j,M); if((M%100)/10==9) m[I][J]=84; } else//空地 { if((M%100)/10==6) { m[i][j]=9; if(CanGo(i,j-1,5)) m[i][j-1]=9;if(CanGo(i,j+1,5)) m[i][j+1]=9; if(CanGo(i-1,j,5)) m[i-1][j]=9;if(CanGo(i-1,j,5)) m[i+1][j]=9; m[I][J]=M,nx[I][J]=1; } if((M%100)/10==4) m[i][j]=84,m[I][J]=M,i=2,j=2; else m[I][J]=M,nx[I][J]=1; } } } if(Bblood>0) Boss();
} void Bullet() { int I=0,J=0,R=rand()%10,Rr=rand()%3,Rrr,K=0,tg=gunT; Hh:Rrr=rand()%20; if(gunT1&&m[X-1][Y]!=2&&m[X-1][Y]!=3) I=X-1,J=Y; if(gunT2&&m[X-1][Y+1]!=2&&m[X-1][Y+1]!=3) I=X-1,J=Y+1; if(gunT3&&m[X][Y+1]!=2&&m[X][Y+1]!=3) I=X,J=Y+1; if(gunT4&&m[X+1][Y+1]!=2&&m[X+1][Y+1]!=3) I=X+1,J=Y+1; if(gunT5&&m[X+1][Y]!=2&&m[X+1][Y]!=3) I=X+1,J=Y; if(gunT6&&m[X+1][Y-1]!=2&&m[X+1][Y-1]!=3) I=X+1,J=Y-1; if(gunT7&&m[X][Y-1]!=2&&m[X][Y-1]!=3) I=X,J=Y-1; if(gunT8&&m[X-1][Y-1]!=2&&m[X-1][Y-1]!=3) I=X-1,J=Y-1; if(I!=0&&J!=0) m[I][J]=100+10gunZ+gunT; if(K1) m[I][J]=110+gunT; if(F[2]1&&gunZ1) m[I][J]=100+gunT; if(F[8]1&&R0&&K0) {gunT=rand()%8+1;K=1;goto Hh;} if(F[8]1&&K!=0&&K<Rr) {gunT=rand()%8+1;K++;goto Hh;} if(K>=Rr) gunT=tg; if(Rrr0&&F[11]1&&K0) {m[I][J]=100+10(rand()%7+1)+gunT;} if(gunZ!=1) {G[gunZ]--; if(G[gunZ]<=0) G[gunZ]=0,gunZ=1;Map(3);} } void OpenBox(int a) { for(int i=X-1;i<=X+1;i++) for(int j=Y-1;j<=Y+1;j++) if(m[i][j]3) { int r=2;// if(a1) r=rand()%6+2; if(F[9]1) r=rand()%12+2; SetPos(i,j);Color(5); if(r2) cout<<"分裂枪!"; if(r3) cout<<"穿甲枪!"; if(r4) cout<<"激光枪!"; if(r5) cout<<"爆炸枪!"; if(r6) cout<<"毒气枪!"; if(r7) cout<<"弹跳枪!"; if(r8) cout<<"生命药水!",Blood=min(Blood+5,Bmax+2),Map(3); if(r9) cout<<"盾牌药水!",Dun=min(Dun+5,Dmax+2),Map(3); if(F[9]1&&r>=8&&r<=13) cout<<"生命药水!",Blood=min(Blood+5,Bmax+2),Map(3); Sleep(1000);m[i][j]=84;if(r<=7&&F[6]0) gunZ=r,G[r]+=10;if(r<=7&&F[6]1) gunZ=r,G[r]+=20; SetPos(i,j); cout<<" ";Map(0); } } void Sheng() { memset(m,0,sizeof(m));memset(n,0,sizeof(n)); int q=0,T=0,II=0,JJ=0; Re: q++; int r=rand()%15+1; if(F[19]1) r=rand()%20+1; if(r1) {for(int i=5;i<=7;i++)for(int j=5;j<=7;j++) m[i][j]=2;for(int i=23;i<=25;i++)for(int j=5;j<=7;j++) m[i][j]=2;for(int i=5;i<=7;i++)for(int j=23;j<=25;j++) m[i][j]=2;for(int i=23;i<=25;i++)for(int j=23;j<=25;j++) m[i][j]=2;} if(r2) {for(int i=13;i<=17;i++) for(int j=13;j<=17;j++) m[i][j]=1;} if(r3) {for(int i=2;i<=28;i++) m[i][6]=m[i][24]=m[6][i]=m[24][i]=1;} if(r4) {for(int i=2;i<=28;i++) m[i][15]=m[15][i]=1;} if(r5) {for(int i=2;i<=28;i++) if(abs(i-15)>=3) m[i][15]=m[15][i]=2;} if(r6) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) if(ij||i+j30) m[i][j]=1;} if(r7) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) if(abs(i-15)+abs(j-15)10) m[i][j]=1;} if(r8) {for(int i=5;i<=25;i++) if(abs(i-15)>=2) m[i][10]=m[i][20]=m[10][i]=m[20][i]=2;} if(r9) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) {int rr=rand()%20; if(rr0&&m[i][j]0) m[i][j]=1;}} if(r>=10&&II0) {T--;int ii=rand()%27+2;int jj=rand()%27+2; for(int i=ii-1;i<=ii+1;i++) for(int j=jj-1;j<=jj+1;j++) if(m[i][j]0) m[i][j]=1;II=ii,JJ=jj;} if(r>=10&&II!=0) goto Re;if(Lev<=5&&q<2) goto Re; T++;if(T1) goto Re;if(II!=0) m[II][JJ]=3; r=rand()%15+1; if(r1) {for(int i=5;i<=25;i++) n[i][4]=n[i][9]=n[i][15]=n[i][21]=n[i][26]=31;} if(r2) {for(int i=8;i<=22;i++) n[i][8]=n[i][22]=n[8][i]=n[22][i]=31;} if(r3) {for(int i=1;i<=5;i++) {int ii=rand()%23+4,jj=rand()%23+4;for(int ki=ii-2;ki<=ii+2;ki++)for(int kj=jj-2;kj<=jj+2;kj++) if(abs(ki-X)>2||abs(kj-Y)>2) n[ki][kj]=1;}} if(r4) {for(int i=1;i<=7;i++) {int ii=rand()%23+4,jj=rand()%23+4;for(int ki=ii-1;ki<=ii+1;ki++)for(int kj=jj-1;kj<=jj+1;kj++) n[ki][kj]=11;}} if(r5) {for(int i=1;i<=20;i++) {int ii=rand()%23+4,jj=rand()%13+1;jj*=2;for(int ki=ii-1;ki<=ii+1;ki++) n[jj+1][ki]=31;}} if(r6) {for(int i=2;i<=28;i++) n[i][9]=n[i][10]=n[i][20]=n[i][21]=11;} if(r7) {for(int i=5;i<=25;i++) n[4][i]=n[9][i]=n[15][i]=n[21][i]=n[26][i]=31;} if(r8) {for(int i=7;i<=23;i++) for(int j=7;j<=23;j++) if(ij||i+j30) n[i][j]=31;} if(r9) {for(int i=2;i<=28;i++) {if(i!=4&&i!=26&&!(iY&&(14<=X&&16>=X))) n[14][i]=n[15][i]=n[16][i]=1; m[14][i]=m[15][i]=m[16][i]=0;}} if(r10) {for(int i=7;i<=23;i++) if(abs(i-15)>1) n[i][7]=n[i][23]=n[7][i]=n[23][i]=1;} Kk: int k=0,K[35][35]; memset(K,0,sizeof(K)); if(Lev%5!=4) { for(int i=2;i<=28;i++)//怪 for(int j=2;j<=28;j++) { if(Lev<=1) {int r=rand()%150;if(r0) K[i][j]=50,k++;} else if(Lev<=2) {int r=rand()%200;if(r0) K[i][j]=50;if(r1) K[i][j]=51;if(r<=1) k++;} else if(Lev<=3) {int r=rand()%300;if(r0) K[i][j]=50;if(r1) K[i][j]=51;if(r2) K[i][j]=52;if(r<=2) k++;} else if(Lev<=5) {int r=rand()%400;if(r0) K[i][j]=50;if(r1) K[i][j]=51;if(r2) K[i][j]=52;if(r3) K[i][j]=53;if(r<=3) k++;} else if(Lev<=7) {int r=rand()%350;if(r0) K[i][j]=50;if(r1) K[i][j]=51;if(r2) K[i][j]=52;if(r3) K[i][j]=53;if(r4) K[i][j]=54;if(r<=4) k++;} else {int r;if(Lev<=10) r=rand()%300;if(Lev<=15) r=rand()%280;if(Lev<=20) r=rand()%250;if(Lev<=25) r=rand()%230;if(r0) K[i][j]=50;if(r1) K[i][j]=51;if(r2) K[i][j]=52;if(r3) K[i][j]=53;if(r4) K[i][j]=54;if(r<=4) k++;} }if(k<3) goto Kk;if(k>5&&Lev<=3) goto Kk;if(k<5&&Lev>=10) goto Kk;if(k>10&&Lev<=10) goto Kk;if(k>15&&Lev<=15) goto Kk;if(k<10&&Lev>=20) goto Kk;if(k>20&&Lev<=20) goto Kk; } for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) {if(n[i][j]!=0) m[i][j]=0;if(K[i][j]!=0&&(m[i-1][j]!=2||m[i+1][j]!=2||m[i][j-1]!=2||m[i][j+1]!=2)) m[i][j]=K[i][j];} if(Lev%54) {int ms;if(Lev4) ms=3;if(Lev9) ms=5;if(Lev14) ms=10;if(Lev19) ms=15;if(Lev24) ms=20;Bx=rand()%23+4,By=rand()%23+4;Bblood=ms*12;for(int i=14;i<=16;i++) for(int j=14;j<=16;j++) m[i][j]=n[i][j]=0;} for(int i=X-1;i<=X+1;i++) for(int j=Y-1;j<=Y+1;j++) if(i!=1&&i!=29&&j!=1&&j!=29) m[i][j]=0; for(int i=1;i<=29;i++) m[1][i]=2,m[29][i]=2; for(int i=1;i<=29;i++) m[i][1]=2,m[i][29]=2;//周围石块 } void TianFu() { int A[4],ss=0; system("cls"); SetPos(5,5),cout<<"选择一个天赋!(数字键选择)"; Tf: int R=rand()%20+1; for(int i=1;i<=3;i++) if(RA[i]) goto Tf; if(F[R]1) goto Tf; ss++,A[ss]=R; SetPos(4*ss+5,8),cout<<ss<<"、"; if(R1) SetPos(4ss+5,10),cout<<"盾牌恢复速度增加"; if(R==2) SetPos(4ss+5,10),cout<<"普通子弹有概率弹跳"; if(R3) SetPos(4*ss+5,10),cout<<"怪物子弹速度变慢"; if(R4) SetPos(4ss+5,10),cout<<"免疫地刺和怪物的毒"; if(R==5) SetPos(4ss+5,10),cout<<"开局无敌时间增加"; if(R6) SetPos(4*ss+5,10),cout<<"宝箱子弹量增加"; if(R7) SetPos(4ss+5,10),cout<<"盾牌上限增加"; if(R==8) SetPos(4ss+5,10),cout<<"有概率发射散弹"; if(R9) SetPos(4*ss+5,10),cout<<"宝箱抽出生命水概率增加"; if(R10) SetPos(4ss+5,10),cout<<"每次开局有概率增加生命"; if(R==11) SetPos(4ss+5,10),cout<<"有概率发射特殊子弹"; if(R12) SetPos(4*ss+5,10),cout<<"激光伤害减半"; if(R13) SetPos(4ss+5,10),cout<<"盾牌爆后无敌一段时间"; if(R==14) SetPos(4ss+5,10),cout<<"普通子弹有概率爆炸"; if(R15) SetPos(4*ss+5,10),cout<<"杀死怪有几率加盾(BOSS关除外)"; if(R16) SetPos(4ss+5,10),cout<<"出场释放冲击波"; if(R==17) SetPos(4ss+5,10),cout<<"盾牌爆后释放冲击波"; if(R18) SetPos(4*ss+5,10),cout<<"有概率在身周放毒"; if(R19) SetPos(4ss+5,10),cout<<"刷出宝箱概率增加"; if(R==20) SetPos(4ss+5,10),cout<<"每次开局获得一把枪"; if(ss<3) goto Tf; tF: char c=_getch(); if(c>='1'&&c<='3') F[A[c-'0']]=1; else goto tF; if(A[c-'0']7) Dmax+=3; } void GuaiQuan() { X=3,Y=3;Win=-1;system("cls");Color(0); memset(m,0,sizeof(m));memset(n,0,sizeof(n)); for(int i=1;i<=29;i++) m[1][i]=2,m[29][i]=2; for(int i=1;i<=29;i++) m[i][1]=2,m[i][29]=2;//周围石块 for(int i=4;i<=12;i++) m[i][4]=m[i][12]=m[4][i]=m[12][i]=m[i][18]=m[i][26]=m[18][i]=m[26][i]=2; for(int i=18;i<=26;i++) m[i][4]=m[i][12]=m[4][i]=m[12][i]=m[i][18]=m[i][26]=m[18][i]=m[26][i]=2; for(int i=11;i<=19;i++) m[i][11]=m[i][19]=m[11][i]=m[19][i]=2; for(int i=6;i<=10;i++) for(int j=13;j<=17;j++) m[i][j]=1; m[8][8]=50;m[8][21]=51;m[15][15]=52;m[21][8]=53;m[21][21]=54;m[16][23]=3;Map(5); SetPos(3,5);cout<<"←你";SetPos(4,14);cout<<"木箱↓";SetPos(17,4);cout<<"铁块↓";SetPos(17,21);cout<<"宝箱↑"; SetPos(13,5);cout<<"无脑小怪↑";SetPos(14,21);cout<<"剧毒小怪↑"; SetPos(20,13);cout<<"散弹小怪↑";SetPos(27,5);cout<<"狙击小怪↑";SetPos(27,21);cout<<"激光小怪↑"; while(1) { if(bu>0) bu--; if(GetAsyncKeyState(VK_UP)&0x8000) Map(2),gx--; else if(GetAsyncKeyState(VK_DOWN)&0x8000) Map(2),gx++; else if(GetAsyncKeyState(VK_LEFT)&0x8000) Map(2),gy--; else if(GetAsyncKeyState(VK_RIGHT)&0x8000) Map(2),gy++; if(kbhit()) { char g=_getch(); if(g'a') {Map(2); if(gunT!=1) gunT--;else gunT=8;} if(g=='d') {Map(2); if(gunT!=8) gunT++;else gunT=1;} if(g=='w') OpenBox(1); if(g=='s'&&bu<=2) Bullet(),bu+=2; if(g==' ') Sleep(100),SetPos(-1,18),sy++,system("pause"); if(g=='y'&&Win<0) {break;} } if(sy1) SetPos(-1,18),cout<<" ",sy--; Move(); Map(0); Sleep(50); }Lev=0;Blood=10,Dun=10,Bmax=10,Dmax=10; } void Start() { Color(5); SetPos(2,3);cout<<" ■■■■■■ ■ "; SetPos(3,3);cout<<" ■■■■■■■■ "; SetPos(4,3);cout<<" ■ "; SetPos(5,3);cout<<" ■■■■■■■■■■ ■ ■■■■■■ "; SetPos(6,3);cout<<" ■ ■ "; SetPos(7,3);cout<<" ■ ■ ■■■■■■■ "; SetPos(8,3);cout<<" ■ ■ ■ ■ "; SetPos(9,3);cout<<" ■■ ■■■ ■ "; SetPos(10,3);cout<<" ■ ■ "; SetPos(11,3);cout<<" 小 ■■■■ "; SetPos(13,3);cout<<" 2.0版本: "; SetPos(14,3);cout<<" ■■■ ■ "; SetPos(15,3);cout<<" 新增BOSS!Crab-Dave! ■ ■ ■ "; SetPos(16,3);cout<<" ■■■ ■ ■ "; SetPos(17,3);cout<<" 水,生木块,地刺加入战场! ■ ■ ■■■■■"; SetPos(18,3);cout<<" ■ ■ "; SetPos(19,3);cout<<" 身周不会刷出石和水了! ■■■ ■■■■ "; SetPos(20,3);cout<<" ■ ■ ■ ■ "; SetPos(21,3);cout<<" BUG修正于小优化!努力通关吧! ■ ■ ■ ■ "; SetPos(22,3);cout<<" ■■ ■ ■■■■ "; SetPos(25,4);Color(1);cout<<"按 y 开始游戏!"; SetPos(29,3);Color(3);cout<<"注意!这里 绝对不能是拼音输入法!"; A:char y=_getch(); if(y'y') return; else goto A; } void Bling() { for(int i=0;i<=3;i++) { system("color 1A");Sleep(10); system("color 2B");Sleep(10); system("color 3C");Sleep(10); system("color 4D");Sleep(10); system("color 5D");Sleep(10); system("color 6E");Sleep(10); system("color 7F");Sleep(10); }system("color 0F");system("cls"); } void BaoBo(int B) { for(int i=X-B;i<=X+B;i++) if(CanGo(i,Y-B,3)&&i>0&&Y-B>0) m[i][Y-B]=86,m[i][Y-B+1]=8; for(int i=X-B;i<=X+B;i++) if(CanGo(i,Y+B,3)&&i>0&&Y+B>0) m[i][Y+B]=86,m[i][Y+B-1]=8; for(int j=Y-B;j<=Y+B;j++) if(CanGo(X+B,j,3)&&j>0&&X+B>0) m[X+B][j]=86,m[X+B-1][Y]=8; for(int j=Y-B;j<=Y+B;j++) if(CanGo(X-B,j,3)&&j>0&&X-B>0) m[X-B][j]=86,m[X-B+1][Y]=8; } void Ci() { for(int i=1;i<=29;i++) for(int j=1;j<=29;j++) { if(n[i][j]>=10&&n[i][j]<50&&n[i][j]!=30) n[i][j]++; if(n[i][j]50) {n[i][j]=31;if(m[i][j]2) m[i][j]=0;} if(n[i][j]45&&!(m[i][j]>=50&&m[i][j]<55)&&!(abs(Bx-i)<=1&&abs(By-i)<=1)) m[i][j]=2; if(n[i][j]>20&&n[i][j]<=30&&m[i][j]0) n[i][j]=10; if(n[i][j]20&&m[i][j]0&&!(abs(Bx-i)<=1&&abs(By-i)<=1)) m[i][j]=1; } } int main() { system("mode con cols=62 lines=34"); CONSOLE_CURSOR_INFO cursor_info={1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); srand((unsigned)time(NULL)); SSt: Start();Bling(); X=4,Y=8,gx=gy=0,gunT=1,gunZ=1,Lev=0,T; Blood=10,Dun=10,Bmax=10,Dmax=10; memset(G,0,sizeof(G)); memset(F,0,sizeof(F)); GuaiQuan(); St: Win=0;Bo=Boo=0; memset(m,0,sizeof(m)); if(Lev%50&&Lev!=0) TianFu(); Bling();T=0;Sheng();Map(1);int rr=rand()%3; if(F[5]1) WuDi=60;else WuDi=30; if(rr0&&F[10]1) Blood=min(Blood+1,Bmax); if(F[16]1) Bo=4; if(F[20]1) {int Q=rand()%7+2;gunZ=Q,G[Q]=5;} while(Win<=0&&Blood>0&&Lev<25) { T++; if(bu>0) bu--; if(WuDi>0) WuDi--; if(WuDi1) WuDi--,Map(4); if(Bo>0) BaoBo(5-Bo),Bo--; if(Boo>0) BaoBo(4-Boo),Boo--; if(F[18]1) { int Rrr=rand()%30; if(Rrr0) for(int i=X-2;i<=X+2;i++) for(int j=Y-2;j<=Y+2;j++) if(CanGo(i,j,5)&&i>0&&j>0) m[i][j]=9; } if(Dun<Dmax) { if(F[1]1&&T%300) Dun++,Map(3); if(F[1]0&&T%700) Dun++,Map(3); } if(GetAsyncKeyState(VK_UP)&0x8000) Map(2),gx--; else if(GetAsyncKeyState(VK_DOWN)&0x8000) Map(2),gx++; else if(GetAsyncKeyState(VK_LEFT)&0x8000) Map(2),gy--; else if(GetAsyncKeyState(VK_RIGHT)&0x8000) Map(2),gy++; if(kbhit()) { char g=_getch(); if(g'a') {Map(2); if(gunT!=1) gunT--;else gunT=8;} if(g'd') {Map(2); if(gunT!=8) gunT++;else gunT=1;} if(g'w') OpenBox(0); if(g's'&&bu<=2) Bullet(),bu+=2; if(g' ') Sleep(100),SetPos(-1,18),sy++,system("pause"); } if(sy1) SetPos(-1,18),cout<<" ",sy--; if(T%20) Ci(); Move();Map(0);Sleep(50); } if(Win0&&Blood<=0&&Lev<25) { system("color 7F"),Color(4);Lev=0;Blood=Dun=Bmax=Dmax=10; Bblood=Bsi=Bjiao=Bdu=Bfang=0; memset(G,0,sizeof(G)); memset(F,0,sizeof(F)); SetPos(2,2);cout<<"You! Die!!!",Sleep(1000); SetPos(3,2);cout<<"Please point 'y' to Play AGain."; } if(Lev<25) { A:char e=_getch();if(e'y') goto St;else goto A;} if(Lev==25) { system("color 6E"),Color(5); SetPos(2,2),cout<<"You! Pass All The Level!!!";Sleep(3000); system("color 0F");system("cls");goto SSt; } return 0; }
//飞机大战 #include #include<windows.h> #include<conio.h> #include<time.h> #include using namespace std;
/=============== all the structures ===============/
typedef struct Frame { COORD position[2]; int flag; }Frame;
/=============== all the functions ===============/
void SetPos(COORD a)// set cursor { HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(out, a); }
void SetPos(int i, int j)// set cursor { COORD pos={i, j}; SetPos(pos); }
void HideCursor() { CONSOLE_CURSOR_INFO cursor_info = {1, 0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); }
//把第y行,[x1, x2) 之间的坐标填充为 ch void drawRow(int y, int x1, int x2, char ch) { SetPos(x1,y); for(int i = 0; i <= (x2-x1); i++) cout<<ch; }
//在a, b 纵坐标相同的前提下,把坐标 [a, b] 之间填充为 ch void drawRow(COORD a, COORD b, char ch) { if(a.Y == b.Y) drawRow(a.Y, a.X, b.X, ch); else { SetPos(0, 25); cout<<"error code 01:无法填充行,因为两个坐标的纵坐标(x)不相等"; system("pause"); } }
//把第x列,[y1, y2] 之间的坐标填充为 ch void drawCol(int x, int y1, int y2, char ch) { int y=y1; while(y!=y2+1) { SetPos(x, y); cout<<ch; y++; } }
//在a, b 横坐标相同的前提下,把坐标 [a, b] 之间填充为 ch void drawCol(COORD a, COORD b, char ch) { if(a.X == b.X) drawCol(a.X, a.Y, b.Y, ch); else { SetPos(0, 25); cout<<"error code 02:无法填充列,因为两个坐标的横坐标(y)不相等"; system("pause"); } }
//左上角坐标、右下角坐标、用row填充行、用col填充列 void drawFrame(COORD a, COORD b, char row, char col) { drawRow(a.Y, a.X+1, b.X-1, row); drawRow(b.Y, a.X+1, b.X-1, row); drawCol(a.X, a.Y+1, b.Y-1, col); drawCol(b.X, a.Y+1, b.Y-1, col); }
void drawFrame(int x1, int y1, int x2, int y2, char row, char col) { COORD a={x1, y1}; COORD b={x2, y2}; drawFrame(a, b, row, col); }
void drawFrame(Frame frame, char row, char col) { COORD a = frame.position[0]; COORD b = frame.position[1]; drawFrame(a, b, row, col); }
void drawPlaying() { drawFrame(0, 0, 48, 24, '=', '|');// draw map frame; drawFrame(49, 0, 79, 4, '-', '|');// draw output frame drawFrame(49, 4, 79, 9, '-', '|');// draw score frame drawFrame(49, 9, 79, 20, '-', '|');// draw operate frame drawFrame(49, 20, 79, 24, '-', '|');// draw other message frame SetPos(52, 6); cout<<"得分:"; SetPos(52, 7); cout<<"称号:"; SetPos(52,10); cout<<"操作方式:"; SetPos(52,12); cout<<" a,s,d,w 控制战机移动。"; SetPos(52,14); cout<<" p 暂停游戏。"; SetPos(52,16); cout<<" e 退出游戏。"; }
//在[a, b)之间产生一个随机整数 int random(int a, int b) { int c=(rand() % (a-b))+ a; return c; }
//在两个坐标包括的矩形框内随机产生一个坐标 COORD random(COORD a, COORD b) { int x=random(a.X, b.X); int y=random(a.Y, b.Y); COORD c={x, y}; return c; }
bool judgeCoordInFrame(Frame frame, COORD spot) { if(spot.X>=frame.position[0].X) if(spot.X<=frame.position[1].X) if(spot.Y>=frame.position[0].Y) if(spot.Y<=frame.position[0].Y) return true; return false; }
void printCoord(COORD a) { cout <<"( "<<a.X<<" , "<<a.Y<<" )"; }
void printFrameCoord(Frame a) { printCoord(a.position[0]); cout <<" - "; printCoord(a.position[1]); }
int drawMenu() { SetPos(30, 1); cout<<"P l a n e W a r"; drawRow(3, 0, 79, '-'); drawRow(5, 0, 79, '-'); SetPos(28, 4); cout<<"w 和 s 选择, k 确定"; SetPos(15, 11); cout<<"1. 简单的敌人"; SetPos(15, 13); cout<<"2. 冷酷的敌人"; drawRow(20, 0, 79, '-'); drawRow(22, 0, 79, '-'); SetPos(47, 11); cout<<"简单的敌人:"; SetPos(51, 13); cout<<"简单敌人有着较慢的移动速度。"; SetPos(24, 21); cout<<"制作:LJF神犇"; int j=11; SetPos(12, j); cout<<">>";
//drawFrame(45, 9, 79, 17, '=', '|'); while(1) { if( _kbhit() ) { char x=_getch(); switch (x) { case 'w' : { if( j == 13) { SetPos(12, j); cout<<" "; j = 11; SetPos(12, j); cout<<">>"; SetPos(51, 13); cout<<" "; SetPos(47, 11); cout<<"简单的敌人:"; SetPos(51, 13); cout<<"简单敌人有着较慢的移动速度,容易对付。"; } break; } case 's' : { if( j == 11 ) { SetPos(12, j); cout<<" "; j = 13; SetPos(12, j); cout<<">>"; SetPos(51, 13); cout<<" "; SetPos(47, 11); cout<<"冷酷的敌人:"; SetPos(51, 13); cout<<"冷酷的敌人移动速度较快,难对付哟!!!"; } break; } case 'k' : { if (j == 8) return 1; else return 2; } } } }
}
/* DWORD WINAPI MusicFun(LPVOID lpParamte) { //DWORD OBJ; sndPlaySound(TEXT("bgm.wav"), SND_FILENAME|SND_ASYNC); return 0; } */
/================== the Game Class ==================/
class Game { public: COORD position[10]; COORD bullet[10]; Frame enemy[8]; int score; int rank; int rankf; string title; int flag_rank;
Game (); //初始化所有 void initPlane(); void initBullet(); void initEnemy(); //初始化其中一个 //void initThisBullet( COORD ); //void initThisEnemy( Frame ); void planeMove(char); void bulletMove(); void enemyMove(); //填充所有 void drawPlane(); void drawPlaneToNull(); void drawBullet(); void drawBulletToNull(); void drawEnemy(); void drawEnemyToNull(); //填充其中一个 void drawThisBulletToNull( COORD ); void drawThisEnemyToNull( Frame ); void Pause(); void Playing(); void judgePlane(); void judgeEnemy(); void Shoot(); void GameOver(); void printScore();
};
Game::Game() { initPlane(); initBullet(); initEnemy(); score = 0; rank = 25; rankf = 0; flag_rank = 0; }
void Game::initPlane() { COORD centren={39, 22}; position[0].X=position[5].X=position[7].X=position[9].X=centren.X; position[1].X=centren.X-2;
position[2].X=position[6].X=centren.X-1; position[3].X=position[8].X=centren.X+1; position[4].X=centren.X+2; for(int i=0; i<=4; i++) position[i].Y=centren.Y; for(int i=6; i<=8; i++) position[i].Y=centren.Y+1; position[5].Y=centren.Y-1; position[9].Y=centren.Y-2; }void Game::drawPlane() { for(int i=0; i<9; i++) { SetPos(position[i]); if(i!=5) cout<<"O"; else if(i==5) cout<<"|";
} }void Game::drawPlaneToNull() { for(int i=0; i<9; i++) { SetPos(position[i]); cout<<" "; }
}void Game::initBullet() { for(int i=0; i<10; i++) bullet[i].Y = 30; }
void Game::drawBullet() { for(int i=0; i<10; i++) { if( bullet[i].Y != 30) { SetPos(bullet[i]); cout<<"^";
} } }void Game::drawBulletToNull() { for(int i=0; i<10; i++) if( bullet[i].Y != 30 ) { COORD pos={bullet[i].X, bullet[i].Y+1}; SetPos(pos); cout<<" "; }
}void Game::initEnemy() { COORD a={1, 1}; COORD b={45, 15}; for(int i=0; i<8; i++) { enemy[i].position[0] = random(a, b); enemy[i].position[1].X = enemy[i].position[0].X + 3; enemy[i].position[1].Y = enemy[i].position[0].Y + 2; } }
void Game::drawEnemy() { for(int i=0; i<8; i++) drawFrame(enemy[i].position[0], enemy[i].position[1], '-', '|'); }
void Game::drawEnemyToNull() { for(int i=0; i<8; i++) { drawFrame(enemy[i].position[0], enemy[i].position[1], ' ', ' '); }
}void Game::Pause() { SetPos(61,2); cout<<" "; SetPos(61,2); cout<<"暂停中..."; char c=_getch(); while(c!='p') c=_getch(); SetPos(61,2); cout<<" "; }
void Game::planeMove(char x) { if(x == 'a') if(position[1].X != 1) for(int i=0; i<=9; i++) position[i].X -= 2;
if(x == 's') if(position[7].Y != 23) for(int i=0; i<=9; i++) position[i].Y += 1; if(x == 'd') if(position[4].X != 47) for(int i=0; i<=9; i++) position[i].X += 2; if(x == 'w') if(position[5].Y != 3) for(int i=0; i<=9; i++) position[i].Y -= 1;
}
void Game::bulletMove() { for(int i=0; i<10; i++) { if( bullet[i].Y != 30) { bullet[i].Y -= 1; if( bullet[i].Y == 1 ) { COORD pos={bullet[i].X, bullet[i].Y+1}; drawThisBulletToNull( pos ); bullet[i].Y=30; }
} }
}
void Game::enemyMove() { for(int i=0; i<8; i++) { for(int j=0; j<2; j++) enemy[i].position[j].Y++;
if(24 == enemy[i].position[1].Y) { COORD a={1, 1}; COORD b={45, 3}; enemy[i].position[0] = random(a, b); enemy[i].position[1].X = enemy[i].position[0].X + 3; enemy[i].position[1].Y = enemy[i].position[0].Y + 2; } }
}
void Game::judgePlane() { for(int i = 0; i < 8; i++) for(int j=0; j<9; j++) if(judgeCoordInFrame(enemy[i], position[j])) { SetPos(62, 1); cout<<"坠毁"; drawFrame(enemy[i], '+', '+'); Sleep(1000); GameOver(); break; } }
void Game::drawThisBulletToNull( COORD c) { SetPos(c); cout<<" "; }
void Game::drawThisEnemyToNull( Frame f ) { drawFrame(f, ' ', ' '); }
void Game::judgeEnemy() { for(int i = 0; i < 8; i++) for(int j = 0; j < 10; j++) if( judgeCoordInFrame(enemy[i], bullet[j]) ) { score += 5; drawThisEnemyToNull( enemy[i] ); COORD a={1, 1}; COORD b={45, 3}; enemy[i].position[0] = random(a, b); enemy[i].position[1].X = enemy[i].position[0].X + 3; enemy[i].position[1].Y = enemy[i].position[0].Y + 2;
drawThisBulletToNull( bullet[j] ); bullet[j].Y = 30; } }void Game::Shoot() { for(int i=0; i<10; i++) if(bullet[i].Y == 30) { bullet[i].X = position[5].X; bullet[i].Y = position[5].Y-1; break; } }
void Game::printScore() { if(score == 120 && flag_rank == 0) { rank -= 3; flag_rank = 1; }
else if( score == 360 && flag_rank == 1) { rank -= 5; flag_rank = 2; } else if( score == 480 && flag_rank == 2) { rank -= 5; flag_rank = 3; } int x=rank/5; SetPos(60, 6); cout<<score; if( rank!=rankf ) { SetPos(60, 7); if( x == 5) title="初级飞行员"; else if( x == 4) title="中级飞行员"; else if( x == 3) title="高级飞行员"; else if( x == 2 ) title="王牌飞行员"; cout<<title; } rankf = rank;
}
void Game::Playing() { //HANDLE MFUN; //MFUN= CreateThread(NULL, 0, MusicFun, NULL, 0, NULL);
drawEnemy(); drawPlane(); int flag_bullet = 0; int flag_enemy = 0; while(1) { Sleep(8); if(_kbhit()) { char x = _getch(); if ('a' == x || 's' == x || 'd' == x || 'w' == x) { drawPlaneToNull(); planeMove(x); drawPlane(); judgePlane(); } else if ('p' == x) Pause(); else if( 'k' == x) Shoot(); else if( 'e' == x) { //CloseHandle(MFUN); GameOver(); break; } } /* 处理子弹 */ if( 0 == flag_bullet ) { bulletMove(); drawBulletToNull(); drawBullet(); judgeEnemy(); } flag_bullet++; if( 5 == flag_bullet ) flag_bullet = 0; /* 处理敌人 */ if( 0 == flag_enemy ) { drawEnemyToNull(); enemyMove(); drawEnemy(); judgePlane(); } flag_enemy++; if( flag_enemy >= rank ) flag_enemy = 0; /* 输出得分 */ printScore(); }
}
void Game::GameOver() { system("cls");
COORD p1={28,9}; COORD p2={53,15}; drawFrame(p1, p2, '=', '|'); SetPos(36,12); string str="Game Over!"; for(int i=0; i<str.size(); i++) { Sleep(80); cout<<str[i]; } Sleep(1000); system("cls"); drawFrame(p1, p2, '=', '|'); SetPos(31, 11); cout<<"击落敌机:"<<score/5<<" 架"; SetPos(31, 12); cout<<"得 分:"<<score; SetPos(31, 13); cout<<"获得称号:"<<title; SetPos(30, 16); Sleep(1000); cout<<"继续? 是(y)| 否(n)制作:最牛的LJF"; as: char x=_getch(); if (x == 'n') exit(0); else if (x == 'y') { system("cls"); Game game; int a = drawMenu(); if(a == 2) game.rank = 20; system("cls"); drawPlaying(); game.Playing(); } else goto as; }/================== the main function ==================/ int main() { //游戏准备 srand((int)time(0)); //随机种子 HideCursor(); //隐藏光标
Game game; int a = drawMenu(); if(a == 2) game.rank = 20; system("cls"); drawPlaying(); game.Playing();
}
///
#include<stdio.h> #include #include<time.h> //suiji #include<windows.h> //SLEEP函数 struct Player //玩家结构体,并初始化player { char name[21]; int attack; int defense; int health; long int max_health; int level; int exp; int range_exp; long int max_exp; } player= {"勇者",50,40,100,100,1,0,0,100}; struct Enemy //怪的结构体,并初始化各种怪 { char name[20]; char wupin[12]; int attack; int defense; int health; int money; long int exp; int wupin_sign; int wupinpro; int double_attack; int miss; } strongman= {"森林巨人","黄金圣衣",40,50,350,200,100,1,2,1,0}, witch= {"森林女巫","银甲",25,15,100,50,50,2,2,1,1}, xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,3,2,2}, big_strongman= {"森林巨人王","巨人晶石",405,505,2005,2005,1005,4,4,2,0}, lion= {"草原雄狮","绝世好剑",60,30,280,200,100,5,2,1,0}, horse= {"草原野马","碧血剑",28,12,90,50,50,6,2,1,1}, bee= {"草原黄蜂","长剑",17,11,60,30,35,7,3,2,2}, shitu= {"使徒","\0",608,308,2808,2008,1008,9,1,1,0}, guai= {"\0","\0",0,0,0,0,0,0,0,0,0}; struct Place { int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3; } place= {1,2,3,4,5,6,7,8};
int max_exp=0; int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=9; int cao=3,jijiubao=2,baiyao=2,superbaiyao=1,boom=3,dubiao=2,atom_boom=1; int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0; int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0; int jingyancao=0,jingyanbao=0,jingyanshi=0; char gongname[20]="无",fangname[20]="无"; char proof;
void AddWupin(int); int AttackResult(); void BattleAct(); void ChooseWupin(); void DisplayState(); void OrdinaryAct(); int SuiJi(); int SuiJi100(); void WhetherLevelUp(); void SlowDisplay(char *);
int main() {
int i=0,j=0,k=0; char player_name[21]; Sleep(1000); printf("--------------------------欢迎来到 [苍穹世界] 2.2 测试版-----------------------\n\n\n"); //如果想使用外挂,名字请输入:“圣战斗士 ”。 Sleep(1000); printf("这里是苍穹世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n"); scanf("%s",player_name); strncpy(player.name,player_name,20); if(strcmp(player.name,"圣战斗士")==0) { printf("\n\n\n封印多年的圣剑血统啊!你终于觉醒了!\n\n\n圣战斗士,你成为了天选之人,请你救出公主吧!\n\n\n"); player.attack=999; player.defense=999; player.health=9999; player.max_health=9999; } getchar();
OrdinaryAct(); return 0; }
int SuiJi() { srand((unsigned)time(NULL)); return rand()%10; }
int SuiJi100() { srand((unsigned)time(NULL)); return rand()%100; }
void ChooseWupin() //选择物品 并使用 { printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨人晶石%d个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm); switch(scanf("%d",&choose_number),choose_number) { case 1: if(cao>0) { printf("使用止血草,HP增加60\n\n\n"); cao--; if(player.health+60>player.max_health)player.health=player.max_health; else player.health+=60; } else printf("没有止血草了\n\n\n"); break; case 2: if(jijiubao>0) { printf("使用急救包,HP增加80\n\n\n"); jijiubao--; if(player.health+80>player.max_health)player.health=player.max_health; else player.health+=80; } else printf("没有急救包了\n\n\n"); break; case 3: if(baiyao>0) { printf("使用云南白药,HP增加120\nz\n\n"); baiyao--; if(player.health+120>player.max_health)player.health=player.max_health; else player.health+=120; } else printf("没有云南白药了\n\n\n"); break; case 4: if(superbaiyao>0) { printf("使用超级云南白药,HP增加200\n\n\n"); superbaiyao--; if(player.health+200>player.max_health)player.health=player.max_health; else player.health+=200; } else printf("没有超级云南白药了\n\n\n"); break; case 5: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(boom>0) { printf("使用手雷,敌人HP减少100\n\n\n"); boom--; guai.health-=100; AttackResult(); } } else printf("非战斗状态,不能使用手雷!\n\n\n"); break; case 6: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(dubiao>0) { printf("使用毒标,敌人HP减少200\n\n\n"); dubiao--; guai.health-=200; AttackResult(); } } else printf("非战斗状态,不能使用毒标!\n\n\n"); break; case 7: if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品 { if(atom_boom>0) { printf("使用手抛式原子弹,敌人HP减少666666666\n\n\n"); atom_boom--; guai.health-=666666666; AttackResult(); } } else printf("非战斗状态,不能使用手抛式原子弹!\n\n\n"); break; case 8: if(jingyancao>0 && player.level<1000) {
printf("使用经验草,等级增加10级\n\n\n"); jingyancao--; player.level+=10; printf("等级:%d\n",player.level); } else if(jingyancao<1) { printf("没有经验草了\n\n\n"); } else printf("等级超过45级,修为太高,无法使用。\n\n\n"); break; case 9: if(jingyanbao>0 && player.level<1000) { if(player.level>44&&player.level<1000) { int sheng; sheng=45-player.level; player.level+=sheng; printf("使用经验包,等级增加%d级",sheng); printf("等级:%d\n",player.level); } else {
printf("使用经验包,等级增加2级\n\n\n"); jingyanbao--; player.level+=2; printf("等级:%d\n",player.level); } } else if(jingyanbao<1) { printf("没有经验包了"); } else printf("等级超过45级,修为太高,无法使用。\n\n\n"); break; case 10: if(jingyanshi>0 && player.level<1000) { if(player.level>42&&player.level<1000) { int sheng; sheng=45-player.level; player.level+=sheng; printf("使用经验石,等级增加%d级\n",sheng); printf("等级:%d\n",player.level); } else { printf("使用经验石,等级增加10级\n"); jingyanshi--; player.level+=10; } } else if(jingyanshi<1) { printf("没有经验石了\n\n\n"); } else printf("等级超过45级,修为太高,无法使用。\n\n\n"); break; case 11: if(strongman_arm>0 && player.level<10000) { if(player.level>29&&player.level<10000) { int sheng; sheng=45-player.level; player.level+=sheng; printf("使用巨人晶石,等级增加%d级",sheng); printf("等级:%d\n",player.level); } else { printf("使用巨人晶石,等级增加16级\n\n\n"); strongman_arm--; player.level+=16; printf("等级:%d\n",player.level); } } else if(strongman_arm<1) { printf("没有巨人晶石了。\n\n\n"); } else printf("等级超过45级,修为太高,无法使用。\n\n\n"); break; case 0: break; default: printf("ChooseWupin error!\n\n\n"); } }
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级 { if(guai.health<=0) { battle=0; printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp); player.exp+=guai.exp; player.range_exp+=guai.exp; money+=guai.money; s=SuiJi(); if(s<guai.wupinpro) { printf("从敌人尸骸中发现"); printf("%s\n\n\n",guai.wupin); AddWupin(guai.wupin_sign); } WhetherLevelUp(); if(strcmp(guai.name,"使徒")==0) { printf("战斗胜利,救出公主!!!"); getchar(); getchar(); exit(0); } return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为 } else { int s=SuiJi();
if((guai.attack+s-player.defense/3)<0) { player.health-=1; printf("%s反击,你的HP减少了 1\n\n",guai.name); } else { player.health-=guai.attack+s-player.defense/3; printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-player.defense/3); } if(player.health<0) { battle=0; printf("%s战死!金币掉落%d\n\n\n",player.name,player.level500); money-=player.level500; player.health=player.max_health/5; OrdinaryAct();// return 1; } } return 0; } void AddWupin(int wupin_sign) {
switch(wupin_sign) { case 1: fang4n++; break; case 2: fang3n++; break; case 3: fang2n++; break; case 4: strongman_arm=1; break; case 5: gong4n++; break; case 6: gong3n++; break; case 7: gong2n++; break; default: printf("AddWupin error\n\n\n"); }
} void WhetherLevelUp() { int i=0,j=0; int l1=player.range_exp/100; int l2=player.range_exp/300; int l3=player.range_exp/600; if(player.level<=15&&l1>0) //15级以下,经验足够 都满足则升级 { if(l11) { printf("%s",player.name); printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=100; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3l1,2l1,20l1); player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100; player.attack+=3l1; player.defense+=2l1; player.max_health+=20l1; player.health=player.max_health; player.level+=l1; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=100*l1; } } else if(player.level<=40&&l2>0) { if(l21) { printf("%s",player.name); printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=300; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3l2,2l2,20l2); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3l2; player.defense+=2l2; player.max_health+=20l2; player.health=player.max_health; player.level+=l2; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=300l2; } } else if(l3>0) { if(l3==1) { printf("%s",player.name); printf(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n"); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3; player.defense+=2; player.max_health+=20; player.health=player.max_health; player.level++; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=600; } else { printf("好厉害!连升%d级!",l1); printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3l3,2l3,20l3); player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100; player.attack+=3l3; player.defense+=2l3; player.max_health+=20l3; player.health=player.max_health; player.level+=l3; player.range_exp=0; player.exp=player.max_exp; player.max_exp+=600l3; } } } void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏) {
while(1) { // (1000); // system("cls"); puts("="); printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 0,退出游戏\n\n\n"); puts("="); switch(scanf("%d",&choose_number),choose_number) { case 1: //显示移动菜单 printf("要去哪里?\n\n\n"); printf("1,happy酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: place_sign=place.bar; //记录目前位置-酒吧 // OrdinaryAct(); break; case 2: place_sign=place.hotel; //进入旅店 printf("金币:%d",money); printf("要开房吗? 200个金币 1,是 0,否\n\n\n"); choose_number=1; switch(scanf("%d",&choose_number),choose_number) { case 1: if(money-200<0) //判断钱是否够 { printf("Sorry,你的钱不够~\n\n\n"); printf("金币:%d",money); } else { printf("好好休息\nHP满\n第二天了\n\n"); printf("金币:%d\n",money); money-=200; //花费200住店费 player.health=player.max_health; //体力满 } break; case 0: printf("下次再来!\n\n\n"); break; default: printf("hotel talk error!\n\n\n"); } place_sign=0; break; case 3: int yongju,gong,fang; printf("请问您要购买什么类型的物品?\n\n\n 1,攻击装备 2,防御装备 3,一次性伤害武器\n\n\n"); scanf("%d",&yongju); switch(yongju) { case 1: printf("请问您要购买什么武器?\n\n\n 1,匕首¥300 2,长剑¥500 3,碧血剑¥1000\n\n\n"); scanf("%d",&gong); switch(gong) { case 1: if(money>=300) { gong1n++; money=money-300; printf ("匕首+1\n"); printf("匕首:%d个\n",gong1n); printf("金币:%d\n",money); break; } else { printf("钱不够!\n"); printf("金币:%d\n",money); break; } case 2: if(money>=500) { gong2n++; money=money-500; printf ("长剑+1\n"); printf("长剑:%d个\n",gong2n); printf("金币:%d\n",money); break; } else { printf("钱不够!\n"); printf("金币:%d\n",money); break; } case 3: if(money>=1000) { gong3n++; money=money-1000; printf ("碧血剑+1\n"); printf("碧血剑:%d个\n",gong3n); printf("金币:%d\n",money); break; } else { printf("钱不够!\n"); printf("金币:%d\n",money); break; } default: printf("对不起,我们只会打造以上武器。"); break;
} break; case 2: int fang; printf("请问您要购买什么防具?\n\n\n 1,布衣¥300 2,铁甲¥500 3,银甲¥1000\n\n\n"); scanf("%d",&fang); switch(fang) { case 1: if(money>=300) { fang1n++; money=money-300; printf ("布衣+1\n"); printf("布衣:%d个\n",fang1n); printf("金币:%d\n",money); } else { printf("钱不够!\n"); printf("金币:%d\n",money); }
break; case 2: if(money>=500) { fang2n++; money=money-500; printf ("铁甲+1\n"); printf("铁甲:%d个\n",fang2n); printf("金币:%d\n",money); } else { printf("钱不够!\n"); printf("金币:%d",money); } break; case 3: if(money>=1000) { fang3n++; money=money-1000; printf ("银甲+1\n"); printf("银甲:%d个\n",fang3n); printf("金币:%d\n",money); } else { printf("钱不够!\n"); printf("金币:%d\n",money); } default: printf("对不起,我们只会打造以上防具。"); break;
} printf("金币:%d\n",money); break; case 3: printf("请问您要购买什么一次性伤害武器?\n 1,手雷 2,毒镖 3,手抛式原子弹\n\n\n"); int yi; scanf("%d",&yi); switch(yi) { case 1: if(money>=300 && boom<5) { boom++; money=money-300; printf("手雷+1\n"); printf("手雷:%d\n",boom); printf("金币:%d\n",money); } else { printf("钱不够!\n"); printf("金币:%d",money); } break; case 2: if(money>=600 && dubiao<4) { dubiao++; money=money-600; printf("毒镖+1\n"); printf("毒镖:%d\n",dubiao); printf("金币:%d\n",money); } else { printf("钱不够!\n"); printf("金币:%d\n",money); } break; case 3: if(money>=0 && atom_boom<23333333333) { atom_boom=atom_boom+233; money=money+1500; printf("手抛式原子弹+2\n"); printf("手抛式原子弹:%d\n",atom_boom); printf("金币:%d\n",money); } else { printf("钱不够!\n\n\n"); printf("金币:%d\n",money); }
break; } } break; case 4: printf ("欢迎您光临本拍卖行,请问您要卖什么东西?\n\n"); printf("攻击装备: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n",gong1n,gong2n,gong3n,gong4n); printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\n9,巨人晶石:%d个 0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n,strongman_arm); int pai,shu,i; scanf("%d",&pai); switch(pai) { case 1: printf("请问您要出售几件?"); scanf("%d",&shu); if(gong1n>=shu) { gong1n=gong1n-shu; money=money+shu240; printf("匕首:%d\n",gong1n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } break; case 2: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(gong2n>=shu) { gong2n=gong2n-shu; money=money+shu400; printf("长剑:%d\n",gong2n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 3: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(gong3n>=shu) { gong3n=gong3n-shu; money=money+shu800; printf("碧血剑:%d\n",gong3n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 4: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(gong4n>=shu) { gong4n=gong4n-shu; money=money+shu1500; printf("绝世好剑:%d\n",gong4n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 5: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(fang1n>=shu) { fang1n=fang1n-shu; money=money+shu240; printf("布衣:%d\n",fang1n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 6: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(fang2n>=shu) { fang2n=fang2n-shu; money=money+shu500; printf("铁甲:%d\n",fang2n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 7: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(fang3n>=shu) { fang3n=fang3n-shu; money=money+shu800; printf("银甲:%d\n",fang3n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } break; case 8: printf("请问您要出售几件?\n"); scanf("%d",&shu); if(fang1n>=shu) { fang4n=fang4n-shu; money=money+shu1500; printf("黄金圣衣:%d\n",fang4n); printf("金币:%d\n",money); break; } else { printf("装备数不够,无法出售!\n"); break; } case 9: printf("请问您要出售几颗?"); scanf("%d",&shu); if(strongman_arm>=shu) { strongman_arm=strongman_arm-shu; money=money+shu*2000; printf("巨人晶石:%d\n",strongman_arm); printf("金币:%d\n",money); } else { printf("晶石数不够,无法出售!\n"); break; } break; case 0: break; break; default: printf("没有该装备,无法出售!\n"); break; }
break; case 5: int yewai; while(1) { puts("="); printf("要去哪冒险呢?"); printf("\n\n 1,神秘沼泽 危险程度:★\n\n 2,星耀草原 危险程度:★\n\n 3,诡异森林 危险程度:★★★\n\n 4,荒漠矿场 危险程度:★★★\n\n 5,炽热炎洞 危险程度:★★★★\n\n 6,花朵宫殿 危险程度:★★★★★\n\n 0,离开\n"); puts("="); scanf("%d",&yewai); switch(yewai) { case 1: place_sign=place.forest1; s=SuiJi(); if(s<7) { battle=1; guai=xiyi; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=witch; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { printf("这里安全\n\n\n"); //不用调用OAct函数,会自动执行OAct函数; } break; case 3: place_sign=place.forest2; s=SuiJi(); if(s<7) { battle=1; guai=witch; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { printf("这里安全\n\n\n"); } break; case 5: place_sign=place.forest3; s=SuiJi(); if(s<7) { battle=1; guai=strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=big_strongman; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { printf("这里安全\n\n\n"); } break; case 2: place_sign=place.grass1; s=SuiJi(); if(s<7) { battle=1; guai=bee; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=horse; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { printf("这里安全\n\n\n"); } break; case 4: place_sign=place.grass2; s=SuiJi(); if(s<7) { battle=1; guai=horse; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; guai=lion; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else { printf("这里安全\n\n\n"); } break; case 6: place_sign=place.grass3; s=SuiJi(); if(s<7) { battle=1; guai=lion; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else if(s<9) { battle=1; if(strongman_arm) { printf("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人晶石我要了,公主你也别想带走!\n\n\n"); guai=shitu; printf("%s扑了过来!\n\n\n",guai.name); BattleAct(); } else printf("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨人晶石,我可以告诉你公主的下落哦~\n\n\n"); } else { printf("这里安全\n\n\n"); } break; if(yewai!=0) { printf("该区域为未知区域,无法进入。\n\n\n"); break; } } if(yewai==0) { break; printf("已离开荒野。"); } }
} break;
case 2: ChooseWupin(); break; //显示道具,并可以使用. case 3: //对话选项 if(place_signplace.bar) { printf("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人\n\n\n"); //显示对话人物 switch(scanf("%d",&choose_number),choose_number) { case 1: printf("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n"); break; case 2: if(fang1n<1&&gong1n<1) { printf("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n"); printf("%s心想:哇,这位大叔人真好啊!\n\n\n)",player.name); gong1n++; fang1n++; } else printf("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面世界所吓倒!\n\n\n"); break; case 3: printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,XO酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n"); choose_number=1; while(choose_number) { switch(scanf("%d",&choose_number),choose_number) { case 1: if(money<25) { printf("钱不够!"); } else { if(player.health+20<=player.max_health) { printf("HP+20."); money-=25; player.health+=20; } else { printf("HP满了"); player.health=player.max_health; } } break; case 2: if(money<80) { printf("钱不够!"); } else { if(player.health+50<=player.max_health) { printf("HP+50."); money-=80; player.health+=50; } else { printf("HP满了"); player.health=player.max_health; } } break; case 3: if(money<150) { printf("钱不够!"); } else { if(player.health+100<=player.max_health) { printf("HP+100."); money-=150; player.health+=100; } else { printf("HP满了"); player.health=player.max_health; } } break; case 0: printf("下次再来!\n"); break; default: printf("输入错误\n\n\n"); break; } break; } break; case 4: printf("你要干什么?\n\n\n 1,买东西 2,聊天 \n\n\n"); int mai; scanf("%d",&mai); if(mai1) { printf("买点什么呢?\n1,止血草¥100 HP+60\n2,急救包¥150 HP+80 \n3,云南白药¥250 HP+120\n4,超级云南白药¥400 HP+200 \n5,经验草¥150 经验+300 \n6,经验包¥600 经验+600\n7,经验石¥500 经验+1000 \n0,拜拜\n"); int dongxi; scanf("%d",&dongxi); switch(dongxi) { case 1: if(money>=100&&cao<6) { cao++; money=money-100; printf ("止血草+1\n"); } else { printf("钱不够!\n"); } break; case 2: if(money>=150&&jijiubao<5) { jijiubao++; money=money-150; printf ("急救包+1\n"); } else { printf("钱不够!\n"); } break; case 3: if(money>=250&&baiyao<4) { baiyao++; money=money-250; printf ("云南白药+1\n"); } else { printf("钱不够!\n"); } break; case 4: if(money>=400&&superbaiyao<3) { superbaiyao++; money=money-400; printf ("超级云南白药+1\n");
} else { printf("钱不够!\n"); } break; case 5: if(money>=150) { jingyancao++; money=money-150; printf ("经验草+1\n"); } else { printf("钱不够!\n"); } break; case 6: if(money>=300) { jingyanbao++; money=money-300; printf ("经验包+1\n"); } else { printf("钱不够!\n"); } break; case 7: if(money>=500) { jingyanshi++; money=money+500; printf ("经验石+1\n"); } else { printf("钱不够!\n"); } break; } case 0: printf("金币:%d\n",money); printf("再见,欢迎下次再来!\n"); break;
} if(mai2) { printf("药品商人:去去去,老子没时间陪你聊。\n"); } } } else if(place_signplace.hotel) printf("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n"); else printf("这里好像没人可以聊天\n\n\n"); break; case 4: DisplayState(); break; //显示状态 case 5: //装备 printf("攻击装备: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个\n\n\n",gong1n,gong2n,gong3n,gong4n); printf("防御装备: 5,布衣:%d个 6,铁甲:%d个 7,银甲:%d个 8,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n); printf("选择要装备的武器或防具:\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: if(gong1n>=1) { printf("拿起了匕首\n\n\n"); gong=gong1; strcpy(gongname,"匕首"); } else printf("你没有匕首可以装备\n\n\n"); break; case 2: if(gong2n>=1) { printf("拿起了长剑\n\n\n"); gong=gong2; strcpy(gongname,"长剑"); } else printf("你没有长剑可以装备\n\n\n"); break; case 3: if(gong3n>=1) { printf("拿起了碧血剑\n\n\n"); gong=gong3; strcpy(gongname,"碧血剑"); } else printf("你没有碧血剑可以装备\n\n\n"); break; case 4: if(gong4n>=1) { printf("拿起了绝世好剑\n\n\n"); gong=gong4; strcpy(gongname,"绝世好剑"); } else printf("你没有绝世好剑可以装备\n\n\n"); break; case 5: if(fang1n>=1) { printf("穿上了布衣\n\n\n"); fang=fang1; strcpy(fangname,"布衣"); } else printf("你没有布衣可以装备\n\n\n"); break; case 6: if(fang2>=1) { printf("穿上了铁甲\n\n\n"); fang=fang2; strcpy(fangname,"铁甲"); } else printf("你没有铁甲可以装备\n\n\n"); break; case 7: if(fang3n>=1) { printf("穿上了银甲\n\n\n"); fang=fang3; strcpy(fangname,"银甲"); } else printf("你没有银甲可以装备\n\n\n"); break; case 8: if(fang4n>=1) { printf("穿上了黄金圣衣\n\n\n"); fang=fang4; strcpy(fangname,"黄金圣衣"); } else printf("你没有黄金圣衣可以装备\n\n\n"); break; case 0: printf("未更换装备\n\n\n"); break; default: printf("change error!"); } break; case 6: printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,本团队时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“圣战斗士 ”(不包括双引号)。由于2.0版本的buy,我们在2.0的基础上进行修改,已修复该buy。并且新增了经验草等有助于升级的道具,希望大家喜欢。在这里要感谢离陌同学,他给了我们许多宝贵的建议,谢谢。\n"); break; case 0: printf("确定退出游戏?(Y/N)\n\n\n"); getchar(); proof=getchar(); if(proof=='y'||proof=='Y') { printf("数据存储中..."); //向文件中更新数据; getchar(); printf("按回车退出"); getchar(); return; } else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n"); else printf("继续!\n\n\n"); break; default: printf("输入错误!\n\n\n"); } } } void DisplayState() { printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health); printf("武器: %s 防具: %s \n\n\n",gongname,fangname); printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money); } void BattleAct() { while(1) { puts("============================================================================="); printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n"); switch(scanf("%d",&choose_number),choose_number) { case 1: s=SuiJi(); printf("%s攻击! %sHP减少%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3); guai.health-=player.attack+s+gong-guai.defense/3; if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数 else continue; case 2: ChooseWupin(); break; //选择物品,可以使用,战斗中允许使用攻击性物品 case 3: DisplayState(); break; //显示状态 case 4: s=SuiJi(); if(s<4) //40%的概率可以逃跑 { printf("%s逃跑了~\n\n\n",player.name); battle=0; return; } else printf("%s逃跑失败!\n\n\n",player.name); break; default: printf("输入错误,重新输入!\n\n\n"); } } } void printf(char *p) { while(1) { if(*p!=0) printf("%c",*p++); else break; Sleep(100); } }
gfd
g
//BFS #include<bits/stdc++.h> using namespace std; int n,m; //迷宫大小 char arr[101][101]; //迷宫数组 bool flag[101][101]; //标记数组是否走过 int step[101][101]; //走到这的步数 int tx[4]={-1,1,0,0}; //四个方向上x值的变化 int ty[4]={0,0,1,-1}; //四个方向上y值的变化 struct pos{ //用结构体记录x值y值 int x,y; //位置坐标 }begin,end; //起点和终点 void bfs(){ //广度优先搜索函数 queue q; //队列记录每个位置的坐标 q.push(begin); //加入起点位置 step[begin.x][begin.y]=0; //第一步为0 while(!q.empty()){ //队列非空时继续搜素 pos temp=front(); //访问当前位置 for(int i=0;i<=3;i++){ //搜四个方向 int nx=temp.x+tx[i]; //temp的x值 int ny=temp.y+ty[i]; //temp的y值 if(arr[nx][ny]'.'&&flag[nx][ny]0){ //有路且可以走 if(nx>=1&&nx<=n&&ny>=1&&ny<=m){ //位置在不在迷宫里 flag[nx][ny]=1; //位置已近访问 pos newpos; //新的位置 newpos.x=nx; //新的位置的x newpos.y=ny; //新的位置的y q.push(newpos); //加入新的位置 step[nx][ny]=step[temp.x][temp.y]+1;//记录步数 if(nxend.x&&nyend.y){ cout<<step[nx][ny]<<endl; return; } } } } q.pop(); //删除队首或当前位置 } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>arr[i][j]; if(arr[i][j]'S'){ //起点位置 begin.x=i; begin.y=j; } if(arr[i][j]'T'){ //终点位置 end.x=i; end.y=j; } } } bfs(); return 0; }
-
通过的题目
-
最近活动
题目标签
- 初窥门径
- 65
- 略有小成
- 40
- 分支结构
- 25
- 顺序结构
- 24
- 字符串
- 21
- 循环结构
- 20
- 一维数组
- 14
- 循环嵌套
- 12
- 一本通编程启蒙
- 11
- 驾轻就熟
- 10
- 二维数组
- 9
- GESP一级
- 6
- GESP
- 5
- 其他
- 4
- 模拟
- 4
- 位运算
- 3
- while循环
- 3
- 结构体
- 3
- 202309
- 2
- 排序
- 2