#游戏制作思路
##0.面向对象
###0.解决互相调用的问题
因为不同方法之间互相调用繁多，所以想到可以把某些有实际逻辑相关的属性和方法封装成类，采用面向对象来。
###1.方便重构
同时，面向对象能够方便的修改功能，重构代码。因为只需要在具体类的内部操作，外部调用对象时仍看作黑箱子。

##1.遇到的问题及解决办法
###0.判断很多
基本没做一个动作都要预先判断，然后根据不同结果走向不同分支。
####解决办法
能够放在其他类内部解决的判断就内部解决，不能的话设立有实际意义的变量来switch。

###1.如何刷新
外部发生变化，如玩家走到了某块土地，地图应该如何相应地变化？
####解决办法
建立二维数组打印地图，但数组元素为土地对象，打印时每个对象调用每个对象下的函数，来确保变化后地图能够更新。因为基本数据类型只是值传递，如果一有改变就回到数组重写一遍值太麻烦，不如封装后简洁。
###2.打印会变化的内容
当被打印的内容会发生变化，但保证序号仍为从0开始，如何操作？
####解决方法
使用Arraylist。
##2.总结
###0.优点
除了menu与dice内部使用了switch来决定流程外，其他都根据实际情况建立了对象。
###1.改进
应进一步减少代码冗余。