问题标签 [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 投票
2 回答
383 浏览

java - “void 是变量paintSquare 的无效类型”错误

我正在为我的 AP Comp Sci 课程制作一个名为“Titris”的俄罗斯方块克隆,并且在经历任何错误时,我得到了这个。它来自这段代码

private void paintSquare(Graphics g1, int x, int y) { Color color = matrix[y][x]; int xMin = x * squareSize.width; int yMin = y * squareSize.height; int xMax = xMin + squareSize.width - 1; int yMax = yMin + squareSize.height - 1; int i; bufferRect.x = xMin; bufferRect.y = yMin; bufferRect.width = squareSize.width; bufferRect.height = squareSize.height; if (!bufferRect.intersects(g1.getClipBounds())) { return; }

错误来自paintSquare

请帮忙,这个项目很快就要到期了,我不知道该怎么处理这个错误。

0 投票
0 回答
74 浏览

python - Pygame 数组分配错误

我正在研究俄罗斯方块克隆,实际上一切都已完成,但我遇到了一个我不知道如何修复的错误。我花了几天时间无济于事。

发生的情况是,在播放一段时间后,一个棋子会降落并填满它上面的所有方格,一直到顶部。你可以在这张图片中看到我的意思:

在此处输入图像描述

我已将问题缩小到以下几行:

setDead(row,col,val)设置array[row][col] = val在我拥有的二维数组中。

在这些行之前一切正常,但在这些行之后添加了额外的方块。这些行应该做的是从块阵列复制到板上。

正如我所说,我将非常感谢一些帮助,我已经花了几个小时。

dead_blocks 是我存储所有死块的二维数组

这是一些控制台输出,这些是之前dead_blocks[row][col] = val和之后的打印语句。看起来在第一次分配时,它将列中它上面的所有块设置为相同的值。

控制台输出

如您所见,仅dead_blocks[8][3]应设置为,2但从dead_blocks[8][3]to的正方形dead_blocks[0][3]都设置为2

0 投票
0 回答
3385 浏览

java - 了解俄罗斯方块的 Java 代码

首先,我们完全清楚,一年前我也上过 Java 课程。我有基础,但很生疏。我尝试自己编写俄罗斯方块,但卡住了几天,所以我决定查找一个教程。我在http://zetcode.com/tutorials/javagamestutorial/tetris/上查看了“教程”,但它几乎不是教程,而只是代码。所以,为了帮助自己更好地理解它,为了编写我自己的俄罗斯方块,我拿了代码,简化了它,改变了一两件事,并且我觉得每一行都写了注释。

我只是在找人来确认代码是否真的在做我认为它正在做的事情。更具体地说,使用枚举部分、旋转和随机方法。谢谢你的任何时间,我知道我咬得比我能咀嚼的还要多,但是通过查找许多教程和视频并阅读我的 Java 书籍,我已经学到了很多东西,我现在不想停下来.

这是代码,感谢您的帮助:

0 投票
1 回答
1248 浏览

c# - 拼音。加速 Console.Write();

我正在编写 ac# 控制台俄罗斯方块游戏。一旦我到达应用程序准备就绪的部分。我到了必须解决滞后的部分。我是这样写的:

所以当一个新的块来了/我想移动一些东西:

blokk 在哪里:

我找到了一种更快地“写入”控制台的方法:

(此代码打印出 AZ 中的所有字符)。所以最后的问题是: 我如何修改这段代码以利用它?

提前致谢。祝你今天过得愉快。

编辑: 我找到了一种方法,但它给了我错误的文本。有任何想法吗?

它给了我这个: 1 什么时候应该给我这个: 2

(如果有人想知道,它是用匈牙利语写的)

0 投票
1 回答
236 浏览

c# - (C#) 俄罗斯方块移动时的错误

只是事先给大家做个说明。这是我第一次上编程课,所以当我什么都不懂的时候请多多包涵。

基本上,对于我的课程期末项目,我决定在 c# (visual studio) 中重新创建俄罗斯方块。听起来很容易对吧?出色地....

现在的问题在于移动块。它会移动,但是,当它被移动时会出现问题。当您将其移到右侧时,该块会消失。

这是手头的方法:

免责声明:我一直在向我的教授寻求帮助,所以移动代码都是他写的。我最初有它,初始数组将其内容移动到另一个数组中,但是他重写了我的代码,使其只是一个 3d 数组,具有一个维度来测量块是否被种植。

我已经查看了堆栈溢出,但其中很多都使用了我以前从未真正学过的代码,我的教授也告诉我不要使用堆栈溢出,但我无能为力,因为我被卡住了。

感谢所有可能的帮助!

0 投票
1 回答
469 浏览

java - 二维数组复制 (JAVA)

第一次在这里发帖。短篇小说,我不得不用Java制作一个俄罗斯方块游戏,它运行良好,但在优化方面存在一些问题(我这个学期才开始编程)。

当我与老师讨论游戏时,他指出我在一行满时有不必要的代码,我不得不删除/移动这些行。

我目前没有确切的代码,但大致如下:

老师说在2里没用,我应该干脆做

但是在我做出改变之后,游戏错误非常严重。根据我的研究,这样做似乎会使数组指向同一个“对象”(在这种情况下是一个 int),而不是简单地复制元素。所以我问是否有人可以更深入地分析并帮助这个解决方案/另一个

0 投票
1 回答
947 浏览

c++ - 俄罗斯方块旋转 C++

我现在正在用 Qt C++ 编写俄罗斯方块。游戏快完成了,我唯一需要添加的是轮换。现在我正在努力解决的是旋转背后的理论。俄罗斯方块有 7 种不同的石头(I、S、Z、L、J、T、O)。不同形状的旋转是否有任何算法或类似的东西?

我不想做的是有一个用于 7 种不同形状的开关盒来处理旋转。此外,如果像 L 这样的形状被旋转,它有 4 个不同的位置,必须以不同的方式处理。

所以我唯一想到的就是询问形状,然后询问位置。这将授予我一些开关,否则如果在开关中...意味着要键入很多内容并检查编译器。

PS我的石头结构看起来像这样:(Steine =德国石头,艺术=形状)

0 投票
0 回答
470 浏览

javascript - 什么可能导致游戏循环在随机时间崩溃?

我正在开发一个项目,我正在使用 Javascript 编写要在浏览器中播放的游戏俄罗斯方块。我遇到了游戏停止工作的问题。它不会给出任何错误消息。就好像游戏在随机时间(通常大约 30 秒)后自行暂停,之后什么也没有发生。

我正在使用游戏循环来管理游戏。这是管理游戏的最高级别代码部分。

我的第一直觉说,在运行了一段时间后,不断调用 GameTick 函数的新迭代,堆栈空间不足,但我不知道这是否正确。感谢您的帮助,我很乐意澄清任何没有意义的事情。我知道我没有给你太多继续,但我不确定除了发布整个游戏代码(很长)之外还有什么帮助。

编辑:我正在按要求发布我的渲染和更新功能

0 投票
2 回答
1147 浏览

java - Tetris Shape Generation Algorithm in Java

I'm building a Tetris game in Java using some software design patterns. Basically, I created a factory algorithm that retrieves a string to figure out what type of tetris object to make when it's given a request by the main game loop, see code:

If you don't know what gc is, it's simply a part of Slick 2D's library and is used to work with the full game environment. Anyways, I created a few other methods to randomly generate a shape for the game (such that the main game loop receives a random shape every time, but I feel like RNG doesn't cut it, I want to make it harder. I noticed there's a famous tetris algorithm called Bastet tetris, but it didn't make sense to me. Any suggestions you guys have for making a HARD tetris shape generation algorithm? Here's my simple RNG algorithm:

0 投票
1 回答
1867 浏览

c++ - 如何使用 gotoxy 函数而不是 clrscr

做第一个项目,它是俄罗斯方块;现在我正在做动画部分,但是我在清除屏幕时遇到了问题,我尝试过:

它有效,但它一直在闪烁屏幕,有没有办法使用gotoxy功能而不是出于clrscr相同的目的?

我在 Visual Studio 2008 上使用 Windows 控制台系统 32。