突然想到一个很有意思的问题,俄罗斯方块有没有保证玩家输掉的出方块的策略

2017-05-27 17:01:09 +08:00
 af463419014
设计一个出方块的策略,让玩家必定输掉

假设:
0.游戏界面是 10*20 的大小(也可以考虑其他大小情况)
2.玩家能看到下一个会出现的方块
3.玩家有足够的时间进行计算,并将方块放到指定的位置
4.假设玩家足够的聪明
5.我们设计的服务器能看到玩家当前游戏界面的游戏情况,并根据当前界面的游戏情况进行计算,指定下下个方块将出什么(因为玩家能看到当前方块和下一个方块,所以服务器只能决定下下个方块)


问题:
0.能不能给服务器设计一种出方块的策略,保证玩家一定输掉游戏
1.如果能,策略是什么,需要多少步
2.如果不能,能证明为什么不能吗
3294 次点击
所在节点    游戏
17 条回复
nirvam
2017-05-27 17:18:29 +08:00
至少有一种:不停出 S 块和 Z 块
https://en.wikipedia.org/wiki/Tetris#End_of_play
Gerhman
2017-05-27 17:59:28 +08:00
@nirvam S 块是什么样的
mokeyjay
2017-05-27 18:02:49 +08:00
sun1991
2017-05-27 18:03:51 +08:00
下落速度越来越快
kolor
2017-05-27 18:03:58 +08:00
口口口


口口口

@Gerhman 见过这种类型的方块吗
kolor
2017-05-27 18:04:31 +08:00
@kolor 咦,空格被自动缩进了
Gerhman
2017-05-27 18:05:10 +08:00
@kolor 没 但这是 C 型的啊
hu6360567
2017-05-27 18:06:41 +08:00
之前读过相关文章,在标准的俄罗斯方块中只有所有的都是田字方块是唯一已知无解的方案
whileFalse
2017-05-27 21:54:23 +08:00
@hu6360567 俄罗斯方块的屏幕是几行几列?
af463419014
2017-05-27 22:58:51 +08:00
@hu6360567 对哦,要是底边不是 10,而是 11 或者 15 这样的奇数,全田字确实无解
af463419014
2017-05-27 23:00:02 +08:00
@nirvam 这个连接里的好像很有道理,不过我表示英语不好,读起来亚历山大
af463419014
2017-05-27 23:02:04 +08:00
@sun1991 假设玩家有足够的时间思考并放到指定的位置
所以不考虑下落的速度,只考虑方块如何拼接
考虑下落速度这个问题就没意思了
8023
2017-05-28 10:14:10 +08:00
1. 不断出 s 块,直到出现循环
2. 出 s 块,出 z 块
3. 不断出 z 块,直到出现循环
4. 出 z 块,出 s 块
5. 重复以上步骤
nirvam
2017-05-31 14:40:59 +08:00
@af463419014

这是 S 块:
_oo
_o_
oo_

这是 Z 块:
oo_
_o_
_oo

至于策略,就像 @8023 说的,不停地连续出 S 或者 Z,或者两者交替。

如果是完全均匀的随机数发生器来产生块的话,理论上玩家总是会遇到特定的序列包含一连串 SZ,所以这种情况下玩家是必遇到 game over 的。所以常规的 Tetris 实现采用的随机数发生器是调整过的,确保不会出现大量连续的 S 和 Z。当然也有“邪恶版”一出来先给你一堆 SZ 来增加难度。
nirvam
2017-05-31 14:44:20 +08:00
@Gerhman 不是哦,第一,这个依赖于屏宽是奇数,然而大多数标准 Tetris 屏是 10 宽的:
"the playfield is 10 cells wide and at least 22 cells high, with the topmost two hidden" -
http://tetris.wikia.com/wiki/Tetris_Guideline

第二,只出现 S 和 Z 块也能玩死玩家的,因为单凭这两种块必定会产生无法填补的洞。
8023
2017-05-31 15:27:49 +08:00
@nirvam
应该是

Z:
x x _
_ x x

S:
_ x x
x x _

吧?
nirvam
2017-05-31 16:58:13 +08:00
@8023 啊啊,对的。我说的那个应该算是扩展包了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/364281

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX