实战项目:俄罗斯方块(一)

2024-09-01 16:28
文章标签 实战 项目 方块 俄罗斯

本文主要是介绍实战项目:俄罗斯方块(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 🍊自我介绍
  • 🍊vt100 控制码
    • 1.概述
    • 2.数字格式
      • ①常用数字控制码
      • ②常用控制码
  • 🍊绘制方格


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”“内容共创官” ,现在我来为大家介绍一下有关物联网-嵌入式方面的内容。


  我们此次的项目是由多文件编程实现的,下面图片是我们最终的实验情况:
在这里插入图片描述

🍊vt100 控制码

  我们观察上面的结果演示图,我们可以发现,方块拥有不同的颜色,它们是怎么实现的呢?接下来我们来介绍一下对于输出不同颜色的控制码——vt100控制码。

1.概述

  vt100是一个古老的终端定义,目前大部分的终端都兼容这种终端。vt100控制码是用来在终端扩展显示的代码。所有的控制字符全部以\033打头(即ESC的ASCII码)(\033中的0可以省略),用输出语句来输出,可以输出不同颜色的字符。在C语言程序中,一般用printf来输出vt100的控制字符。

2.数字格式

格式 \033[数字m

①常用数字控制码

\033[0m :关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m – \33[37m : 设置字体颜色
\033[40m – \33[47m :设置背景色
\033[字体背景色;字体颜色m 同时设置背景色和字体颜色

背景色范围:40~47

40 : 黑色
41 :深红色
42 : 绿色
43 : 黄色
44 :蓝色
45 :紫色
46 :深绿色
47 :白色

字体颜色范围:30~37

30 :黑色
31 :红色
32 :绿色
33 :黄色
34 :蓝色
35 :紫色
36 :深绿色
37 :白色

解释:输出黄色背景,红色字体的代码演示

#include <stdio.h>int main()
{//黄色背景,红色字体printf("\033[43;31m");printf("hello world!\n");printf("\033[0m");
//可以用一个printf输出,只不过看着不怎么美观://printf("\033[43;31mhello world!\n\033[0m");return 0;
}

演示结果:
在这里插入图片描述
控制字符格式

格式: \033[字母

②常用控制码

\033[nA:光标上移n行
\033[nB:光标下移n行
\033[nC:光标右移n行
\033[nD:光标左移n行
\033[y;xH:设置光标位置
\033[2J:清屏
\033[K:清楚从光标到行尾的内容
\033[s:保存光标位置
\033[u:恢复光标位置
\033[?25l(小写的L):隐藏光标
\033[?25h:显示光标

\033[y;xH:设置光标位置是以终端控制台的做顶点为原点,向右依次递增为X轴,向下依次递增为Y轴。

代码演示:

#include <stdio.h>
int main()
{printf("\033[2J");//清屏printf("\033[20;14H");//光标移动到(14,20)的位置printf("\033[43;31m");//显示黄色背景,红色字体printf("hello world!\n");printf("\033[?25l");//隐藏光标printf("\033[0m");//关闭所有属性return 0;
}

代码运行结果:
在这里插入图片描述

🍊绘制方格

  俄罗斯方块几乎每个下朋友的童年,应该都经历过。那么我们学习了编程之后,就可以通过编程来构思俄罗斯方块是如何实现的呢?俄罗斯方块的初始状态有下图的7种类型。然后再经过变化得到。
在这里插入图片描述
图形构成
  我们以4 * 4的方格为最大单位,方格中的1个点代表我们的小方块。若是使用到了该坐标点,其值为1,否则为0(以行为单位排列)
以"田"形方块为例:
在这里插入图片描述

1行   第2行    第3行   第4行 
坐标值 = {1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0}
图形距离右侧距离为2
图形距离下侧距离为2

代码类型的设计
图形可以通过三位数组类存储。

int shape[7][4][18];

7代表方块有7种基本的变化形状。
4代表有4个旋转方向(上、下、左、右)
18中的前16个数据代表16个数据点,第十七个代表距离右侧边界距离,第18个数据代表距离下侧边界的距离。

这篇关于实战项目:俄罗斯方块(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127449

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日