%告知你胜利的方式% 如果vism的第0项vmp或者vism为空,那么开门,并头删 %开始前画"#"以用来告知人们地牢的变化% %如果玩家踏进新的地牢(具体位置:&strmap[9][1])(!b),b设为真,并重置怪物生成和地牢生成(vism无时BOSS战(+))% %如果进门,那么重置地牢('*' --> ' '),并把b设为假% %玩弹怪依次动% %地牢的生成% %下一地牢初始化% %玩动% %怪物死% %怪物动% 把怪物"o"转换成其他怪物 %如果该地只有一个怪物,那么设怪物所在的位置为空格% %删除怪物% %**会变**% 是 是 是 是 是 否 否 是 是 是 否 否 是 否(break) 是 是 否 是 是 否 是 是 是 否 否 是 是 break 是 是 是 是 是 break 是 是 是 否 是 是 break 是 是 是 是(break) 是 是 是 是 是 否 是 是 是(break) 是 是 否 是 是 否 是 否(清屏) 是 是 是 是 否 是 是 等待0.1秒并清屏 否 等待0.1秒并清屏 是 是 否 是 否 是 break 否 是 break 否 是 是 是 否 否(break) 否 是 是 是 否 否 是 否(break) 否 是 是 是 否(break) 否 是 是 否(break) 否 是 是 否(break) 否 是 break 否 是 是 是 是 否 否 是 是 否 是 是 是 否 否 是 是 是 是 否 否 break 否(break) 否 是 break 否 是 break 否 是 break 否(break) 否 是 break 否 是 break 否 是 break 否(break) 否 是 break 否 是 break 否 是 break 否(break) 否 是 break 否 是 break 否 是 是(清屏) 等待0.01秒 否 是 等待0.1秒 否 break 否 否 否 否 是 清屏 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否(等待0.1秒并清屏) 否 是 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 否 0 == (!bb) * (d + 1)? 输出"很遗憾,你输了\n" 1 == (!bb) * (d + 1) || 2 == (!bb) * (d + 1)? 输出"恭喜你,你赢了\n" 3 == (!bb) * (d + 1) 输出"@------------------@\n" 输出"| |\n" 输出"| 恭喜你,你赢了 |\n" 输出"| |\n" 输出"@------------------@\n" 4 == (!bb) * (d + 1) 设i为0 i < 15? 执行win函数,参数有整型i i自增1 设i为0 i < 27? 把字符串tempstr跟二维字符数组tempstra的第i模上9的结果项的值给连接起来 执行系统命令,命令为字符串tempstr 设字符串tempstr的第7项为0 i自增1 把背景色设为黑色,前景色设为淡绿色 (vism.empty() || vism.front().vmp.empty()) && '*' == strmap[9][10]? 设二维字符数组strmap第9行第10列的元素为空格 删除装着结构体isv的vector容器vism的第0项 vism.size()? 定义用于装draw结构体的vector容器的迭代器it为装draw结构体的vector容器的数组vmd的第5减装结构体isv的vector容器vism的大小的结果项的起始迭代器 &strmap[9][0] == cp && vmd[5 - vism.size()].back().iwalk + 1? 定义字符指针drawcp为二维字符数组strmap第迭代器it指向的成员函数ix行第迭代器it指向的成员函数iy列的元素地址 it->iwalk + 1? 把解引用的drawcp设为字符"#" 把drawcp向右移动1加上10乘迭代器it指向的成员函数brd的结果位 it指向的成员函数iwalk自减1 把迭代器it给向右移动一位 !b && (&strmap[9][1] == cp || &strmap[8][1] == cp)? 设b为1 设二维字符数组strmap第9行第0里的元素为字符"*" 设i为1 i < 10? 设ch为1 ch < 10? '#' == strmap[i][ch]? 设二维字符数组strmap第ch行第i列的元素为空格 ch自增1 i自增1 把二维字符数组strmap的内容全都拷贝到二维字符数组strmapr的里面去 设二维字符数组strmapr的第9行第1列的元素为空格 设ch为0 vism.front().vmp[ch] != vism.front().vmp.back()? 'X' == vism.front().vmp[ch]->getm()? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项强转成new出来的怪物MX指向的exset方法,参数有二维字符数组strmap ch自增1 'X' == vism.front().vmp[ch]->getm()? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项强转成new出来的怪物MX指向的exset方法,参数有二维字符数组strmap 设ch为0 vism.front().vmp.size() != ch? 把解引用的装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项指向的方法getcp设为装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项指向的方法getm返回的字符 ch自增1 0 == vism.front().id? 设ch为3 ch < 8? 设i为3 i < 8? 设二维字符数组strmap第ch行第i列的元素为字符"*" i自增1 ch自增1 把有10个整型的数组arr初始化为1, 2, 5, 2, 7, 1, 1, 8, 6和7 设i为0 i < 10? 如果i不等于8,那么把二维字符数组strmap第arr的第i项的值行第arr的i加1项的值列的元素设为字符"*",否则先把二维字符数组strmap第7行第7列的元素设为空格,再把二维字符数组strmap第arr的第i项的值行第arr的i加1项的值列的元素也设为空格 i自增2 1 == vism.front().id? 把二维字符数组strmap第2行第8列的元素设为字符"*" 2 == vism.front().id? 把二维字符数组strmap第4行第6列的元素设为字符"*" 把二维字符数组strmap第7行第7列的元素设为字符"*" 3 == vism.front().id? 把有6个字符指针的数组cparr初始化为&strmap[2][4], &strmap[4][1], &strmap[4][7], &strmap[8][1], &strmap[8][7]和&strmap[6][4] 设ch为0 ch < 3? 设i为0 i < 6? ch自增1 4 == vism.front().id? 设i为2 i < 9? 设ch为2 ch < 9? 把二维字符数组strmap第i行第ch列的元素设为字符"*" ch自增2 i自增2 把有12个整型的数组arr初始化为8, 5, 6, 3, 6, 7, 4, 5, 8, 9, 4和1 设i为0 i < 12? 把二维字符数组strmap第整型数组arr的第i项的值行第整型数组arr的第i加1列的元素设为字符"*" i自增2 6 == vism.front().id? 把有5个整型的数组temparr初始化为8,5,2,4和9%8,5 5,2 2,4 4,9% ch < 4? 把二维字符数组strmap第2行第ch列的元素设为字符"*" 把二维字符数组strmap第5行第ch加3列的元素设为字符"*" 把二维字符数组strmap第8行第ch加6列的元素设为字符"*" ch自增1 8 == vism.front().id? 设ch为2 ch < 5? 把二维字符数组strmap第7行第ch列的元素设为字符"*" 把二维字符数组strmap第7行第ch加4列的元素设为字符"*" 把二维字符数组strmap第4行第ch加1列的元素设为字符"*" ch自增1 把二维字符数组strmap第4行第5列的元素设为字符"*" 把二维字符数组strmap第7行第5列的元素设为字符"*" 10 == vism.front().id? 设i为1 i < 10? 设ch为1 ch < 10? '#' == strmap[i][ch]? 设二维字符数组strmap第i行第ch列的元素为空格 ch自增1 i自增1 设i为2 i <= 8? 设ch为4 ch < 7? 设二维字符数组strmap第i行第ch列的元素为字符"+" 设二维字符数组strmap第ch行第i列的元素为字符"+" ch自增1 设ch为2 ch <= 8? '+' != strmap[i][ch]? 设二维字符数组strmap第i行第ch列的元素为字符"-" '+' != strmap[ch][i]? 设二维字符数组strmap第ch行第i列的元素为字符"-" ch自增1 i自增6 设i为2 i <= 8? 设ch为2 ch <= 8? '-' != strmap[i][ch]? 设二维字符数组strmap第i行第ch列的元素为字符"*" '+' != strmap[i][ch]? ch自增1 i自增1 设二维字符数组strmap第5行第1列的元素为字符"*" 设二维字符数组strmap第5行第9列的元素为空格 7 == vism.front().id? 9 == vism.front().id? 设ch为2 ch < 9? 把二维字符数组strmap第ch行第ch列的元素设为字符"*" 把二维字符数组strmap第ch行第10减ch列的元素设为字符"*" ch < 6? 把二维字符数组strmap第整型数组temparr的第ch减2项的值行第整型数组temparr的第ch减1项的值列的元素设为字符"*" ch自增1 把解引用的字符数组cparr的第i项设为字符"*",并使字符数组cparr的第i项向右移动一位 i自增1 设二维字符数组strmap第i行第ch列的元素为空格 设ch为1 bb && 'P' == strmap[9][10]? 设b为0 定义用于装结构体trir的vector容器的迭代器it为玩家射出的子弹的起始迭代器 p.sgetxyhs()->end() != it? '*' != *it->cp? 把迭代器it给向右移动一位 设i为0 i < 10? 执行Player对象p的printmap方法,参数有二维字符数组strmap的地址,布尔值ba,整型i和整型iunmd !i? 设二维字符数组strmap第9行第0列的元素为空格 i自增1 清除玩家射出的子弹里的所有子弹 设解引用的迭代器it指向的成员变量cp设为空格 设二维字符数组strmap第9行第10列的地址为字符"*"%分界% 设二维字符数组strmap第9行第0列的地址为字符"P"%分界% 1 != vism.size()?%恢复血量% temparrb[d * 2] && temparra[d] > p.sgetxyhs(HEAL)?%恢复血量% temparrb[d * 2 + 1] && temparra[d] > p.sgetxyhs(HEAL)? Player对象p的生命值自加1%恢复血量% 设ba为0%恢复血量% 执行Player对象p的printmap方法,参数有二维字符数组strmap的地址,布尔值ba,11和整型iunmd 把有8个布尔值的数组temparrb分别初始化为1, 1, !(rand() % 2), 1, !(rand() % 4), !(rand() % 2), 0和0 设cp为二维字符数组strmap第9行第0列的地址%并把cp设为&strmap[9][0]% Player对象p的生命值自加1%恢复血量% 执行Player对象p的shootmove方法,参数有二维字符数组strmap的地址和1%子弹动% b && '*' == strmap[9][10]? 定义用于装new出来的怪物对象的vector容器的迭代器it为装结构体isv的vector容器vism的第0项的成员变量vmp的起始迭代器 !vism.front().vmp.empty() && '+' != (*vfvp)->getm()? vism.front().vmp.end() == ++vfvp? 定义用于装new出来的怪物对象的vector容器的迭代器it为装结构体isv的vector容器vism的第0项的成员变量vmp的起始迭代器 vism.front().vmp.end() != it? 执行解引用迭代器it指向的hunt方法,无参 执行解引用迭代器it指向的mosterdo方法,无参 执行解引用迭代器it指向的hunt方法,无参 把迭代器it给向右移动一位 定义用于装结构体trir的vector容器的迭代器it为玩家射出的子弹的起始迭代器 p.sgetxyhs()->end() != it -2 >= it->iy? 迭代器it指向的成员变量iy自增1 把迭代器it给向右移动一位 把装结构体isv的vector容器vism的第0项的成员变量vmp里的元素都执行一遍MShow函数 1 == vism.size() && bb && (!bosswait || (bosswait--, 0))? 定义字符指针setcp为二维字符数组strmap第5行第5列的元素地址 把装new出来的怪物M_o的vector容器vo往后添加new出来的怪物M_o对象 把装结构体isv的vector容器vism的第0项的成员变量vmp往后添加装new出来的怪物M_o的vector容器vo的最后项 执行装结构体isv的vector容器vism的第0项的成员变量vmp的最后项指向的set方法,参数有玩家射出的子弹,字符指针setcp的地址和5 设bosswait为15 ' ' != strmap[9][10]? 对装结构体isv的vector容器vism的第0项的成员变量vmp里的元素用cmpm伪函数进行排序 !vism.front().vmp.empty() && vism.front().vmp.front()->getheal() < 1? -1 == vism.front().vmp.front()->getheal()? 定义整型ir为0 '*' != *vism.front().vmp.back()->getcp()? 把解引用的装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项指向的方法getcp设为装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项指向的方法getm返回的字符 'X' == vism.front().vmp.back()->getm()? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的第ch项强转成new出来的怪物MX指向的exset方法,参数有二维字符数组strmapr 'X' == vism.front().vmp.front()->getm()? 把解引用的装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法的返回值设为强转成new出来的怪物MX对象的装结构体isv的vector容器vism的第0项的成员变量vmp的第0项的盖住的块 '*' != *vism.front().vmp.front()->getcp()? 把解引用的装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法的返回值设为空格 '+' == vism.front().vmp.front()->getm()? 把装结构体isv的vector容器vism的第0项的成员变量vmp里的元素都执行一遍setMempty函数 清除装结构体isv的vector容器vism的第0项的成员变量vmp里的所有元素 设bb为0 1 == (bc ? 2 : ir = rand() % 4)?(这里的rand()是指只随机选值一次的随机值) 把装new出来的怪物对象的vector容器mpv往后添加new出来的怪物MUD对象 2 == (bc ? 2 : ir = rand() % 4)?(这里的rand()是指只随机选值一次的随机值) 把装new出来的怪物对象的vector容器mpv往后添加new出来的怪物MO对象 3 == (bc ? 2 : ir = rand() % 4)?(这里的rand()是指只随机选值一次的随机值) 把装new出来的怪物对象的vector容器mpv往后添加new出来的怪物MX对象 1 == (bc ? (bc = 0, 2) : ir)? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的最后项指向的set方法,参数有玩家射出的子弹,字符指针cpa的地址,2,空指针,空指针,空指针,0,0,随机值模上2的结果和随机值模上2的结果%怪物"^"% 2 == (bc ? (bc = 0, 2) : ir)? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的最后项指向的set方法,参数有玩家射出的子弹,字符指针cpa的地址,3,装二级字符指针和枚举WASD的map容器em的地址,空指针,空指针,整型mx和整型my%怪物"O"% 3 == (bc ? (bc = 0, 2) : ir)? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的最后项指向的set方法,参数有玩家射出的子弹,字符指针cpa的地址,5,空指针,字符指针cp的地址和二维字符数组strmap的地址%怪物"X"% 设mx为字符指针cpa与二维字符数组strmap第0行第0列的元素地址之间的元素个数除以11的结果 设my为字符指针cpa与二维字符数组strmap第0行第0列的元素地址之间的元素个数模上11的结果 把迭代器it给向右移动一位 把解引用的装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法的返回值设为空格 把cpa向右移动数组arr的第ira项的值位 bb? 删除装结构体isv的vector容器vism的第0项的成员变量vmp的第0项 定义用于装new出来的怪物对象的vector容器的迭代器it为装结构体isv的vector容器vism的第0项的成员变量vmp的起始迭代器 it != vism.front().vmp.end()? vism.front().vmp.front()->getcp() == (*it)->getcp()? '*' != *vism.front().vmp.front()->getcp() && it == vism.front().vmp.end()? 定义整型isummon为0 isummon >> ira & 1? 255 != isummon? 0 == (bc ? 2 : ir = rand() % 4)?(这里的rand()是指只随机选值一次的随机值) 把装new出来的怪物对象的vector容器mpv往后添加new出来的怪物Mand对象 把装结构体isv的vector容器vism的第0项的成员变量vmp往后添加装new出来的怪物对象的vector容器mpv的最后项 定义字符指针cpa为空指针 定义整型mx为0 定义整型my为0 把有8个元素的常量整型数组arr初始化为-12, -11, -10, -1, 1, 10, 11和12 255 != isummon && (!cpa || ' ' != *cpa || ('X' == mpv.back()->getm() && (cpa == &strmap[9][1] || '@' == *cpa || '@' == *(cpa - 1) || '@' == *(cpa + 1) || cpa == cp || '*' == *(cpa - 1) || '*' == *(cpa + 1) || 'X' == *(cpa - 1) || 'X' == *cpa || 'X' == *(cpa + 1))))? 设cpa为装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法返回的值 定义ira为随机值模上8的结果 定义整型imx为装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法返回的值与二维字符数组第0行第0列的地址之间的元素个数除以11的结果 定义整型imy为装结构体isv的vector容器vism的第0项的成员变量vmp的第0项指向的getcp方法返回的值与二维字符数组第0行第0列的地址之间的元素个数模上11的结果 把有8个布尔值的boolarr初始化为(imx || imy), !!imx, (imx || 10 != imy), !!imy, 10 != imy, (10 != imx || imy), 10 != imx, (imx || 10 != imy) boolarr[ira]? 0 == (bc ? (bc = 0, 2) : ir)? 执行装结构体isv的vector容器vism的第0项的成员变量vmp的最后项指向的set方法,参数有玩家射出的子弹,字符指针cpa的地址,3,空指针,空指针,空指针,0,0和随机值模上2的结果%怪物"&"% iunmd || ' ' == *cp || '@' == *cp? Player对象p的血量自减1 设iunmd为2 输出"\a" ishoot > 0? 'a' == ch? 执行Player对象p的left_move方法,参数有字符指针cp的地址 执行Player对象p的upOrDown方法,参数有字符指针cp的地址 ishoot自减1 'd' == ch? 执行Player对象p的right_move方法,参数有字符指针cp的地址 'w' == ch? 执行Player对象p的jump方法,参数有字符指针cp的地址 'z' == ch? 执行Player对象p的shoot方法,整型ishoot和参数有字符指针cp的地址 p.sgetxyhs(HEAL) && (bb || 'P' != strmap[9][10])? 定义怪物MO对象mo 把Player对象p的x坐标设为字符指针cp与二维字符数组strmap第0行第0列的地址之间的元素个数除以11的结果 把Player对象p的y坐标设为字符指针cp与二维字符数组strmap第0行第0列的地址之间的元素个数模上11的结果 执行怪物MO对象mo的set_s_pxy方法,参数有Player对象p的x坐标和Player对象p的y坐标 执行Player对象p的shootmove方法,参数有二维字符数组strmap的地址和0%子弹删% 执行Player对象p的printmap方法,参数有二维字符数组strmap,布尔值ba和整型iunmd%显示游戏的游玩界面% 设ba为1 把ch设为你输入的字符 清空缓冲区 '*' != *cp? 把解引用的cp设为空格 isummon自增1向左按位移动ira位的结果 iunmd || ' ' == *cp || '@' == *cp? '*' != *cp? 设ba为0%恢复血量% iunmd? iunmd自减1 把有6个字符的字符串tempstrb初始化为"C2AA7"%胜利% 设字符串str的第7项为字符串tempstrb第bb的取反值乘以d加1的结果的结果项 执行系统命令,命令为字符串str 把装new出来的怪物对象的vector容器mpv里的元素都执行一遍del函数%释放mpv和vo里new出来的怪物对象% 把装new出来的怪物M_o的vector容器vo里的元素都执行一遍delvo函数%释放mpv和vo里new出来的怪物对象% 结束 把解引用的cp设为字符"P" Player对象p的血量自减1 设iunmd为2 输出"\a" 删除装结构体isv的vector容器vism的第0项的成员变量vmp的最后项元素
继承 用于实现 <<抽象类Abstract>> moster #char** m_cpp[怪物的位置] #int m_iheal[怪物的血量数] #vector* m_v[指向玩家射出的子弹] #char* tempcp[用于在移动怪物的位置的时候防出bug] [被最外围的方框"[]"包住的为注释,")" == ")",其他同等] +[moster抽象基类的构造函数]moster() +[设置怪物的一些属性]virtual void set(vector<trir>* v = NULL, char** cpp = NULL, int iheal = 3, map<char**, WASD>* = NULL, char** = NULL, char(*)[11][11] = NULL, int = 0, int = 0, bool = 0, bool = 0) +[受伤函数]void hunt() +[获取怪物的血量数]int getheal() +[执行每种怪物要做的事]virtual void mosterdo() +[获取怪物的类型,用多态实现]virtual char getm() +[获取怪物的位置]char*& getcp() Mand -bool mblr[朝向(0< 1>)] +[设置怪物M&的一些属性]void set(vector<trir>* v = NULL, char** cpp = NULL, int iheal = 3, map<char**, WASD>* = NULL, char** = NULL, char(*)[11][11] = NULL, int = 0, int = 0, bool b = 0, bool = 0) +[构造函数]Mand() +[执行怪物M&要做的事]void mosterdo() +[获取怪物M&的类型]char getm() MUD -bool mblr[水平朝向(0< 1>)] -bool mbud[垂直朝向(0^ 1v)] +[构造函数]MUD() +[设置怪物M^的一些属性]void set(vector<trir>* v = NULL, char** cpp = NULL, int iheal = 3, map<char**, WASD>* = NULL, char** = NULL, char(*)[11][11] = NULL, int = 0, int = 0, bool b = 0, bool ba = 0) +[执行怪物M^要做的事]void mosterdo() +[获取怪物M^的类型]char getm() MO -WASD m_wasd[方向] -mapm_m[[strmap point, wasd]...] -pair m_pxy[怪物 xy坐标] -static pair s_m_pxy$[玩家 xy坐标] -int imove[追踪的时候充当定时器用,每到这个数模MOWAIT这个宏加1的结果为宏MOWAIT,就开始移动] +[设置怪物MO的一些属性]void set(vector<trir>* v = NULL, char** cpp = NULL, int iheal = 3, map<char**, WASD>* m = NULL, char** = NULL, char(*)[11][11] = NULL, int ix = 0, int iy = 0, bool = 0, bool = 0) +[构造函数]MO() +[监听玩家的xy坐标]void set_s_pxy(int ix, int iy) +[执行怪物MO要做的事]void mosterdo() +[获取怪物MO的类型]char getm() MX -char** m_pcpp[玩家的地点,不用xy坐标] -char m_strmapr[11][11][刚刚创建完成之后的地牢] -char m_cc[盖住的块] -pairpxy[怪物的xy坐标] +bool setb[帮助设置怪物的一些属性] -char(*m_strmap) +[构造函数]MX() +[设置怪物MX的一些属性]void set(vector<trir>* v = NULL, char** cpp = NULL, int iheal = 3, map<char**, WASD>* = NULL, char** pcpp = NULL, char(*strmap)[11][11] = NULL, int = 0, int = 0, bool = 0, bool = 0) +[执行怪物MX要做的事]void mosterdo() +[额外设置怪物MX的一些属性]void exset(char strmapr[11][11]) +[获取怪物MX的类型]char getm() +[获取怪物MX的盖住的块]char getm(bool) Mplus +[执行小BOSSM+要做的事]void mosterdo() +[获取小BOSSM+的类型]char getm() M_o -[检测是否旁边有墙]void near() +[执行怪物M_o要做的事]void mosterdo() +[获取怪物M_o的类型]char getm() Player -int ix[x坐标] -int iy[y坐标] -int ijh[跳跃高度] -int iheal[生命值] -bool blr[朝向] -vector v[玩家射出的子弹] +[构造函数]Player() +[打印地牢]void printmap(const char strmap[11][11], const bool bwait, const int iunmd) +[打印地牢(右偏版本)]void printmap(char(*strmap)[11][11], const bool bwait, const int ir, const int iunmd) +[跳跃]void jump(char** cpp) +[左移]void left_move(char** cpp) +[右移]void right_move(char** cpp) +[设置或获得玩家的x坐标,y坐标或血量]int& sgetxyhs(XYHS xyhsmode) +[设置或获得玩家射出的子弹]vector<trir>* sgetxyhs() +[上升或下坠]void upOrDown(char** cpp) +[射击]void shoot(int& i, char** cpp) +[子弹移动]void shootmove(const char(*strmap)[11][11], bool bmode) cmp +[用于升序排列的假函数]bool operator()(trir t, trir ta) cmpm +[用于升序排列的假函数]bool operator()(moster* mp, moster* mpa) <<struct>> isv [地牢怪物^] string str[判断怪物的生成] vector<moster*> vmp[生成的怪物] int id[地牢怪物所代表的id] <<struct>> draw int iy[画"#"的画笔起始y坐标] int ix[画"#"的画笔起始x坐标] int iwalk[画笔往哪个方向走几步] bool brd[画壁画的方向(0> 1v)] <<枚举Enumeration>> WASD W A S D E <<枚举Enumeration>> XYHS X[x坐标] Y[y坐标] HEAL[玩家的血量] <<struct>> trir [子弹^] char* cp[子弹的位置] int iy[子弹的y坐标] bool b[子弹的朝向(0< 1>)] bool bk[是否杀过怪物]
C++打小怪游戏2
这是我582024-12-22 20:44
相关推荐
人才程序员2 小时前
QML z轴(z-order)前后层级w(゚Д゚)w吓洗宝宝了2 小时前
C vs C++: 一场编程语言的演变与对比孤留光乩2 小时前
从零搭建纯前端飞机大战游戏(附源码)王大队长3 小时前
Epic游戏使用mod小老鼠不吃猫3 小时前
C++点云大文件读取姚先生974 小时前
LeetCode 35. 搜索插入位置 (C++实现)CoderCodingNo4 小时前
【GESP】C++二级考试大纲知识点梳理, (4)流程图小小unicorn5 小时前
【C++初阶】STL详解(十三)—— 用一个哈希表同时封装出unordered_map和unordered_settealcwu5 小时前
【游戏设计原理】20 - 囚徒困境慕羽★5 小时前
详细介绍如何使用rapidjson读取json文件