一个对弈游戏框架的重构过程

作者/分享人:氢氧化钠
向 Ta 提问
资深程序员,中兴通讯 PON 业务软件开发经理,《算法的乐趣》作者以及 SourceInsight 开源外挂 TabsiPlus 的作者,18 年软件开发相关经验。在 Windows 系统软件开发、加密解密和软件架构方面有一些经验和见解。

为了演示博弈树的搜索和评估算法,对比各种评估算法 AI 的智商,我做了一个井字棋(TIC-TAC-TOE)游戏的对战框架,让人类玩家可以和游戏的 AI 进行对战博弈。这个 Chat 的内容就是这个框架的设计和重构的过程,这是一个从朴素的面向对象实现到面向接口实现,并引入模式的设计过程。完整看完这个重构的过程,读者可以加深对“要对接口编程,而不是对实现编程”这句话的理解,了解“虚的接口”如何解除“实的对象”之间的耦合,并给设计带来灵活性的实现原理。

本场 Chat 的主要内容:

  1. 玩家对象、搜索算法对象和棋局评估算法对象的抽象接口设计,以及它们的设计原则;
  2. 模板方法(Template Method)模式的原理和使用实践;
  3. 一个井字棋(TIC-TAC-TOE)棋类游戏框架的完整设计。
已有146人预订
预订达标
文章出炉
     
03月02日
03月13日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张氢氧化钠的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
你可能还喜欢
JVM 问题诊断快速入门
火币集团研发中心
面试字节跳动的一点小经验
Wayne
互联网公司热门面试题:如何保证缓存与数据库的双写一致性?
魏武归心2016
面试官问:为什么在项目中使用消息队列!到底是想考什么?
零下
小程序 · 云开发实战:从 0 到 1 快速开发电商小程序
微信极客WeGeek
如何做好性能压测(二) | 性能压测工具选型对比
阿里巴巴中间件
10 个最高频的 Java NIO 面试题剖析!
Dolphin
恕我直言,90% 的程序员都扛不住这波 MQ 的面试四连炮!
王码农
大白话聊聊面试中常被问到的分布式事务
不解释 家狗师
实战:基于 RocketMQ 的电商高并发秒杀场景
RocketMQ
手把手教你撸一个代码生成器
JohnDeng
详解用 Python 访问金融交易数据的方法
元宵大师
业余赚钱实战
追梦1819
50 道常用面试题让你在求职中脱颖而出
Kings
让 Elasticsearch 飞起来——性能优化实践干货
穿着西装敲代码
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效