type
status
date
slug
summary
tags
category
icon
password
emptySpaceExists(Board b)
一开始觉得蒙圈,后来静下心看看觉得没啥,毕竟有了 cs61a 中 oop 的基础
对于陌生的类,cmd点进去看一看具体方法就大概知道怎么做了
这里先获取 size,也就是大小
接着遍历 b 中每一个 tile,检查是否是 null
maxTileExists(Board b)
这里跟上面基本一样,就是需要注意提示:不能用 2048 比较,而是使用 maxpiece
还有一点需要注意,就是这里需要在访问 value 前先检查 tile 是否存在
atLeastOneMoveExists(Board b)
这里是判断能否继续移动,有两种情况可以:
- 有空余位置
- 附近有相同的数字可以合并
对于 1,这里需要注意,是判断是否为 null,而非 value 是否为 0(不要被 test 的输入给迷惑)
对于 2,这里在遍历的时候有个小技巧,不需要上下左右都查,只需要查一半即可(上左/下右 这种),因为这里的循环条件是会遍历每一个 tile
- 作者:昊卿
- 链接:hqhq1025.tech/article/%20cs61b/2048
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。