大家在玩俄罗斯方块的时候有没有想过这样一个问题:如果玩家足够牛B的话,是不是永远也不可能玩死?换句话说,假设你是万恶的游戏机,你打算害死你 面前的玩家;你知道任意时刻游戏的状态,并可以有针对性地给出一些明显不合适的方块,尽量迫使玩家面对最坏情况。那么,你有没有一种算法能保证害死玩家, 或者玩家无论如何都存在一种必胜策略呢?注意,俄罗斯方块的游戏区域是一个宽为10,高为20的矩形,并且玩家可以预先看到下一个给出的方块是什么。在设 计策略时,你必需考虑到这一点。

相信很多人有过这样的经历:玩俄罗斯方块时一开局就给你一个“S”型方块,让完美主义者感到异常别扭;结果,第二个方块还是这个“S”,第 三个方块依旧是“S”,相当令人崩溃。于是,我们开始猜测,如果游戏机给你无穷个“S”形方块,玩家是不是就没有解了?答案是否定的。如图1,从第10步 开始,整个局面产生一个循环;只要机器给的一直都是“S”方块,玩家可以不断重复这几个步骤,保证永远也死不了。

不过,这个循环是在游戏场地清空了的情况下才产生的。有人会进一步想了,要是在玩着玩着,看着你局势不好时突然给你无穷多个“S”方块呢?事实上,此时局面的循环依然可能存在,如图2。在第5个“S”形方块落地后,循环再次产生。

俄罗斯方块可以永无止境地玩下去吗?相关推荐

  1. [Unity小项目]俄罗斯方块

    Unity实现俄罗斯方块 Demo: 使用方法: 安卓手机: 直接点击游戏界面按钮 Editor: 直接点击play 开发环境: Unity2018.1 部分实现介绍 UI界面使用的MVC架构 Vie ...

  2. 一本书的推荐序——写在《思考的乐趣》即将上市之际

    有关对<思考的乐趣:matrix67数学笔记>一书作者顾森,想必大家不会太陌生,大家可以参考一下我们这篇访谈"Matrix67的Aha!Moment",今天看到本书的两 ...

  3. 基于 HTML5 的 WebGL 3D 版俄罗斯方块

    前言 摘要:2D 的俄罗斯方块已经被人玩烂了,突发奇想就做了个 3D 的游戏机,用来玩俄罗斯方块...实现的基本想法是先在 2D 上实现俄罗斯方块小游戏,然后使用 3D 建模功能创建一个 3D 街机模 ...

  4. 小伙用C++技术实现3D俄罗斯方块游戏,3D元素让人耳目一新

    3d俄罗斯方块很好玩,也是很经典的,可以算是最经典的游戏了.现在这里有很多3d俄罗斯方块,那就让这些方块顺利钓到天平上吧! VC++基于OpenGL技术实现的3D俄罗斯方块游戏,游戏玩法与以往的俄罗斯 ...

  5. 200行C++代码实现实现3D俄罗斯方块,这效果太逼真了!

    最近学习openGL,在网上看了很多的资料OpenGL入门学习等很多资料,但是也只是学了点皮毛,边学边实践,于是就写了一个3D俄罗斯方块的程序. VC++基于OpenGL技术实现的3D俄罗斯方块游戏, ...

  6. 学习C#从俄罗斯方块开始(一)概述

    前几天和一个在读的本科生聊天,他一直在抱怨学校学习的理论知识太多,实践的机会太少.担心自己因此毕业后可能难以找到工作.我认为一个人要是想投入开发,他总是可以找到项目的.与其把自己的时间浪费在抱怨和指责 ...

  7. 用python自带的tkinter做游戏(二)—— 俄罗斯方块 篇

    上回分享了博文 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 今天继续,尝试用tkinter来制作一个更经典的游戏 -- 俄罗斯方块. 俄罗斯方块相信大家都玩过,一共有七个方块组,每 ...

  8. 微信小程序实现俄罗斯方块

    前言 俄罗斯方块相信大家都玩过了,那么小程序如何实现俄罗斯方块呢 演示视频 运行项目 需要有微信开发者工具,这里不会的可以自行百度下载即可 导入项目,这里随便点击一下测试号,导入即可,等待项目加载完成 ...

  9. 2048版俄罗斯方块java_俄罗斯方块2048

    俄罗斯方块和2048都是小伙伴们都玩过的游戏,那如果将两者相融合会产生什么样的效果呢>在<俄罗斯方块2048>中,玩家就将体验到结合了2048的俄罗斯方块,这款游戏不仅难度上更上一层 ...

最新文章

  1. 巴菲特在佛罗里达大学的演讲
  2. [k8s] 第九章 安全认证
  3. 【错误记录】Android Studio Logcat 报错 ( read: unexpected EOF! )
  4. RotateAnimation 详解
  5. SpringBoot2.0 以上 WebMvcConfigurerAdapter 方法过时 解决办法
  6. python降维之时间类型数据的处理_python学习笔记之使用sklearn进行PCA数据降维
  7. Log4j线程死锁–案例研究
  8. 描述一下JVM加载class文件的原理机制
  9. android 转场动画兼容问题,【Android】关于ARouter转场动画的问题
  10. CALLING PROCEDURES USING CALL AND RET
  11. wince系统_汽车操作系统分类
  12. Spring Data JPA根据属性名查询
  13. C++ const function
  14. python中换页是干嘛的_python什么是转页符
  15. 嵌入式 LAB 3:自行车码表
  16. marshmallow——自定义类型
  17. vsftpd.conf 配置详解
  18. Java培训学习之分词工具之HanLP介绍
  19. python:panda
  20. 【知识图谱】知识图谱数据库提供一站式全域行业数据融合

热门文章

  1. 常用的画流程图/时序图工具简介
  2. arcgis 点查询
  3. php培训技能,多迪php培训该掌握的10大技能,你都掌握了哪些?
  4. Museui 图标速览,再也不用担心网页打不开了
  5. 用SQL统计消耗热量 总热量
  6. JAVA算法策略模式之商品打折 满x送x
  7. erput实现学生成绩管理系统
  8. MySQL5.1安装教程
  9. JAVA练习小游戏——本地双人联机乒乓球小游戏
  10. 谷粒商城-分布式高级篇[商城业务-秒杀服务]