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

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

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小