专题 俄罗斯方块的React实现(零)总述

前言

俄罗斯方块是一款地球人都知道的游戏,规则简单,变化无穷。最近正好在看React的,想起来以前用js实现过一个简单版本,这几天就用React重做了一个升级版,并将AI相关的功能也加了进去。

目标

先明确一下这个小项目的边界和需求,大致如下:

  • 实现一个经典版本的俄罗斯方块游戏
  • 游戏包含最经典的Tetris形状,同时支持方便的扩展其他形状
  • Tetris可以移动、变形
  • 可以切换游戏模式,由人控制或者AI控制
  • 人操控时,每隔一定时间若无输入,Tetris自然落下一格
  • AI控制时,必须模拟人类的操作过程

现有项目

俄罗斯方块的实现版本非常多,在做前一个版本的俄罗斯方块时,参考过Github上的一个项目(https://github.com/LeeYiyuan/tetrisai ),这是一个js实现的俄罗斯方块,当时主要参考了AI算法的内容。这个项目做的非常不错,但是有一个小问题,也不算不上是问题吧,就是它的AI,每次新砖块都是直接从最后目标位置直接变形后落下,看不到左右和变形移动的过程(源码没详细读,或许有,只是太快了),显得有点假,除此之外都很棒。

技术/工具

  • React,技术框架
  • npm,依赖管理和工程化脚本管理
  • webpack,编译工具集
  • Mocha,单元测试
  • 遗传算法,AI训练

分章节

专题 俄罗斯方块的React实现 (一)游戏基本执行框架

专题 俄罗斯方块的React实现 (二)自动化测试

专题 俄罗斯方块的React实现 (三)AI算法及其实现

源码和在线演示

Github地址:https://github.com/hoyt-tian/tetirs
在线效果 http://open.hoyt-tian.com/Tetris/ ,服务器在美国,访问可能有点慢 :(

Show Comments

Get the latest posts delivered right to your inbox.