详解Java实现小游戏2048(使用JavaFX)
刚刚完成的一个小游戏程序,写文章记录分享一下,如果有任何错误或者可以改进的代码,还希望各位大佬可以狠狠纠错和提建议,请指导我! 另一方面也是方便自己几个月或几年后忘记时,来这里翻一翻回顾思路
首先放
谢谢,我已经翻阅了你优化后的代码
其中afterGetMoreScoreInfo()方法的变化是最大的,你为它准备了一个静态内部类Counter,还加入了表格来显示。而我在写这个方法的时候已经处在了代码的收尾阶段,所以搞得有些粗糙
我还看到了像三元表达式这类的语法糖,它更加简洁;以及一些其他的优化,有些是我写代码时粗心没有注意到的
toString()方法改用了格式化字符串,这确实更标准一些
以及,看到一部分的遍历改用了for-each循环,这样的写法是专门为了简化代码,还是有另外的好处呢?
关于控制层和视图层的分离,我之后会尝试
其实我也不想加那个类,但字符串根本搞不定,本来循环加上%10d
这种东西就可以搞定了,但是JavaFX有毛病空格和数字的宽度不一样就没法对齐(可能是因为字体不等宽),不过\t
是可以对齐的,但4和65536需要的个数不一样,又得特判就很烦,也就意味着没办法轻松优化掉你那一大堆字符串拼接,后来发现Alert居然可以内嵌任意东西那我干脆搞个表格好了,但表格也不是什么简单能搞定的东西,所以就网上看了点代码仿照写了写
for-each的好处在于不需要脑子想边界了,不容易出错,也不需要你那样显式创建一个变量了,但是如果需要用到下标的话还是老老实实用原来的for,所以只有部分用了,还有写起来更爽不是么
奥,推荐使用Github托管代码,可以轻松管理版本,也就是可以追溯做了什么优化
(还有就是我Java写得不太多,所以有些想法并不是在Java中最优解,好在你的代码还比较简单我还hold住)