java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,// 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵private fin
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 01:56:06
![java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,// 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵private fin](/uploads/image/z/6999978-66-8.jpg?t=java%E7%89%88%E7%9A%84%E4%BF%84%E7%BD%97%E6%96%AF%E6%96%B9%E5%9D%97%E9%97%AE%E9%A2%98.%E5%AE%9A%E4%B9%89%E6%96%B9%E5%9D%97%E7%9A%84%E5%BD%A2%E7%8A%B6%E9%82%A3%E4%B8%AA%E6%95%B0%E7%BB%84%E5%92%8C%E7%94%9F%E6%88%90%E6%96%B0%E6%96%B9%E5%9D%97%E7%9A%84%E6%96%B9%E6%B3%95%E6%B2%A1%E7%9C%8B%E6%87%82%2C%2F%2F+%E6%96%B9%E5%9D%97%E7%9A%84%E5%BD%A2%E7%8A%B6+%E7%AC%AC%E4%B8%80%E7%BB%84%E4%BB%A3%E8%A1%A8%E6%96%B9%E5%9D%97%E7%B1%BB%E5%9E%8B%E6%9C%89S%E3%80%81Z%E3%80%81L%E3%80%81J%E3%80%81I%E3%80%81O%E3%80%81T+7%E7%A7%8D+%E7%AC%AC%E4%BA%8C%E7%BB%84+%E4%BB%A3%E8%A1%A8%E6%97%8B%E8%BD%AC%E5%87%A0%E6%AC%A1+%E7%AC%AC%E4%B8%89%E5%9B%9B%E7%BB%84%E4%B8%BA+%E6%96%B9%E5%9D%97%E7%9F%A9%E9%98%B5private+fin)
java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,// 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵private fin
java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,
// 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵
private final int shapes[][][] = new int[][][] {
// i
{ { 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 },
{ 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 } },
// s
{ { 0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0 },
{ 0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0 },
{ 1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0 } },
// z
{ { 1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0 },
{ 1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0 } },
// j
{ { 0,1,0,0,0,1,0,0,1,1,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,0 },
{ 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0 } },
// o
{ { 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
{ 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
{ 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 },
{ 1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 } },
// l
{ { 1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0 },
{ 1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0 },
{ 1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0 },
{ 0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0 } },
// t
{ { 0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0 },
{ 1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0 } }
};
// 生成新方块的方法
public void newblock() {
blockType = (int) (Math.random() * 1000) % 7;
turnState = (int) (Math.random() * 1000) % 4;
x = 4;
y = 0;
if (gameover(x,y) == 1) {
newmap();
drawwall();
score = 0;
JOptionPane.showMessageDialog(null,"GAME OVER");
}
}
java版的俄罗斯方块问题.定义方块的形状那个数组和生成新方块的方法没看懂,// 方块的形状 第一组代表方块类型有S、Z、L、J、I、O、T 7种 第二组 代表旋转几次 第三四组为 方块矩阵private fin
/** 定义方块的形状那个数组和生成新方块的方法没看懂 */
下面这个是(三维数据)shapes中的一个二维元素
//i
{ { 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 },
{ 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 },
{ 0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0 } },
第一行{ 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 } 画出的图形为:(0代表&,1代表O)
& & & &
O O O O
& & & &
& & & &
第二行{0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0}
& O & &
& O & &
& O & &
& O & &
从上面两个你应该就可以看出这个数组存储各种方块的方式了.
blockType = (int) (Math.random() * 1000) % 7;
turnState = (int) (Math.random() * 1000) % 4;
这里取的7和4的原因是这个三维数组的两个维度的大小是7和4,7种类型的图形,和每个图形的4种形态
反映到数组上就是
newShape[] = shapes[blockType][State] ;