问题标签 [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.

0 投票
3 回答
1150 浏览

c# - 为什么我会收到此 Stack Overflow 异常?

我正在编写俄罗斯方块克隆,这是我真正做过的最大的项目。在实现行删除代码时,我已经开始收到堆栈溢出异常。我认为这可能与我的大量收藏或对 Linq 的低效使用有关。以下是导致问题的具体方法:

如果我能弄清楚如何(如果必须的话,甚至使用单独的站点),我会附上整个源代码。

如果您愿意,我真的不介意有人查看整个代码库并告诉我我写了什么和错误(例如命名约定、算法等)。显然,这不是该网站的用途,但我想我会把它扔进去,因为无论如何我都在攻击代码库。

编辑:这是主游戏文件: http: //pastebin.com/PqVAS56U
这是其余代码: http: //pastebin.com/JjBKZgwN

Edit2:我相信这是一个堆栈跟踪:

0 投票
1 回答
407 浏览

machine-learning - 构建实时游戏玩家模拟器的首选机器学习技术是什么?

我已经着手构建一个学习玩俄罗斯方块的人工智能引擎,即一个可以提高它的性能的引擎,也许通过调整它的启发式等等。假设我已经把 GUI 排除在外——我将从哪里开始构建引擎?作为初学者,我将使用哪些资源来理解其中涉及的机器学习概念?

特别是,我正在寻找基于代码和实际示例的解释性材料,而不是对该主题的数学处理。

0 投票
0 回答
248 浏览

android - android俄罗斯方块中的错误 - getEntry

当时我和一个朋友正在为一个学校项目编写经典游戏俄罗斯方块。我已经编程了一段时间,并且已经实现了旋转和移动块,以及 newBlock、draw 等方法,所以我认为现在可能是第一次运行它的最佳时机。但后来我收到错误消息:

我正在使用一个使用自建视图(surfaceHolder/surfaceView)的线程运行它,使用方法,基本上我正在学习老师的课程,她在那里编写了一个蛇游戏。因此,随着方法的更新,它们对俄罗斯方块来说是正确的,它应该可以工作,但现在我看不到错误。任何人都知道错误消息的含义,如果需要更多信息,只需粘贴问题。

我已经添加了很多 LOG 命令,我只是从 TetrisView (surfaceView) 构造函数和 Thread 中的构造函数中获得了 LOG,所以它永远不会在任何方法中。

0 投票
3 回答
954 浏览

java - 检查俄罗斯方块、Android/Java 的 int 数组中的左/右

我正在尝试为 android 制作俄罗斯方块游戏,以帮助学习 android 的游戏编程。按下按钮时,我的 goLeft/Rights 向右中断,向左移动的代码位于字段 int 数组和列表部分数组分开的类中。字段数组由引用变量 (TetrisWorld tetrisworld;) 访问。虽然零件列表数组是公共的,但可以通过 goLeft() 代码中的变量(零件)代码访问。它在以下位置中断: if(tetrisworld.fields[x][part.y] != 0) 左侧代码:

字段 int 数组的代码:

WORLD_WIDTH 和 WORLD_HEIGHT 都是静态最终整数,宽度为 9,高度为 19

我试过把 if(tetrisworld.fields[0][0] == 0) 和它仍然崩溃,所以我认为它与变量无关。即使我还没有添加代码来检查它也不会超出界限,因为我在 x = 5 附近产生了 teroid 并且因为一旦没有机会我就不能向左/向右走正在发生

我尝试将 goLeft/Right 方法移动到具有“world = TetrisWorld();”的游戏屏幕类 它仍然在同一个地方出错

更新:

好的,只需添加:

对于第一个 if 语句修复它,我现在的问题是,它为什么修复它?为什么没有这张支票我不能搬家?据我所知,这显然不是无效的原因;它现在完全响应。

但是解决这个问题的一种更简单的方法是改变fields为静态......然后像这样访问它:TetrisWorld.fields所以我更新的代码是:

0 投票
3 回答
705 浏览

python - 随机俄罗斯方块形状

我正在尝试编写一个 python 程序,它将随机俄罗斯方块形状绘制到板上。这是我的代码:

我的问题在于“self.current_shape = Board.draw_shape(the_shape)。它说 the_shape 没有定义,但我认为我在 create_new_shape 中定义了它。

0 投票
2 回答
876 浏览

javascript - 试图创建俄罗斯方块,但不能

出于某种原因,我的代码拒绝让我为每个块分配 x 和 y 位置。每个块的宽度和高度为 30 像素,并将根据它所在的部分进行着色。重力和清除功能尚未实现,左移和右移功能如此不同,因为它无法正常工作,然后重新创建它,就像现在在左功能中看到的那样,它的工作量更少......

请帮忙!

编辑:对不起,我通常不发布任何内容。我现在无法通过的部分是功能块/添加块/typeSet/分配类型。它很好地分配了一个随机值,但是当该类型(例如正方形)分配 x 和 y 值时,它会给出错误。

0 投票
1 回答
238 浏览

java - 俄罗斯方块 midlet 属性

上面是我的俄罗斯方块 midlet/J2ME 代码块。但我不知道如何解释这些参数。谁能给我建议?让我知道您是否需要完整的代码才能工作。

这是我的完整代码:

}

0 投票
1 回答
968 浏览

c# - 俄罗斯方块清除线问题

我正在为一个项目制作俄罗斯方块克隆。我几乎完成了,但我的清晰线条课程有一个我无法摆脱的错误。我制作了一个 10*20 的网格,将精灵绘制到其中。当我在地板上找到一条线时,它可以正常工作,但在此之上它只会删除该线并将其下方的所有内容也向下移动。这是我的明线类的代码:

如果有人能阐明该怎么做,我将不胜感激。我已经尝试了很多,但没有任何效果:(

0 投票
4 回答
5487 浏览

java - JFrame中的JPanel

我刚刚开始学习 Java,现在我正在为俄罗斯方块制作 GUI。我想要这样的东西: 1 http://desmond.imageshack.us/Himg846/scaled.php?server=846&filename=tetrisf.png&res=landing

但我得到:
2

编辑:有人可以告诉我如何解决这个问题吗?

它是 TetrisFrame(扩展 JFrame)构造函数的一部分:

它是我的 TetrisPanel 课程的一部分:

0 投票
1 回答
16625 浏览

python - “之后”无限循环:从不进入主循环

这是我的第一篇文章。两个月前,我在考虑转行时开始编码,并且正在研究俄罗斯方块的克隆。我已经实现了大部分核心功能,但无法通过 after 循环让游戏不断刷新。

我正在使用 Tkinter 来制作我的 Gui,并正在尝试面向事件的编程。

我的理解是after(Time, Event)fromTkinter应该安排Event在指定的延迟之后发生的任何回调函数Time。我认为代码应该在此之后继续执行后续项目。

我的帧刷新函数 ( game.updateBoard()) 完成了俄罗斯方块工作所需的大部分事件,然后使用 after 调用自身。我在初始化游戏实例时调用它一次。

mainloop()该函数没有继续执行,而是通过无限期地game.updateboard()调用自身。after

我怀疑它没有表现出我认为after的工作方式,即继续执行脚本直到发生指定的延迟。我认为它正在等待回调终止以继续。

我试图找到这方面的资源,但找不到。

如果您有解决此问题、附加代码或一般编码的建议,我很高兴听到这些建议!这是一个学习过程,我很乐意尝试您提出的任何建议。

这是代码的相关部分: