问题标签 [tetris]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 当检查单元格是否被占用时,CLI/C++ 俄罗斯方块块崩溃 MSVisualStudio 2008
这是我检查未来移动是否合法的代码,我假设它是合法的并将移动复制到 mySquares 数组中。然后我在表单中设置的游戏周期和计时器处理程序中调用此方法,即:
在我的游戏板类中,我有检查 TCell 是否被占用的方法。TGameBoar 拥有一个 TCells 数组,它有一个颜色并且 bool isOccupied = false;
它崩溃并表明这是问题所在,我目前在学校学习 C++。我会很感激一些帮助。我也在为使用 e->KeyData == Keys::Left) 等向左和向右移动而苦苦挣扎,并在通过循环时创建一个新块。如果你想看看,我有我的项目 rar。我已经完成了所有的课程,只是把它放在一起是很难的。
c++ - 在俄罗斯方块游戏 C++ Visual 2008 中调用对象方法的箭头键
我试图使用箭头键来左右移动俄罗斯方块块并旋转,但是当块落下gameGrid时它不起作用。这是我的代码。
//这是我在计时器处理程序中的游戏周期
这是我使用箭头键移动和旋转块的代码,移动方法和旋转方法在 TTetrisBlock 类中。
//现在,当块在计时器上沿游戏网格向下移动时,按下箭头键时不会移动对象。但是如果我将 newBlock->moveLeft() 放入计时器中,该块将开始向左移动。所以我的 moveLeft() 方法正在工作。请帮忙 - 我是一名学习 C++ 的学生。这是我的 moveLeft() 方法:
java - 与控制块速度的俄罗斯方块游戏中的一段代码混淆
来自java写的书的俄罗斯方块程序。我只是不明白为什么要使用这样一段代码来控制块的下降速度以及它是如何工作的。谢谢 !
loopCount 的初始值为 1,如果游戏结束,dropBlock 将返回 false。这部分包含在主循环中。和模式无关。我很抱歉,但我不能在这里查看整个程序。
java - 使用堆栈的类似俄罗斯方块的小程序——从顶部弹出
所以在我的课堂上,我们正在用 Java 编写一个简单的俄罗斯方块,比如小程序。块从屏幕顶部落入 6 个不同的列,每个不同的列是一个堆栈。为了得分,你必须匹配 3 个或更多相同颜色的块,它们在堆栈的最顶部水平相邻。所以只有栈顶可以匹配。如果匹配 3 个或更多块,则必须删除它们(又名 pop()'d off)。您可以将块与相邻块切换到右侧或左侧(从而生成更大的组合)。然而,这是我的问题。我的问题涉及检查 3 个或更多块(彼此相邻)是否颜色匹配。我必须记住的是列数可能会增加。我并不是说程序运行时它会增加,它' s 只是我必须练习适当的技术,并确保我有可能解决这个问题。话虽如此,有一个代表列数的成员变量,恰当地命名为 numCols。
因此,如果有人可以在正确的方向上推动我解决这个问题,请。同样,问题是:能够编写一个方法 removeCombos() 来水平检查一行中的 3 个或更多相同颜色的块(在堆栈顶部)并删除它们。我想自己写代码,所以这里没有提供任何代码。除非您需要查看某些内容,否则我可以提供一些内容,但它与基本堆栈类及其泛型方法 pop()、peek()、contains()、isEmpty() 以及迭代器类一起使用堆栈类。
如果我有任何不清楚的地方,我会提前道歉,并请我在需要的地方澄清一下。非常感谢。
java - java中的旋转字符串数组
我将如何在 java 中为我正在制作的俄罗斯方块游戏旋转字符串数组。例如字符串数组
会成为
我可以使用此代码使用 char 矩阵来做到这一点
c++ - 迭代所有可能的俄罗斯方块形式
可能重复:
编程竞赛问题:计数多米诺骨牌
有不同类型的俄罗斯方块形状。例如在形状像字母T L I Z J O S
。
我正在尝试获得一种可以创建这些块的算法。我正在使用 C++,但伪代码就足够了。任何想法如何解决它或如何描述问题以更好地搜索它?
块是俄罗斯方块形状的最小部分。如果你有 4 个块来创建一个形状,那么只有 7 种可能的形状:
轮换不算。如果你有 3 个块,那么你只能塑造 2 个块:
n
当你有块时存在多少个形状?它们长什么样?
java - 如何在小程序中为俄罗斯方块游戏解决图像
我使用小程序开发俄罗斯方块游戏。我生成了随机形状并使其移动。但我不知道如何让它在底部安定下来。一旦到达屏幕的末端,我的形状就会消失。请在这方面帮助我。这是我的代码。
TIA
ios - 如何从给定的网格生成俄罗斯方块
起初我认为我的问题应该以前被问过,但我没有找到我想要的。
我正在开发的这个 iOS 应用程序的一个元素是将一个 8x8 网格分成俄罗斯方块(每块由 4 个块组成)。我有两个特别的问题是:
在 Objective-C 中表示俄罗斯方块的最佳方式是什么?
什么算法将网格呈现为随机的俄罗斯方块(以及稍后如何检查两个部分是否适合)。
01/28 @livingtech 版,我想我几乎实现了你所说的,除了“有一个洞”这一点。当俄罗斯方块块只有两个块(是的,两个正方形,水平或垂直连接)时,我的代码在简单阶段没有孔,但在 3 方块俄罗斯方块块中,我会得到孔。我刚刚测试过,跑了 1000 次,我会得到一个没有洞的。所以我肯定需要一些机制来检查下一个方块是否是单例。
perl - 用预定义的形状填充网格/矩阵
很高兴看到这个问题有两个赞成票。我现在将重新提出我的问题以避免混淆。
问题是如何用没有孔的随机但预定义的形状填充 mxn 网格/矩阵。预定义的形状有一个变量 k,它是由多少块组成的形状。每个块都是一个正方形,并且与一个网格正方形(即 1x1 网格)大小相同。形状可以旋转以适应网格,但不会缩小或扩大。k 在一轮中不会改变,换句话说,当我运行答案脚本时,m、n 和 k 不会改变。当我第二次运行脚本时,我可能会更改其中的一个或全部。例如,第一次,我可能运行 k=4、m=10 和 n=20 的答案脚本。脚本完成并打印输出。第二次我将 k=3、m=6 和 n=10。我将保证 m 乘以 n 并且乘积调制 k 等于零(mxn % k = 0),以确保它们在数学上相互匹配。好的,还有一个条件:1
该脚本需要使用预设 k 池中的随机形状填充网格。当 k=2 时,预定义的形状只有一种,两个块在一起。如果你认为没有旋转,那么它有两种,水平和垂直。当k=4 时,基本上就是用俄罗斯方块填满了网格,即总共有7 种预定义的形状(每种都可以旋转,并且可以制作~20 种)。k=5 的预定义形状是什么,我还不知道。答案可以计算出来,也可以硬编码,因为不难找到 k=5 的所有形状。
如果解是有限的,则不需要随机数。例如,m=2、n=2、k=4;或 m=1,n=4,k=2。没有其他办法,没有随机性。
网格中的任何地方都不能留下任何孔。我认为,没有经过证明的想法,许多 mxn 和 mxn%k=0 的网格将有一个没有孔的解决方案。直觉上这听起来很合理,但在数学上我不知道。如果 m 或 n 是 k 的倍数,则保证有解(所有直条)。
理想情况下,我希望 k 是一个小整数,例如 k<10,但在 2 到 5 的范围内是可以接受的。如果更简单,我们可以在这里有一个固定的 k,比如 4,因为俄罗斯方块带有众所周知的 7 个形状(ITOLJSZ)。
我正在寻找最好在 Perl 中的解决方案。Python也不错。程序每次运行需要 m、n 和 k。同样,我将让 m,n,k 适合 mxn%k=0。
我自己的努力,我在 Perl 中尝试过,可以解决一些 k=3 的情况,并且由于边缘/角落中的单例(孔)而失败了一些情况。需要一种检查是否有任何块变成单例的好方法。我的文本输出如下所示(m=4,n=9,k=3)。您当然可以使用这种或任何有意义的格式。
我将设置 100 分的赏金(感谢那两个投票,我现在有 107 个声望)来奖励最佳解决方案。
感谢您的输入。
android - 我的 GameView (SurfaceView) 上的 GridView
我有以下问题。
我正在尝试为 Android 编写俄罗斯方块游戏。因此,我需要在 GameView 上放置一个 Grid(一个自编码类,它扩展了 SurfaceVieW)。
不幸的是,我不知道如何在 GameView 上绘制网格。
我已经实现了一个 Grid 类,它设置行和列的宽度和高度。
我的网格课
我的游戏视图类