【UCB CS61B】proj0
UCB CS61B proj0
UCB CS61B是一门讲授Java和数据结构,但绝不仅仅讲了这些的神级课程。
记录从获取proj0的skeleton code到完成这个2048小游戏的过程中遇到的问题及解决方法。
0. 课程视频链接、资料链接及参考文章
- 课程视频:https://www.bilibili.com/video/BV1QP4y1u7jv/?p=8&share_source=copy_web&vd_source=8883526384fdf5a9e357f622cfb54779 (B站和油管都有,找的时候注意年份)
- 课程资料:https://sp21.datastructur.es/
- GitHub上翻到的框架代码:https://github.com/Berkeley-CS61B/skeleton-sp21
1. 使用git获取项目框架代码
首先看了【0.资料链接】中的Git那一节的pdf,结合【菜鸟教程】中对git的讲解,在D盘新建了git仓库并试图通过git bash命令行远程获取GitHub上的代码。
problem1
在设置好远程仓库准备远程获取项目时,出现了无法连接到指定仓库的报错。
resolve1
首先尝试关闭🪜,但关闭之后完全连接不到GitHub(废话),失败。
再次打开🪜,把git bash默认的端口改为🪜的端口(可以在🪜那里或者电脑设置里面看【如下图】),再次执行远程获取项目命令——成功。

2. 对拿到的项目进行调整
打开项目之后,发现所有Java类文件左下角均为红色小圆圈, .idea文件夹字体为黄色(好像没什么实际影响,就是看着有点难受)。
problem2
Java类不识别。
resolve2
file——project structure 为项目选择JDK,发现Java类成功被识别,但紧接着出现package路径不符合的错误,大面积爆红。这里在网上看了几篇,试了都没用(包括alt + ctrl + shift + s,在module里手动改项目结构),最后偶然发现,光标放在有红色下划线的包名那里,按alt + enter,再按回车——成功。发现是自动在原本的package下面建了一个同名的文件夹。

注意此处如果还是爆红,可以在项目结构设置那里取消手动设置的source。

这里别忘了对所有的文件都进行一样的操作(其实操作好第一个之后,只要手动多选其他文件,再剪切到自动新建的文件夹里就好啦)!
problem3
jar包不识别。项目自带jar包,放在javalib文件夹下,但还是import爆红。
resolve3
右键自带的三个jar包,选择add as library,成功。
P.S.
在做其他lab时有时候会遇到没有jar包的情况,似乎是因为git无法获取原文件夹中保存jar包的那个文件夹(比如出现org.junit.test在import时爆红,导致test注解等无效)。可以在project structure——library中点击加号,添加GitHub获取到的文件夹里面标有library-sp21的文件夹里面的包。

3. 运行项目
proj0需要完成model中的四个方法。
build这个项目时会提示没有输出路径,需要自己在项目下新建一个output文件夹并设置为输出路径。

点击main运行,发现Model报错。
problem4
控制台报出空指针异常。
resolve4

根据报错信息(这里之前没有判断是否为null),找到报错的if语句并修改。
problem5
如果自己的JDK是8的话,可能会出现版本为Java12的相关报错。
resolve5
直接在项目结构中把12换成8即可。
4. 方向键无效
运行成功,弹出了board和两个随机初始化的块,但是按方向键发现并没有控制块移动。
problem6
这里反复检查了代码,确定不是代码问题。在网上看了文章,发现是因为系统语言是中文,所以上下左右键对应的并不是原始代码中给出的Up/Down/Left/Right,而是“向上/下/左/右箭头”。
resolve6
网上查到的是可以直接把自己的系统语言改成英语,但是我的win11不知道什么情况,下载了英语的语言包但没办法用。
所以我是在GUISource关于键盘输入的方法中把上下左右键改成WASD,也比较方便写代码。

浙公网安备 33010602011771号