这本书马上就要结束了。本章的练习对你是一个真正的挑战。当你完成以后,你就可以算是一个能力不错的 Ruby 初学者了。为了进一步学习,你还需要多读一些书,多写一些程序,不过你已经具备进一步学习的技能了。接下来的学习就只是时间、动力、以及资源的问题了。

在本章练习中,我们不会去创建一个完整的游戏,取而代之的是我们会为《练习42》中的游戏建立一个“引擎(engine)”,让这个游戏能够在浏览 器中运行起来。这会涉及到将《练习42》中的游戏「重构(refactor)」,将《练习47》中的架构混合进来,添加自动测试代码,最后建立一个可以 运行游戏的web 引擎。
这是一节很「庞大」的练习。我预测你要花一周到一个月才能完成它。最好的方法是一点一点来,每晚上完成一点,在进行下一步之前确认上一步有正确完成。

重构《练习42》的游戏

你已经在两个练习中修改了 gothonweb 项目,这节练习中你会再修改一次。这种修改的技术叫做「重构(refactoring)」,或者用我喜欢的讲法来说,叫「修修补补(fixing stuff)」。重构是一个程序术语,它指的是清理旧代码或者为旧代码添加新功能的过程。你其实已经做过这样的事情了,只不过不知道这个术语而已。这 是写软体过程的第二个自然属性。

你在本节中要做的,是将《练习47》中的可以测试的房间地图,以及《练习42》中的游戏这两样东西归并到一起,创建一个新的游戏架构。游戏的内容不会发生变化,只不过我们会通过“重构”让它有一个更好的架构而已。

第一步是将 ex47.rb 的内容复制到 gothonweb/lib/map.rb 中,然后将ex47_tests.rb的内容复制到gothonweb/test/test_map.rb中,然后再次运行测试,确认他们还能正常运作。

Note: 从现在开始我不会再向你展示运行测试的输出了,我就假设你回去运行这些测试,而且知道怎样的输出是正确的。

将《练习47》的代码拷贝完毕后,你就该开始重构它,让它包含《练习42》中的地图。我一开始会把基本架构为你准备好,然后你需要去完成map.rb和map_tests.rb 里边的内容。

首先要做的是使用 Room 类来构建基本的地图架构:




打赏
  • 打赏支付宝扫一扫
  • 打赏微信扫一扫