对于大学我们应该写一个游戏(语言是 modula2 你知道的机会很小)。每个 tetromino 都是通过一个中心部分和 3 个相关部分定义的,现在当涉及到旋转时,我只需旋转相关块(线性代数)。
我问自己的是如何处理用户在棋子已经“着陆”时所做的旋转,因为用户还有一点时间可以将他的馅饼快速移动到所需的位置,但是在整个网络上的俄罗斯方块版本中,你可以“旋转”其他部分,但我的旋转似乎没有得到它。
我需要旋转哪一块?有指导方针吗?谢谢
如果我正确理解您的问题,则没有正确答案。您是否可以“通过”其他部分取决于您的特定任务的指导方针;可以编写允许它的代码和不允许它的代码。
考虑到俄罗斯方块下落的那个领域是一个矩阵
1)如果你想给用户一点时间来旋转它并使用你的算法
2)如果你想给用户一点时间来旋转它并使用其他算法
首先,您可能想澄清问题中的术语。在第一段中,“一块”似乎是其他人可能称之为“瓷砖”的东西;即,每个四联牌由四个“片”或“牌”组成。但是在段落的末尾,您将其称为“块”。然后,在第二段中,“piece”似乎是“tetromino”的同义词:“the piece has landed”、“move his piece”。所以在你的问题中,你是什么意思?也许“四联牌应该围绕哪个瓷砖旋转?”
如果这确实是您的问题,那么答案是它是由实现定义的。如果您尝试不同版本的游戏,您可能会看到,在某些情况下,“I”块会在您进行两次旋转时左右或上下摆动(旋转图块固定在 tetromino 上),并且在其他则不会(旋转在两个中心图块之间切换,因此 CW 旋转将具有与 CCW 旋转相同的效果)。“S”和“Z”块同样会摆动或不摆动。但是,如果它们不摆动,您可能会发现,当它靠在左边墙上时,它可以旋转,但如果靠在右边,则不能旋转,即使情况应该是对称的。还有方形的,如果你留下一个固定的旋转瓷砖,当您很可能希望它(看起来)根本不旋转时,它将围绕一个角落旋转。我从来没有见过至少不能解决这个问题的实现!