问题标签 [2048]
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.
python - 只有在使用 Selenium 自动播放 2048 时才会向下移动
我正在尝试按照 Automate the Boring Stuff 中的指示使用 Selenium 自动播放 2048。
但是无论我向 send_keys() 发送什么参数,每一步都是 DOWN 的。
这是代码:
发送到 game.send_keys() 的参数对于每一步都是不同的(上 > 右 > 下 > 左 > 上)。
但游戏中的实际结果每次总是在向下移动。
经过几次尝试,我将“控制”字典更改为:
并且问题解决了...
我只是想知道是什么导致了这个问题,以及为什么它总是向下移动,因为参数都是不同的。
多谢你们。
- - - - - - - - - - - - - - - - - 编辑 - - - - - - - - -----------------
这里的问题是我向 send_keys() 发送字符串,而不是密钥,正如 Iain Shelvington(谢谢队友)所回答的那样。
为什么游戏总是向下移动?
因为 2048 也可以通过 W,D,S,A 而不是 UP, LEFT, DOWN, 和 RIGHT 来控制,所以游戏将逐个字母地接收来自字符串“Keys.UP”的命令。
“K”、“e”和“y”对游戏没有任何意义,但“s”会使积木下降。
因此,所有字符串都以“Keys”开头。将引导游戏进入DOWN状态。
javascript - 如何存储 2048 游戏的数字
我一直在尝试实现游戏 2048。
我可以在网格的随机位置添加数字,也可以将它们滑到一边,因为这就是console.log
向我展示的内容。
但不知何故,我无法保持幻灯片的效果。每当我key
再次调用时,这些行就像以前的幻灯片没有效果一样。
java - 2048游戏移动辅助java
我开始制作这个非常简单的 2048 游戏,没有图形和东西(只有数组),并制作了棋盘:
现在,我想制作功能来检查相邻的地方是否为空白,或者如果它们是相同的数字则添加等;但我必须让他们在另一个班级。我可能可以使用函数来检查所有这些,但是有人可以告诉我如何在不同的类中实现所有这些吗?
我已经尝试过这样做,但是我希望用户输入游戏板的大小,而我不能这样做,就好像我要创建一个必须写的新课程一样
我不想定义尺寸,但如果我不这样做,我就无法定义我的运动功能......有什么想法吗?
javascript - 如何实现 2048 的合并功能
我正在尝试使用 JavaScript实现游戏 2048 。我正在使用二维数组来表示板。对于每一行,它使用一个整数数组来表示。
在这里,我专注于实现左合并功能,即在用户敲击键盘左键后发生的合并。
这是我想出的一组测试用例
注释部分是发生后的预期结果merge left
。
这是我的尝试
所以这里的想法是我合并了数组,然后将非零项向左移动。
对于这种特殊情况,我当前的解决方案是错误的-当数组是时[2, 2, 2, 2]
,输出是[4,2,2,0]
预期输出时[4,4,0,0]
我知道我的实现也不优雅。所以我很想看看如何以(更好)的方式实现这一点。
顺便说一句,我在代码审查堆栈交换中发现了一个似乎正在工作的 python 实现。但是,我并不真正了解 Python,也不了解函数式编程范式。如果有人可以看看它,看看它是否可以翻译成 JavaScript,我将不胜感激
java - 无法将 1d 数组传递给方法,因为有 2d 数组参数
我无法将一维数组传递给该方法,因为有一个二维数组参数。我无法删除 2d 数组参数,因为我的 2048 游戏板在该 2d 数组板主题上运行。有解决方法吗?我希望在tempslideUp
上工作并仍然保留我的 2d 数组参数板。
错误代码:不兼容的类型:int[] 无法转换为 int[][] slideUp(temp);
python - 如何在python中运行其他代码时在后台运行循环
我有一个(有点)播放 2048 的 python 脚本。它的工作方式是向左按下,检测是否有变化,如果没有(也就是移动不起作用)它按下,如果这不起作用,它会按下,等等。如果有变化,它会继续下一步。
同时,我希望它不断检查用户是否按esc
,如果是,则结束程序。这样你就可以随时结束它。
这是检查的代码esc
:
这是进行移动的代码:
顺便说一句,我知道我可以通过从网站上抓取代码来更简单地做到这一点,但我想挑战自己并且几乎完全通过图像来做到这一点。
java - 为什么我的 2048 风格的游戏在 128 之后就停止工作了?
为了好玩,我正在制作一个 2048 风格的组合显示程序。每个外循环,它都会将 2 添加到整数数组列表的 0 索引。在一个内部的for循环中,它检查索引的值是否与它上面的索引的值相同;如果是,则将 indexi+1 的值加倍并删除索引 i。
前几个循环的输出工作正常。但是,一旦我们到达第一个 128,它仍然有效,但是下一次我们得到 128 时,它不会将它们组合成 256,它只是将两个 128 留在数组的末尾。
我认为问题与不再将 128 识别为等于 128 的代码有关,因为当它应该进入该 if 语句时,它会跳过该 if 语句,但我不确定。
它目前无限循环;添加用户交互和退出语句将稍后提供。
代码
输出
请注意,两个 64 组合成第二个 128,但是这些128 并没有按应有的方式组合。
整数在一定大小后会停止正确比较吗?
python - 反复听键盘并根据Bottle中按下的键显示变化
我正在为Bottle中的2048游戏编写代码。我正在尝试重复执行以下过程,直到游戏结束:
首先,我想用我的 HTML 模板显示当前网格,然后听键盘(我一直在尝试用 pygame 来做),然后根据按下的键更改网格。
我知道如何使用 POST 方法,但如果我使用 POST,我需要必须按下按钮才能知道应该以何种方式更改网格。我想避免使用按钮,并且我希望我的程序仅通过听键盘来工作。
有谁知道我怎样才能在瓶子中实现这样的循环?(我必须使用Bottle,因为它是用于学校项目的,我们必须使用Bottle)。
java - 让 2048 游戏更快
有没有办法让我的 2048 游戏运行得更快?
我做了一个称为高速模式的设置,如果移动速度非常快,我会跳过生成、组合和移动动画,但是即使这样,当我同时发送一堆按键时,我仍然通常落后一两个动作.
现在我有一个 tilePanel 类来处理显示我的图块,并使用带有paintComponent(不断绘制图块)的计时器(非常基本的代码)来确保它不断更新板。
我构建游戏的方式是我有一个命令的 ArrayList(即按右键将“右”添加到 arraylist,最终 arraylist 到达并执行)我收到以确保它总是移动,在执行序列中的下一步移动之前生成。
为了确保董事会不断自我更新,我做了一个非常基本的运行线程:
减少方法调用是否会产生足够明显的差异,以至于在我按下键后操作会立即完成,或者是绘制板的 tilePanel 类中的问题?
多谢你们