UNO 游戏实现心得 (version 1)

相信大家都玩过卡牌游戏 UNO,由于 FYP (Final Year Project) 的缘故,前段时间用 python 撸了一个非常粗糙的 UNO 出来。有多粗糙呢?大概就是没有 UI, 所有操作都靠命令行,并且时常一瞬间弹出一堆日志吧。。连我一个整天面对着命令行面对各种日志的程序员都觉得看得难受。写完初版一直想找个时间总结一下,最后终于决定在今天把这篇想要写了很久的博客给写出来了,希望能对大家有帮助。

(附一张游戏截图)

uno_v1 截图

接下来大概会总结一些我实现的时候一些比较有感触的地方,勉强可以算作是做单人(或者很少人的)小项目的心得吧。其实都是一些非常老生常谈的原则,只是我在实践中有了更深的体会,并且决定把我的思考过程分享出来,给有需要的同学提供一些这些抽象的原则对应的一些具体的例子。

不要怂,就是干

最鸡汤,最没有技术含量的一条放在最前面哈哈哈。其实这一条想说的是,对于这样的小项目,不必太拘泥于别人已有的成果,大胆尝试自己重新设计,重新写,不要怀疑自己做不到。固然每个人的经验能力有限,但挑战独立完成一个小项目(可以少量借鉴别人的实现)对于我等萌新来说还是一个很必要的历练;做到了当然成就感爆棚,即使做不到,也是能收获不少经验的。下面讲一讲我从最初在 github 上查找别人的实现,到最终决定自己写的心路历程吧。

当时的第一步也是在 github 上搜索别人的实现,并且最初也是想着在这些代码的基础上改的。但是浏览了一下搜索结果里靠前的 repo, 发现也不是那么合适。首先之所以要写这个 UNO, 是因为 FYP 要做的是强化学习,因此一个理想的实现要满足两个要求:1)方便自定义游戏(游戏人数,AI 玩家的策略),快速地自动化地模拟游戏,还有保存游戏数据;2)方便交互:这里的交互指的是强化学习中的 agent 可以一边进行游戏,一边更新 policy (还有 value), 然后一遍采取新的 action 返回给游戏系统。当时浏览了几个 repo 后发现都不满足这些要求:有的可能有好看的 UI, 但是游戏模式(人数等)是固定的,或者难以和一个强化学习系统对接,等等。于是我就决定自己写了。这里也有一个心得:项目之初要尽可能搞清楚具体的需求,需要写出一个怎样的实现,进而决定是否沿用已有的开源实现,以及后续怎么设计等等。

至此我和 partner 也还是打算沿用 gith

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值