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

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

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

文章目录

  • 🍊自我介绍
  • 🍊按键控制方块
    • 函数介绍
      • 获取当前时间函数
      • 生成随机数种子
      • 生成随机数函数
      • 示例用法
    • 方块图形方向功能设置
      • 生成随机图案
      • 擦除图形
      • 改变图形
      • 左移动
      • 右移动
      • 下移动


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


🍊自我介绍

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


🍊按键控制方块

  在真正介绍之前,我们先认识一些随机函数的知识。

函数介绍

获取当前时间函数

#include <stdio.h>time_t time(time_t *tloc);
功能:获得从1970年到现在的秒数一般用法:
time_t t = time(NULL);

生成随机数种子

void srandom(unsigned int seed);功能:srandom设置产生一系列伪随机数发生器的起始点,一般常用时间作为起始点。生成随机数种子。参数:seed : 随机数产生器的初始值(种子值)。

生成随机数函数

long int random();
功能:会随机生成一个位于0 - RAND_MAX 之间的整数。
RAND_MAX 是<stdlib.h> 头文件中的一个宏,它用来指明 rand()所能返回的随机数的最大值。
不同系统RAND_MAX 的值不同。linux中它的值是16 * ((2^31)-1)

示例用法

#include <stdio.h>
#include <time.h>
#include <stdlib.h>int main()
{//产生随机数种子srandom((unsigned int)time(NULL));//生成10个随机数,[0,200)for(i = 0;i < 10;i++){k = random() % 200;//这样生成的数就在0-200之间了printf("k = %d\n",k);}return 0;}

方块图形方向功能设置

生成随机图案

int n_x = 6;
int n_y = 6;
int n_num;//图形选择
int n_mode;//图形变化形态选择
int n_color;//图形颜色void init_shape()
{srandom(time(NULL));n_num = random() % 7;   //随机生成图形n_mode = random() % 4;  //随机生成图形状态n_color = random() % 7 + 40;//随机生成图形颜色//在指定位置输出图形printf_mode_shape(n_num,n_mode,n_x,n_y,n_color);fflush(NULL);//刷新缓存
}

擦除图形

void eraser_shape(int n,int m,int x,int y)
{int i = 0;int xx = x;int yy = y;for(i = 0;i < 16;i++){if(i != 0 && i % 4 ==0){yy++;xx = x;}if(shape[n][m][i] == 1){printf("\033[%d;%dH  \033[0m",yy,xx);}//[]占两个坐标点的位置xx += 2;}fflush(NULL);
}

改变图形

int change_shape()
{int m = (n_mode + 1) % 4;//生成一个新的形状eraser_shape(n_num,n_mode,n_x,n_y);n_mode = m;print_mode_shape(n_num,n_mode,n_x,n_y,n_color);return 0;
}

左移动

int move_left(int n_num,int n_mode)
{//消除原有图形,左移一个单位重新绘制eraser_shape(n_num,n_mode,n_x,n_y);n_x -= 2;print_mode_shape(n_num,n_mode,n_x,n_y,n_color);return 0;
}

右移动

int move_right(int n_num,int n_mode)
{//消除原有图形,右移一个单位重新绘制eraser_shape(n_num,n_mode,n_x,n_y);n_x += 2;print_mode_shape(n_num,n_mode,n_x,n_y,n_color);return 0;
}

下移动

int move_down(int n_num,int n_mode)
{//消除原有图形,下移一个单位重新绘制eraser_shape(n_num,n_mode,n_x,n_y);n_y += 2;print_mode_shape(n_num,n_mode,n_x,n_y,n_color);return 0;
}

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



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

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免