俄罗斯方块积木表示

积木表示

一种有7种积木:

■ ■

■■ ■■ ■■ ■■

■ ■■ ■ ■■ (正反两种)

■ ■■

■ ■■■ ■ ■

■■ ■ ■ ■■■

■ ■■

■ ■ ■ ■■■

■■ ■■■ ■ ■

■■

■■

■ ■■■■

■ ■ ■

■■■ ■■ ■■■ ■■ (共计19件积木)

■ ■ ■

可以用一个三维数组block[4][4][4]来表示每个积木,第一维用于表示积木的四种旋转状态,后两维用4x4的0/1数字阵来表示这几种积森的形状,如:

{

{

{0, 0, 1, 0},

{0, 0, 1, 0},

{0, 1, 1, 0},

{0, 0, 0, 0}

},

{

{0, 0, 0, 0},

{0, 1, 0, 0},

{0, 1, 1, 1},

{0, 0, 0, 0}

},

{

{0, 0, 0, 0},

{0, 1, 1, 0},

{0, 1, 0, 0},

{0, 1, 0, 0}

},

{

{0, 0, 0, 0},

{1, 1, 1, 0},

{0, 0, 1, 0},

{0, 0, 0, 0}

}

}//这是L形的积木

一字形和Z形的还有田字的积木也按4种状态来做,只不过状态有重复而已,这样就不用为不同的积木用不同的旋转方法了

积木的变形

积木的变形很好做,就是循环把相当积木矩阵中的旋转状态读出来

比如当前积木是block [4][4],假设丁字形积木的数组为block2[4][4][4],那么旋转就是将block2[0],block[1],block[2],block[3]…->block[0]循环赋给block数组。每旋转一次当前旋转值(即数组的索引,范围为{0,1,2,3})加一,如果等于4,则重新归0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

决策树会有哪些特性?

决策树(Decision Tree)是机器学习中最常见的算法, 因为决策树的结果简单,容易理解, 因此应用超级广泛, 但是机器学习的专家们在设计决策树的时候会考...

38870
来自专栏Deep learning进阶路

OpenCV 学习日记(三)--- 常见数据类型

OpenCV基本数据类型: CvPoint,这些结构中最简单的一个,包含两个整型变量x和y。 CvPoint还有两个兄弟:CvPoint2D32f 和 CvPo...

24700
来自专栏人工智能

人工智能AI(5):线性代数之矩阵、线性空间

在前面的篇幅中,我们简单的介绍过矩阵的定义,按照原计划本来,今天准备写特征分解以及奇异值分解,但是发现这其中涉及到比较多的矩阵相关的知识,所以在讨论这些问题之前...

31250
来自专栏chenjx85的技术专栏

leetcode-887-三维形体投影面积

在 N * N 的网格中,我们放置了一些与 x,y,z 三轴对齐的 1 * 1 * 1 立方体。

13420
来自专栏书山有路勤为径

CNN层和特征可视化VGG-16

CNN由处理视觉信息的层组成。CNN首先接收输入图像,然后将其传递通过这些层。有几种不同类型的层:最常用的层:卷积,池化和完全连接的层。 首先,让我们来看看完...

1.9K20
来自专栏null的专栏

机器学习算法实现解析——libFM之libFM的训练过程概述

本节主要介绍的是libFM源码分析的第四部分——libFM的训练。 FM模型的训练是FM模型的核心的部分。 4.1、libFM中训练过程的实现 在FM模型的训练...

536110
来自专栏文武兼修ing——机器学习与IC设计

基于sklearn的决策树分类器理论基础代码实现

理论基础 决策树 决策树是一种树形结构的机器学习算法,所有的样本起始于根节点,每个具有子节点的父节点都有一个判断,根据判断结果将样本向子节点分流,测试样本从根节...

47280
来自专栏人工智能

十五:多层感知机与布尔函数

今天没有别的话,好好学习,多多转发! 本期内容是 【多层感知机与布尔函数】 场景描述 神经网络概念的诞生很大程度上受到了神经科学的启发。生物学研究表明,大脑皮层...

33680
来自专栏来自地球男人的部落格

Seq2Seq模型

前言: 此文翻译自TensorFlow tutorial: Sequence-to-Sequence Models 本文的尽量在做到意思正确的情况下,做到不...

369100
来自专栏吉浦迅科技

DAY18:阅读纹理内存之Layered Textures

18940

扫码关注云+社区

领取腾讯云代金券