C++平台跳跃游戏
目录
- 开头
- 程序
- 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;}
}
程序的流程图
程序游玩的效果
平台跳跃游戏
下一篇博客要说的东西
C++版iwanna

相关文章:
C++平台跳跃游戏
目录 开头程序Game.cpp源文件Player.h头文件Player.cpp源文件 程序的流程图程序游玩的效果下一篇博客要说的东西 开头 大家好,我叫这是我58。 程序 Game.cpp源文件 #include <iostream> #include "Player.h" using namespace std; void printma…...
多系统萎缩患者必看!这些维生素助你对抗病魔
亲爱的朋友们,今天我们来聊聊一个相对陌生但重要的健康话题——多系统萎缩(MSA)。这是一种罕见的神经系统疾病,影响着患者的自主神经系统、运动系统和平衡功能。面对这样的挑战,科学合理的饮食和营养补充显得尤为重要。…...
深度学习模型性能优化实战之从评估到提升的全流程解析
1. 概述 在构建和使用机器学习模型的过程中,模型的效果评估和优化是两个至关重要的环节。无论模型是用于分类、回归还是其他任务,评估其表现以及持续优化模型性能,都是确保模型在实际应用中取得成功的关键。本节将重点介绍模型效果评估的定义…...
C++ | Leetcode C++题解之第446题等差数列划分II-子序列
题目: 题解: class Solution { public:int numberOfArithmeticSlices(vector<int> &nums) {int ans 0;int n nums.size();vector<unordered_map<long long, int>> f(n);for (int i 0; i < n; i) {for (int j 0; j < i;…...
【解密 Kotlin 扩展函数】扩展属性与扩展函数类似(十九)
导读大纲 1.1.1 扩展属性的创建和使用 1.1.1 扩展属性的创建和使用 之前, 我们已经了解声明 Kotlin 属性的语法 Kotlin中的顶级属性–传送门就像扩展函数一样,我们也可以指定扩展属性就像之前所说,属性和函数的区别在于前者是特征,后者是行为 相比扩展函…...
【Spring Boot 入门二】Spring Boot中的配置文件 - 掌控你的应用设置
一、引言 在上一篇文章中,我们开启了Spring Boot的入门之旅,成功构建了第一个Spring Boot应用。我们从环境搭建开始,详细介绍了JDK的安装以及IDE的选择与配置,然后利用Spring Initializr创建了项目,分析了项目结构&am…...
OpenCV第十二章——人脸识别
1.人脸跟踪 1.1 级联分类器 OpenCV中的级联分类器是一种基于AdaBoost算法的多级分类器,主要用于在图像中检测目标对象。以下是对其简单而全面的解释: 一、基本概念 级联分类器:是一种由多个简单分类器(弱分类器)级联组…...
深入Volatile
深入Volatile 1、变量不可见性: 1.1多线程下变量的不可见性 直接上代码 /*** author yourkin666* date 2024/08/12/16:12* description*/ public class h1 {public static void main(String[] args) {MyClass myClass new MyClass();myClass.start();while (tr…...
数据结构 ——— 顺序表oj题:编写函数,合并两个有序数组
目录 题目要求 代码实现 题目要求 nums1 和 nums2 是两个升序的整型数组,另外有两个整数 m 和 n 分别代表 nums1 和 nums2 中的元素个数 要求合并 nusm2 到nums1 中,使合并后的 nums1 同样按升序顺序排列 最终,合并后的数组不应由函数返…...
Proto文件相关知识
百度Apollo的数据结构常用proto文件来定义, proto文件允许你以类似于C结构体或类的方式定义数据结构。你可以在这个文件中定义简单数据类型、枚举、消息类型等。 基于proto文件,Protocol Buffers编译器(protoc)可以自动生成对应的…...
k8s的控制节点不能访问node节点容器的ip地址
master控制node服务器添加容器后,访问不了该node服务器容器的ip,只能在node服务器访问 排查后发现是k8s的master服务器和node节点的网址网段和k8s初始化时提示的ip网段不一致 我之前是192.168.137.50, 实际上master主机期望的是192.168.1.50 解决方案: 1.删除服务器后重建ma…...
鸿蒙OpenHarmony
开源鸿蒙系统编译指南 Ubuntu编译环境配置第一步:Shell 改 Bash第二步:安装Git和安装pip3工具第三步:远程仓配置第四步:拉取代码第五步:安装编译环境第六步:本地编译源码 Windows开发环境配置第一步&#x…...
把白底照片变蓝色用什么软件免费 批量更换证件照底色怎么弄
作为专业的修图师,有时候也会接手证件照修图和换底色工作,这种情况下,需要换底色的照片也许达到上百张。为了提高工作效率,一般需要批量快速修图,那么使用什么软件工具能够给各式不同的照片批量更换背景色呢࿱…...
Spring之生成Bean
Bean的生命周期:实例化->属性填充->初始化->销毁 核心入口方法:finishBeanFactoryInitialization-->preInstantiateSingletons DefaultListableBeanFactory#preInstantiateSingletons用于实例化非懒加载的bean。 1.preInstantiateSinglet…...
笔记整理—linux进程部分(6)进程间通信、alarm和pause
两个进程间通信可能是任何两个进程间的通信(IPC)。同一个进程是在同一块地址空间中的,在不同的函数与文件以变量进程传递,也可通过形参传递。2个不同进程处于不同的地址空间,要互相通信有难度(内存隔离的原…...
Java网络通信—UDP
0.小记 1.udp通信不需要建立socket管道,一边只管发,一边只管收 2.客户端:将数据(byte)打包成包裹(DatagramPacket),写上地址(IP端口),通过快递站&…...
k8s架构,从clusterIP到光电半导体,再从clusterIP到企业管理
clusterIP作为k8s中的服务, 也是其他三个服务的基础 ~]$ kubectl create service clusterip externalname loadbalancer nodeport 客户端的流量到service service分发给pod,pod由控制器自动部署,自动维护 那么问题是service的可用…...
vue框架和uniapp框架区别
文章目录 vue框架和uniapp框架区别一、引言二、Vue.js 概述1、Vue.js 简介1.1、特点 2、适用场景 三、Uni-app 概述1、Uni-app 简介1.1、特点 2、适用场景 四、区别与比较1、跨平台能力2、开发体验3、性能优化4、社区和支持 五、总结 vue框架和uniapp框架区别 一、引言 在前端…...
828华为云征文 | 华为云Flexus云服务器X实例搭建Zabbix网络设备监视系统(Ubuntu服务器运维)
前言 Flexus X实例内嵌智能应用调优算法,性能强悍,基础模式GeekBench单核及多核跑分可达同规格独享型实例的1.6倍,性能模式更是超越多系列旗舰型云主机,为企业业务提供强劲动力。 💼 Flexus X Zabbix:打造…...
JAVA基础-线程(Thread)、多线程(Multi-threaded)
1、知识铺垫 要想了解什么是线程,首先要搞明白线程与进程的区别,并行与并发的区别 1.1 线程与进程 进程:是指⼀个内存中运⾏的应⽤程序,每个进程都有⼀个独⽴的内存空间,⼀个应⽤程序可以同时运⾏多个进程;…...
终极指南:3分钟免费配置PotPlayer百度翻译插件,实现实时字幕翻译
终极指南:3分钟免费配置PotPlayer百度翻译插件,实现实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu …...
ShareGPT4Omni/ShareGPT4Video:构建可分享的AI对话知识库实战指南
1. 项目概述:当AI多模态模型遇上“分享”的刚需 最近在AI圈子里,一个现象级的开源项目“ShareGPT4Omni/ShareGPT4Video”引起了我的注意。乍一看标题,你可能以为这又是一个基于GPT-4的对话应用,但它的核心价值远不止于此。简单来说…...
CANN/ops-nn二元交叉熵损失算子
aclnnBinaryCrossEntropyWithLogits 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Ascend 950D…...
如何3步完成视频字幕提取:本地OCR工具的终极指南
如何3步完成视频字幕提取:本地OCR工具的终极指南 【免费下载链接】video-subtitle-extractor 视频硬字幕提取,生成srt文件。无需申请第三方API,本地实现文本识别。基于深度学习的视频字幕提取框架,包含字幕区域检测、字幕内容提取…...
链表专项(二):链表反转、环判断
大家好,欢迎来到《算法面试60讲(2026最新版全真题带解析)》的第10篇内容!上一篇我们掌握了单链表、双链表的增删改查基础操作,本节课将聚焦链表专项的核心难点——链表反转和环判断,这两个考点是大厂面试中链表部分的“高频必考题”,无论是校招还是社招,几乎都会出现,…...
从CEO到营销技术专家:创业者退休后的身份重构与价值延续
1. 从创业者到“退休者”:身份的骤然转变卖掉自己一手创办并经营了近四十年的公司,这种感觉,远非“退休”二字可以概括。它不是一次计划已久的悠闲旅行,更像是一场毫无预兆的急刹车。前一天,你还在会议室里为下一代产品…...
太空采矿的工程挑战:从月球氦-3到小行星资源开采的现实路径
1. 从煤矿到月球:一位前NASA工程师的太空采矿现实观最近几年,关于小行星采矿的新闻和讨论时不时就会冒出来,尤其是瞄准铂金这类贵金属。听起来像是科幻小说里的情节,一群雄心勃勃的企业家成立公司,宣称要开采太空中的无…...
Let‘s Encrypt证书有效期缩短至90天后,如何实现自动续期
Let’s Encrypt证书有效期缩短至90天后,如何实现自动续期 打开网站突然发现浏览器地址栏一把红色小锁,提示"您的连接不是专用连接"——SSL证书过期了。这可能是站长最不想看到的画面之一:用户无法正常访问、搜索引擎排名下降、甚至…...
量子门净化:突破2槽限制的3槽架构实现
1. 量子门净化:从理论到实践的关键突破量子计算领域面临的核心挑战之一是如何在噪声环境下保持量子门操作的精度。传统量子态净化技术虽然能提升静态量子资源的保真度,但对于动态执行的量子算法而言,我们需要更高阶的方法来直接处理操作本身的…...
RTAB-Map实战:如何用databaseViewer分析SLAM闭环与优化你的地图质量
RTAB-Map深度优化:用databaseViewer精准诊断闭环问题与地图调优实战 当你已经能够用RTAB-Map跑通基础SLAM流程,却发现生成的地图总有些"不对劲"——走廊墙壁出现波浪形扭曲、重复区域无法正确对齐、导航时机器人总是撞上"空气墙"。这…...
