通化市网站建设,网站建设案例收费情况,网站域名到期查询,怪兽网站模板目录 开头程序Game.cpp源文件Player.h头文件Player.cpp源文件 程序的流程图程序游玩的效果下一篇博客要说的东西 开头
大家好#xff0c;我叫这是我58。
程序
Game.cpp源文件
#include iostream
#include Player.h
using namespace std;
void printma… 目录 开头程序Game.cpp源文件Player.h头文件Player.cpp源文件 程序的流程图程序游玩的效果下一篇博客要说的东西 开头
大家好我叫这是我58。
程序
Game.cpp源文件
#include iostream
#include Player.h
using namespace std;
void printmap(const char strmap[11][11], const int icoin) {int i 0;int ia 0;for (; i 11; i) {for (ia 0; ia 11; ia) {cout \033[ (G strmap[i][ia] ? 32;1m : $ strmap[i][ia] ? 33m : 0m) strmap[i][ia] \033[0m;}cout | endl;}cout ----------- endl \033[33 (20 icoin ? ;1 : ) m$ * icoin \033[0m endl;
}
int main() {char str[9] color 0;char strmap[11][11] { , , , , , , , ,$,$, , ,G, , , ,$, ,*,*,*, , ,*,*,*, , , , , , , ,$, , , ,$, ,$, , ,$, , , ,$, ,*,*,*, ,$, , , , , , , , , , , , , , ,*,*,*, , ,*,*,*, , , , ,$, ,$, , , ,$, , , , ,*,*,*, ,$, ,*,*,*, , , , , , , , , ,$,$,P, ,$,$,$, , , , ,$,$};char* cp strmap[10][0];Player p;char ch 0;int icoin 0;int coinarr[40] { 0,8,0,9,1,5,3,0,3,4,3,6,3,9,4,2,4,8,7,2,7,4,7,8,8,6,9,9,9,10,10,2,10,3,10,4,10,9,10,10 };cout 欢迎你来玩这个平台跳跃游戏在这个游戏中“P”是你“*”是平台你不能走到这空格是\033[30;1m空气\033[0m“w”使你跳就像\033[31;1m马里奥\033[0m一样“a”使你左移“d”使你右移而\033[32;1m“G”\033[0m是\033[32;1m终点\033[0m走到这能让你\033[32;1m胜利\033[0m并且\033[33m“$”\033[0m是\033[33m金币\033[0m得到\033[33m它\033[0m就会使你\033[33m获得\033[0m一个\033[33m金币\033[0m。这就是这游戏的规则你听明白了吗? endl endl;system(pause);system(cls);while (G strmap[1][1]) {p.sgetxy(X) (cp - strmap[0][0]) / 11;p.sgetxy(Y) (cp - strmap[0][0]) % 11;for (ch 0; ch 40; ch 2) {p.sgetxy(X) coinarr[ch] p.sgetxy(Y) coinarr[ch 1] (coinarr[ch] -1, icoin);}printmap(strmap, icoin);cin ch;rewind(stdin);*cp ;switch (ch) {case a:p.left_move(cp);break;case d:p.right_move(cp);break;case w:p.jump(cp);break;default:break;}p.upOrDown(cp);*cp P;system(cls);}20 icoin (str[7] E), 20 icoin || (str[7] 6);system(str);cout 恭喜你你赢了获得了金币 icoin 枚 endl;return 0;
}Player.h头文件
#pragma once
#include iostream
using namespace std;
#define JUMPHIGH 3
enum XY {X,Y,
};
class Player {
private:int ix;int iy;int ij;
public:Player();void jump(char** cpp);void left_move(char** cpp);void right_move(char** cpp);int sgetxy(XY xymode);void upOrDown(char** cpp);
};Player.cpp源文件
#include iostream
#include Player.h
using namespace std;
Player::Player(){ij 0;
}
void Player::jump(char** cpp) {(10 ix || * (*cpp)[11]) (ij JUMPHIGH);
}
void Player::left_move(char** cpp) {iy * ! *(*cpp - 1) ((*cpp)--);
}
void Player::right_move(char** cpp) {10 ! iy * ! *(*cpp 1) ((*cpp));
}
int Player::sgetxy(XY xymode) {return xymode ? iy : ix;
}
void Player::upOrDown(char** cpp) {if (ij 0 ix * ! (*cpp)[-11]) {ij--, *cpp - 11;}else if (* ! (*cpp)[11] (!ix || * (*cpp)[-11])) {ij 0, *cpp 11;}else if (* ! (*cpp)[11] 10 ! ix) {*cpp 11;}
}程序的流程图 #mermaid-svg-wH93wDxnavP4iPjg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wH93wDxnavP4iPjg .error-icon{fill:#552222;}#mermaid-svg-wH93wDxnavP4iPjg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wH93wDxnavP4iPjg .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-wH93wDxnavP4iPjg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wH93wDxnavP4iPjg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wH93wDxnavP4iPjg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wH93wDxnavP4iPjg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wH93wDxnavP4iPjg .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wH93wDxnavP4iPjg .marker.cross{stroke:#333333;}#mermaid-svg-wH93wDxnavP4iPjg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wH93wDxnavP4iPjg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wH93wDxnavP4iPjg .cluster-label text{fill:#333;}#mermaid-svg-wH93wDxnavP4iPjg .cluster-label span{color:#333;}#mermaid-svg-wH93wDxnavP4iPjg .label text,#mermaid-svg-wH93wDxnavP4iPjg span{fill:#333;color:#333;}#mermaid-svg-wH93wDxnavP4iPjg .node rect,#mermaid-svg-wH93wDxnavP4iPjg .node circle,#mermaid-svg-wH93wDxnavP4iPjg .node ellipse,#mermaid-svg-wH93wDxnavP4iPjg .node polygon,#mermaid-svg-wH93wDxnavP4iPjg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wH93wDxnavP4iPjg .node .label{text-align:center;}#mermaid-svg-wH93wDxnavP4iPjg .node.clickable{cursor:pointer;}#mermaid-svg-wH93wDxnavP4iPjg .arrowheadPath{fill:#333333;}#mermaid-svg-wH93wDxnavP4iPjg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wH93wDxnavP4iPjg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wH93wDxnavP4iPjg .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-wH93wDxnavP4iPjg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-wH93wDxnavP4iPjg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wH93wDxnavP4iPjg .cluster text{fill:#333;}#mermaid-svg-wH93wDxnavP4iPjg .cluster span{color:#333;}#mermaid-svg-wH93wDxnavP4iPjg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wH93wDxnavP4iPjg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Game.cpp源文件 把有11行11列的二维数组strmap初始化为下面的图片 开始 导入io流 导入Player.h头文件 释放std作用域下的所有东西 定义printmap函数 把有9个字符的字符串初始化为“color 0” #mermaid-svg-YzX2KM5SACw6Kc0t {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .error-icon{fill:#552222;}#mermaid-svg-YzX2KM5SACw6Kc0t .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-YzX2KM5SACw6Kc0t .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-YzX2KM5SACw6Kc0t .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-YzX2KM5SACw6Kc0t .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-YzX2KM5SACw6Kc0t .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-YzX2KM5SACw6Kc0t .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-YzX2KM5SACw6Kc0t .marker{fill:#333333;stroke:#333333;}#mermaid-svg-YzX2KM5SACw6Kc0t .marker.cross{stroke:#333333;}#mermaid-svg-YzX2KM5SACw6Kc0t svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-YzX2KM5SACw6Kc0t .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .cluster-label text{fill:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .cluster-label span{color:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .label text,#mermaid-svg-YzX2KM5SACw6Kc0t span{fill:#333;color:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .node rect,#mermaid-svg-YzX2KM5SACw6Kc0t .node circle,#mermaid-svg-YzX2KM5SACw6Kc0t .node ellipse,#mermaid-svg-YzX2KM5SACw6Kc0t .node polygon,#mermaid-svg-YzX2KM5SACw6Kc0t .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-YzX2KM5SACw6Kc0t .node .label{text-align:center;}#mermaid-svg-YzX2KM5SACw6Kc0t .node.clickable{cursor:pointer;}#mermaid-svg-YzX2KM5SACw6Kc0t .arrowheadPath{fill:#333333;}#mermaid-svg-YzX2KM5SACw6Kc0t .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-YzX2KM5SACw6Kc0t .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-YzX2KM5SACw6Kc0t .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-YzX2KM5SACw6Kc0t .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-YzX2KM5SACw6Kc0t .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-YzX2KM5SACw6Kc0t .cluster text{fill:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t .cluster span{color:#333;}#mermaid-svg-YzX2KM5SACw6Kc0t div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-YzX2KM5SACw6Kc0t :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Game.cpp源文件 等待玩家按下任意一个键按下后就清屏 是 是 是 否 是 break 清屏 否 是 是 否 是 break 否 是 break 否(break) 否 否 否 结束 定义字符指针cp为二维字符数组strmap第10行第0列的元素的地址 创建一个名叫p的Player对象 定义字符ch为0 定义整型icoin为0 把有40个元素的整型数组coinarr里的元素分别初始化为0,8,0,9,1,5,3,0,3,4,3,6,3,9,4,2,4,8,7,2,7,4,7,8,8,6,9,9,9,10,10,2,10,3,10,4,10,9,10和10 输出“欢迎你来玩这个平台跳跃游戏在这个游戏中“P”是你“*”是平台你不能走到这空格是\033[30;1m空气\033[0m“w”使你跳就像\033[31;1m马里奥\033[0m一样“a”使你左移“d”使你右移而\033[32;1m“G”\033[0m是\033[32;1m终点\033[0m走到这能让你\033[32;1m胜利\033[0m并且\033[33m“$”\033[0m是\033[33m金币\033[0m得到\033[33m它\033[0m就会使你\033[33m获得\033[0m一个\033[33m金币\033[0m。这就是这游戏的规则你听明白了吗?\n\n” G strmap[1][1]? 把Player对象p的方法sgetxy参数为枚举XY的X的值的返回的引用设为cp与二维字符数组strmap第0行第0列的元素地址除以11的结果 把Player对象p的方法sgetxy参数为枚举XY的Y的值的返回的引用设为cp与二维字符数组strmap第0行第0列的元素地址模上11的结果 设ch为0 ch 40? p.sgetxy(X) coinarr[ch] p.sgetxy(Y) coinarr[ch 1]? 把整型数组coinarr的第ch项设为-1 icoin自增1 ch自增2 执行printmap函数参数为二维字符数组strmap和整型icoin 把ch设为你输入的字符 清空缓冲区 把解引用的cp设为空格 a ch? 执行Player对象p的方法left_move参数为字符指针cp的地址 执行Player对象p的方法upOrDown参数为字符指针cp的地址 把解引用的cp设为字符“P” 20 icoin? 把字符串str的第7项的元素设为字符“E” 20 icoin? 执行系统命令命令为字符串str 输出“恭喜你你赢了获得了金币”icoin和“枚\n” d ch? 执行Player对象p的方法right_move参数为字符指针cp的地址 w ch? 执行Player对象p的方法jump参数为字符指针cp的地址 把字符串str的第7项的元素设为字符“6” #mermaid-svg-n7NVtuZQ7OvFebUt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .error-icon{fill:#552222;}#mermaid-svg-n7NVtuZQ7OvFebUt .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-n7NVtuZQ7OvFebUt .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-n7NVtuZQ7OvFebUt .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-n7NVtuZQ7OvFebUt .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-n7NVtuZQ7OvFebUt .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-n7NVtuZQ7OvFebUt .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-n7NVtuZQ7OvFebUt .marker{fill:#333333;stroke:#333333;}#mermaid-svg-n7NVtuZQ7OvFebUt .marker.cross{stroke:#333333;}#mermaid-svg-n7NVtuZQ7OvFebUt svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-n7NVtuZQ7OvFebUt .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .cluster-label text{fill:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .cluster-label span{color:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .label text,#mermaid-svg-n7NVtuZQ7OvFebUt span{fill:#333;color:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .node rect,#mermaid-svg-n7NVtuZQ7OvFebUt .node circle,#mermaid-svg-n7NVtuZQ7OvFebUt .node ellipse,#mermaid-svg-n7NVtuZQ7OvFebUt .node polygon,#mermaid-svg-n7NVtuZQ7OvFebUt .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-n7NVtuZQ7OvFebUt .node .label{text-align:center;}#mermaid-svg-n7NVtuZQ7OvFebUt .node.clickable{cursor:pointer;}#mermaid-svg-n7NVtuZQ7OvFebUt .arrowheadPath{fill:#333333;}#mermaid-svg-n7NVtuZQ7OvFebUt .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-n7NVtuZQ7OvFebUt .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-n7NVtuZQ7OvFebUt .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-n7NVtuZQ7OvFebUt .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-n7NVtuZQ7OvFebUt .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-n7NVtuZQ7OvFebUt .cluster text{fill:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt .cluster span{color:#333;}#mermaid-svg-n7NVtuZQ7OvFebUt div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-n7NVtuZQ7OvFebUt :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Player.h头文件 结束 开始 不让头文件重复定义 导入io流 释放std作用域下的所有东西 定义JUMPHIGH宏为3 定义枚举XY并设X的值为0Y的值为1 定义Player类私有的有成员变量ix成员变量iy和成员变量ij公开的有Player无参构造函数的声明jump方法的声明left_move方法的声明right_move方法的声明sgetxy方法的声明和upOrDown方法的声明 #mermaid-svg-0hg2R4hu5vuChueH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0hg2R4hu5vuChueH .error-icon{fill:#552222;}#mermaid-svg-0hg2R4hu5vuChueH .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0hg2R4hu5vuChueH .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-0hg2R4hu5vuChueH .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0hg2R4hu5vuChueH .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0hg2R4hu5vuChueH .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0hg2R4hu5vuChueH .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0hg2R4hu5vuChueH .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0hg2R4hu5vuChueH .marker.cross{stroke:#333333;}#mermaid-svg-0hg2R4hu5vuChueH svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0hg2R4hu5vuChueH .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0hg2R4hu5vuChueH .cluster-label text{fill:#333;}#mermaid-svg-0hg2R4hu5vuChueH .cluster-label span{color:#333;}#mermaid-svg-0hg2R4hu5vuChueH .label text,#mermaid-svg-0hg2R4hu5vuChueH span{fill:#333;color:#333;}#mermaid-svg-0hg2R4hu5vuChueH .node rect,#mermaid-svg-0hg2R4hu5vuChueH .node circle,#mermaid-svg-0hg2R4hu5vuChueH .node ellipse,#mermaid-svg-0hg2R4hu5vuChueH .node polygon,#mermaid-svg-0hg2R4hu5vuChueH .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0hg2R4hu5vuChueH .node .label{text-align:center;}#mermaid-svg-0hg2R4hu5vuChueH .node.clickable{cursor:pointer;}#mermaid-svg-0hg2R4hu5vuChueH .arrowheadPath{fill:#333333;}#mermaid-svg-0hg2R4hu5vuChueH .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0hg2R4hu5vuChueH .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0hg2R4hu5vuChueH .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-0hg2R4hu5vuChueH .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-0hg2R4hu5vuChueH .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0hg2R4hu5vuChueH .cluster text{fill:#333;}#mermaid-svg-0hg2R4hu5vuChueH .cluster span{color:#333;}#mermaid-svg-0hg2R4hu5vuChueH div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0hg2R4hu5vuChueH :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Player.cpp源文件 结束 开始 导入io流 导入Player.h头文件 释放std作用域下的所有东西 定义Player类作用域下的jump方法 定义Player类作用域下的无参构造函数 定义Player类作用域下的left_move方法 定义Player类作用域下的right_move方法 定义Player类作用域下的sgetxy方法 定义Player类作用域下的upOrDown方法 Player类作用域下的无参构造函数 结束 开始 设类Player里的ij为0 Player类作用域下的jump方法 是 否 结束 开始 (10 ix || * (*cpp)[11])? 设类Player里的ij为JUMPHIGH宏的值 Player类作用域下的left_move方法 是 否 结束 开始 iy * ! *(*cpp - 1)? 把解引用的cpp向左移动一位 Player类作用域下的right_move方法 是 否 结束 开始 10 ! iy * ! *(*cpp 1)? 把解引用的cpp向右移动一位 Player类作用域下的sgetxy方法 如果xymode不为0那么就返回iy的引用否则就返回ix的引用 结束 开始 Player类作用域下的upOrDown方法 是 否 是 否 是 否 结束 开始 ij 0 ix * ! (*cpp)[-11]? ij自减1 把解引用的cpp向左移动11位 * ! (*cpp)[11] (!ix || * (*cpp)[-11])? 设ij为0 把解引用的cpp向右移动11位 * ! (*cpp)[11] 10 ! ix? 把解引用的cpp向右移动11位 程序游玩的效果 平台跳跃游戏 下一篇博客要说的东西 C版iwanna