当前位置: 首页 > news >正文

C++俄罗斯方块 -- 菜单展示和选择 -- 方法

short Menu()	//选中开始游戏返回1,离开则返回2
{short choice = 1;//跟踪用户选中的选项char c;		//记录用户按键信息system("cls");SetPos(9, 12);	//设置输出坐标,12行9列cout << "┌────────┐";SetPos(9, 13);cout << "│ 俄 罗 斯 方 块 │";SetPos(9, 14);cout << "└────────┘";while (1){SetPos(15, 16);if (choice == 1) SetColor(2, 7);	//2为前景色:绿色,7为背景色:白色。else SetColor(2, 0);				//如果当前第一项不是选中项,背景色为黑色0cout << "开始游戏";SetPos(15, 18);if (choice == 2) SetColor(2, 7);	//2为前景色:绿色,7为背景色:白色。else SetColor(2, 0);				//如果当前第一项不是选中项,背景色为黑色cout << "离  开";c = getch();if (c == VK_RETURN) break;	//用户按下了回车,离开循环体elseif (c == 0) choice = getch();   // 如果用户输入了非打印字符键,如:enter space F2,让用户重新输入if (c == 72 || c == 80) choice = choice == 1 ? 2 : 1;	//让choice在1、2之间切换,72向下的方向键80向上的方向键//用户如果什么都不输入,继续循环 while true}SetColor(7, 0);	//恢复黑底白字return choice;}
函数解析:
  1. 清屏(循环时清除旧数据)
  2. 定位坐标 -- 输出标题 :俄罗斯方块(修改纵坐标SetPost(9,12))
  3. 循环体
    1. 定位坐标 -- 判断choice默认为1的时候,设置前景色背景色,并打印"开始游戏"
    2. 如果choice用户选中2,打印出"离开"
    3. c来接收用户的按键
      1. 如果用户按下了回车,离开循环体break
      2. 如果用户按下了非打印字符:一般阿斯克码值为0;就重新输入c的值
      3. 如果新的C的值是左右键,就通过三木运算符,赋值给choice 1或者2
      4. 然后继续循环1. 按回车就离开循环体while,
  4. 离开循环体后,恢复黑底白字
  5. 返回最终的choice的值 1 或者 2  return choice
概念理解:
  1. 非打印字符键:如:enter space F2

通常指的是那些不产生可见字符的按键,比如控制键(如Ctrl、Alt、Shift)、功能键(如F1、F2、F3等)、导航键(如方向键、Home、End、Page Up、Page Down等)以及一些产生不可见控制字符的按键(如Enter、Tab、Backspace、Delete等)。这些按键在文本编辑中通常不直接产生可见的字符,而是用来控制程序的行为或者光标的移动等。

相关文章:

C++俄罗斯方块 -- 菜单展示和选择 -- 方法

short Menu() //选中开始游戏返回1&#xff0c;离开则返回2 {short choice 1;//跟踪用户选中的选项char c; //记录用户按键信息system("cls");SetPos(9, 12); //设置输出坐标&#xff0c;12行9列cout << "┌────────┐";SetPos(9, 13);cou…...

面试150 颠倒二进制位 位运算分治 逻辑右移

Problem: 190. 颠倒二进制位 文章目录 思路复杂度位运算分治法 思路 &#x1f468;‍&#x1f3eb; 参考题解 >>>&#xff1a;逻辑右移&#xff08;符号位一起移动&#xff0c;高位补零&#xff09; 复杂度 时间复杂度: O ( log ⁡ n ) O(\log{n}) O(logn) 空间…...

php 函数三

一 对称加密 1.1 openssl 1.1.1 openssl_get_cipher_methods(bool $aliases false) 获取可用的加密算法。包含可用加密算法的array。 请注意&#xff1a;在 OpenSSL 1.1.1 版本之前&#xff0c;返回加密算法的拼法大小写都有&#xff1b; 从 OpenSSL 1.1.1 开始&#xff0c…...

Windows下配置多个账号的git ssh

生成密钥 已经有一个密钥的情况下&#xff0c;用下面的命令生成一个新密钥&#xff0c;注意为了防止原始密钥文件被覆盖&#xff0c;需要给一个新名字&#xff1a; ssh-keygen -t rsa -f C:\\Users\\xxx\\.ssh\\id_rsa_xxx -C "xxxemail.com"给GitHub配置SSH Key …...

【漏洞复现】电信网关配置管理系统SQL注入漏洞

Nx01 产品简介 电信网关配置管理系统是一个用于管理和配置电信网络中网关设备的软件系统。它可以帮助网络管理员实现对网关设备的远程监控、配置、升级和故障排除等功能&#xff0c;从而确保网络的正常运行和高效性能。 Nx02 漏洞描述 电信网关配置管理系统存在SQL注入漏洞,攻…...

2018年苏州大学837复试机试C/C++

2018年苏州大学复试机试 要求 要求用C/C编程&#xff1b;对程序中必要的地方进行注释。上机规则 请在电脑桌面上新建一个文件夹文件夹名为考试姓名&#xff08;中文&#xff09;&#xff1b;考试完毕后&#xff0c;将所编写的文件放在上述文件中。 第一题&#xff08;20分&…...

【Jenkins】pipeline基本使用

目录 一、pipeline 二、创建pipeline项目 1、安装pipeline插件 2、创建pipeline项目 三、pipeline语法 1、pipeline组成 2、agent&#xff1a;指定流水线的执行位置&#xff0c;流水线中每个阶段都必须在某个地方执行 3、stage&#xff1a;阶段&#xff0c;代表流水线的…...

Bytebase 签约 Vianova,助力欧洲城市交通智能平台中 Snowflake 和 PG 的变更自动化及版本控制

在数字化发展的浪潮中&#xff0c;自动化数据库变更管理成为提升产品上线效率、降低人为失误风险的关键工具&#xff0c;同时促进流程的一致性与标准化&#xff0c;确保合规性和变更的可追溯性。近日&#xff0c;数据库 DevOps 团队协同管理工具 Bytebase 签约欧洲交通数据管理…...

SpringBoot 事务管理Transactional 数据回滚 数据一致性

介绍 SpringBoot当中的事物他保证了一致性&#xff0c;要么全部一起成功&#xff08;提交&#xff09;&#xff0c;要么一起失败&#xff0c;失败&#xff08;回滚&#xff09;后数据会回到当初的样子&#xff0c;是一组操作的集合。 事物类型 开启事物提交事物回滚事物 案…...

vue使用pdf.js实现在线查看pdf文件

需求&#xff1a;有一个列表页&#xff0c;用户点击查看&#xff0c;弹层展示后台接口返回的pdf内容(不是文件、地址之类的&#xff0c;乱码的pdf铭文(二进制文件流)) 1、pdf.js安装 npm install --save vue-pdf2、正文代码 <template><div><el-table :data&q…...

java---查找算法(二分查找,插值查找,斐波那契[黄金分割查找] )-----详解 (ᕑᗢᓫ∗)˒

目录 一. 二分查找&#xff08;递归&#xff09;&#xff1a; 代码详解&#xff1a; 运行结果&#xff1a; 二分查找优化&#xff1a; 优化代码&#xff1a; 运行结果&#xff08;返回对应查找数字的下标集合&#xff09;&#xff1a; ​编辑 二分查找&#xff08;非递归…...

鸿蒙应用/元服务开发-窗口(Stage模型)设置悬浮窗

一、设置悬浮窗说明 悬浮窗可以在已有的任务基础上&#xff0c;创建一个始终在前台显示的窗口。即使创建悬浮窗的任务退至后台&#xff0c;悬浮窗仍然可以在前台显示。通常悬浮窗位于所有应用窗口之上&#xff1b;开发者可以创建悬浮窗&#xff0c;并对悬浮窗进行属性设置等操…...

springboot集成easypoi导出多sheet页

pom文件 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>4.1.0</version> </dependency> 导出模板&#xff1a; 后端代码示例&#xff1a; /*** 导出加油卡进便利店大额审批列…...

自己动手打包element UI官方手册文档教程

经常用element ui朋友开发的比较郁闷&#xff0c;官方文档网基本上都是打不开的&#xff0c; 官方&#xff1a;https://element.eleme.io/ 一直打不开&#xff0c;分析下是里面用的cdn链接ssl证书无效。 就想着自己搭建一个element UI文档 自己搭建的&#xff1a; Element文档网…...

《计算机网络简易速速上手小册》第5章:无线网络和移动通信(2024 最新版)

5.1 WLAN的工作原理 - 揭秘无线局域网络的魔法 5.1.1 基础知识 无线局域网络&#xff08;WLAN&#xff09;允许设备通过无线方式连接到一个局部区域网络&#xff0c;主要基于IEEE 802.11标准&#xff0c;俗称Wi-Fi。WLAN的核心是无线路由器&#xff0c;它不仅充当着网络中各设…...

2024PMP考试新考纲-近年PMP真题练一练和很详细解析(3)

今天华研荟继续为您分享和解析PMP真题&#xff0c;一方面让大家感受实际的PMP考试和出题形式&#xff0c;另一方面是通过较详细的解题思路和知识讲解帮助大家最后一个多月有效备考&#xff0c;一次性3A通过2024年PMP考试。 2024年PMP考试新考纲-近年真题随机练一练 (注&#x…...

java SpringBoot2.7整合Elasticsearch(ES)7 进行文档增删查改

首先 我们在 ES中加一个 books 索引 且带有IK分词器的索引 首先 pom.xml导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>applicatio…...

动态内存管理(2)

文章目录 4. 几个经典的笔试题4.1 题目14.2 题目24.3 题目34.4 题目4 5. C/C程序的内存开辟6. 动态通讯录7. 柔性数组7.1 柔性数组的特点7.2 柔性数组的使用7.3 柔性数组的优势 4. 几个经典的笔试题 4.1 题目1 #include <stdio.h> #include <stdlib.h> #include …...

使用 git 上传文件时,运行 命令 git pull origin 时未成功,出现报错信息

项目场景&#xff1a; 背景&#xff1a; 使用 git 上传文件时&#xff0c;运行 命令 git pull origin 时未成功&#xff0c;出现报错信息 问题描述 问题&#xff1a; $ git pull origin print --allow-unrelated-histories error: Pulling is not possible because you hav…...

Linux文件编译

目录 一、GCC编译 1.直接编译 2.分步编译 预处理&#xff1a; 编译&#xff1a; 汇编&#xff1a; 链接&#xff1a; 3.多文件编译 4.G 二、Make 1.概述 2.使用步骤 3.makefile创建规则 3.1一个基本规则 3.2两个常用函数 4.示例文件 三、GDB 示例&#xff1a;…...

HelixDB部署与运维:从本地开发到生产环境的完整流程

HelixDB部署与运维&#xff1a;从本地开发到生产环境的完整流程 【免费下载链接】helix-db HelixDB is a powerful, graph-vector database built entirely in Rust for millisecond query latency and ease of use. 项目地址: https://gitcode.com/gh_mirrors/he/helix-db …...

探索开源软件 FireGeo:地理空间数据处理的新选择

探索开源软件 FireGeo&#xff1a;地理空间数据处理的新选择 在地理空间数据处理的领域中&#xff0c;开源软件正以其独特的优势逐渐崭露头角&#xff0c;为众多专业人士和爱好者提供了丰富多样的工具。FireGeo 作为其中一款开源软件&#xff0c;正吸引着越来越多人的关注&…...

小爱音响音乐服务:如何让智能音箱变身私人音乐管家?

小爱音响音乐服务&#xff1a;如何让智能音箱变身私人音乐管家&#xff1f; 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 你是否曾经想过&#xff0c;家里的小爱音…...

如何打破微信单设备限制:WeChatPad终极指南

如何打破微信单设备限制&#xff1a;WeChatPad终极指南 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 你是不是也遇到过这样的尴尬时刻&#xff1f;在电脑上登录微信工作&#xff0c;手机上的微信就被迫下线…...

OFA模型在零售行业的视觉问答应用案例

OFA模型在零售行业的视觉问答应用案例 1. 引言 走进任何一家现代零售商店&#xff0c;你都会看到成千上万的商品整齐地陈列在货架上。但对于店员来说&#xff0c;要快速准确地回答"这个品牌的洗发水有没有无硅油版本&#xff1f;"或者"这款饼干是否含有坚果成…...

千问3.5-2B一文详解:4.3GB权重免下载、24GB显存优化、温度参数调优手册

千问3.5-2B一文详解&#xff1a;4.3GB权重免下载、24GB显存优化、温度参数调优手册 1. 千问3.5-2B模型概述 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;专为图片理解与文本生成任务设计。这个模型最吸引人的特点是它能同时处理视觉和语言信息&#xff0c;让你通过…...

vscode|无法连接到远程扩展主机服务器 (错误: CodeError(AsyncPipeFailed(Os { code: 2, kind: NotFound, message: “No such

无法连接到远程主机服务器&#xff08;错误&#xff1a; CodeError(AsyncPipeFailed(Os { code: 2, kind: NotFound, message: "No such file or directory" })))这是一个典型的 VSCode Remote-SSH 连接失败 错误。虽然本地网络正常、服务器在线&#xff0c;但 VSCod…...

SVN 启动模式详解

SVN 启动模式详解 引言 Subversion(简称SVN)是一个开源的版本控制系统,广泛用于软件项目协作开发中。SVN的启动模式是其基本操作的核心,了解并掌握不同的启动模式对于高效使用SVN至关重要。本文将详细介绍SVN的启动模式,包括基本概念、常用模式及其应用场景。 一、SVN启…...

二手车价格预测:特征工程比调参重要10倍!我的天池赛从800分降到490分的实战复盘

二手车价格预测实战&#xff1a;如何通过特征工程将MAE从800降到490 二手车市场向来以信息不对称为特点&#xff0c;价格波动大、影响因素复杂。对于数据科学家来说&#xff0c;准确预测二手车价格不仅是一个有趣的机器学习挑战&#xff0c;更是一个极具商业价值的实际问题。在…...

别再让单片机‘死机’!手把手教你用TPV6823设计一个靠谱的硬件看门狗电路

嵌入式系统守护者&#xff1a;TPV6823硬件看门狗电路实战指南 当电机控制板在工厂车间突然停止响应&#xff0c;或是工业传感器在雷雨天气后持续报错&#xff0c;许多工程师的第一反应往往是"程序又跑飞了"。这种嵌入式系统运行失控的现象&#xff0c;就像一台无人看…...