java rotateright_Java Tetris旋转
我知道有人问过很多,但我想知道如何旋转俄罗斯方块?
我已经做了一个漫长而糟糕的解决方案(约170行代码),但是应该有更简单的方法可以做到这一点.
我的俄罗斯方块碎片由4个块组成,这些块都知道它们在矩阵中的位置(行和列).矩阵本身是char类型的,因此4个块都是字母.例如:
......
..T...
.TTT..
......
我试图通过计数中间的行和列并将其用作origo来将矩阵模拟为坐标系,然后尝试应用这个发现的简单算法:
90度旋转(x,y)=(-y,x)
看来,只有当我的作品在矩阵的中心时,它才起作用.我不知道该怎么办,我整天都在想.这是我的方法:
public void rotatePiece(ArrayList random) {
int distance = 0; // how far is the origo
for (int i=0; i < 4; ++i)
board[random.get(i).getRow()][random.get(i).getColumn()] = '.'; // erases the current location of the piece
for (int i=0; i < 4; ++i) {
distance = Math.abs(random.get(i).getColumn()-middleColumn);
if (random.get(i).getColumn() < middleColumn)
random.get(i).setColumn(random.get(i).getColumn()+(distance*2)); // "throws" the location of the block to the other side of the origo
else
random.get(i).setColumn(random.get(i).getColumn()-(distance*2));
int help = random.get(i).getColumn();
random.get(i).setColumn(random.get(i).getRow()); // (x, y) = (-y, x)
random.get(i).setRow(help);
}
for (int i=0; i < 4; ++i)
board[random.get(i).getRow()][random.get(i).getColumn()] = random.get(0).getStyle(); // saves the new location of the piece in the matrix
java rotateright_Java Tetris旋转相关推荐
- java tetris_Java | Tetris
基于 Java-Swing 实现俄罗斯方块 Preview 普通模式: 加速模式: 设计思路 方块的属性 方块表示: 由四维数组 SHAPE[][][][] 表示7种方块及每种方块的4种翻转状态. 由 ...
- java 某点 旋转_java-如何围绕某个点旋转顶点?
java-如何围绕某个点旋转顶点? 想象一下,您在2d空间中有两个点,您需要将其中一个点旋转X度,另一个点作为中心. float distX = Math.abs( centerX -point2X ...
- java swing 图片旋转_Java图片旋转,背景透明化
import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.Buffere ...
- java web图片旋转_修正web项目中图片旋转方向
# 使用 imagemagick 旋转 查看照片 EXIF 信息,Exif 中的图片旋转信息储存在``Orientation``中. ``` identify -verbose xxx.jpg ``` ...
- java生成pdf旋转_基于Java实现PDF文本旋转倾斜
本文介绍通过Java程序在PDF文档中设置文本旋转.倾斜的方法.设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform( ...
- Java苹果手机缩略图旋转_【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)...
正版现货ruby on rails教程水手册 87.9元 包邮 (需用券) 去购买 > 1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么 ...
- Aspose.PSD使用教程:使用 Java 裁剪或旋转 PSD 图像
目录 使用 Java 使用 Shift 方法裁剪 PSD 图像 在 Java 中使用矩形坐标裁剪 PSD 图像 使用 Java 以任意角度旋转 PSD 图像 PSD图像文件用于为徽标.横幅.小册子和许 ...
- java 文字水印 旋转_【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)...
1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏 ...
- Java苹果手机缩略图旋转_Java实例使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)...
1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏 ...
最新文章
- pythonurllib模块-Python3中核心模块urllib的用法大全
- 【收藏】Harbor私有仓库中如何彻底删除镜像释放存储空间:vmware/registry:2.6.2-photon进行垃圾回收
- boost::signals2::signal_type相关的测试程序
- docker自定义端口挂载目录
- cpu system linux,LINUX system BOOT
- linux 备份iphone,用linux搭建Mac备份服务器,伪TimeCapsule
- Unity3D笔记 愤怒的小鸟四 实现Selelction界面
- 面试:C++实现访问者模式
- linux多线程如何分配到多核上,Linux多线程编程 多核编程
- PSP3000/2000V3用5.03-GEN-C系统安装使用教程
- windows服务器重装教程,Win10系统怎么重装?Win10系统重装教程
- 51最小系统原理图 PCB
- Azkaban学习之路
- linux输入法中文输入法,RHEL7配置中文输入法-智能拼音
- 戴尔计算机管理界面在哪里,戴尔 win10系统控制面板如何打开?
- python中sub的用法_Python Pandas Series.sub()用法及代码示例
- [No00005F]读书与心智
- ext4解包和重新打包
- Jetson TX2内存/显存
- 5个APP,4220个数据,回顾Yura的2018年
热门文章
- PgMP: Program Management Professional Exam Study Guide
- 恒源云GPU登录Linux实例使用记录
- 一只程序员的成长与思考
- 纯CSS实现对话气泡(MD.5)
- 1003【顺序结构】A+B 问题
- 基于高光谱成像的苹果虫害检测特征向量的选取
- 微信授权登录(微信订阅号使用测试账号)
- 职场打拼小妙招,建议你们收藏使用!
- 电子产品使用感受之--小米床头灯第二代使用体验分享
- ssh_exchange_identification: read: Connection reset by peer