【UCB CS61B】proj0

UCB CS61B proj0

UCB CS61B是一门讲授Java和数据结构,但绝不仅仅讲了这些的神级课程。

记录从获取proj0的skeleton code到完成这个2048小游戏的过程中遇到的问题及解决方法。

0. 课程视频链接、资料链接及参考文章

1. 使用git获取项目框架代码

首先看了【0.资料链接】中的Git那一节的pdf,结合【菜鸟教程】中对git的讲解,在D盘新建了git仓库并试图通过git bash命令行远程获取GitHub上的代码。

problem1

在设置好远程仓库准备远程获取项目时,出现了无法连接到指定仓库的报错。

resolve1

首先尝试关闭🪜,但关闭之后完全连接不到GitHub(废话),失败。

再次打开🪜,把git bash默认的端口改为🪜的端口(可以在🪜那里或者电脑设置里面看【如下图】),再次执行远程获取项目命令——成功。

image

2. 对拿到的项目进行调整

打开项目之后,发现所有Java类文件左下角均为红色小圆圈, .idea文件夹字体为黄色(好像没什么实际影响,就是看着有点难受)。

problem2

Java类不识别。

resolve2

file——project structure 为项目选择JDK,发现Java类成功被识别,但紧接着出现package路径不符合的错误,大面积爆红。这里在网上看了几篇,试了都没用(包括alt + ctrl + shift + s,在module里手动改项目结构),最后偶然发现,光标放在有红色下划线的包名那里,按alt + enter,再按回车——成功。发现是自动在原本的package下面建了一个同名的文件夹。

image

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

image
这里别忘了对所有的文件都进行一样的操作(其实操作好第一个之后,只要手动多选其他文件,再剪切到自动新建的文件夹里就好啦)!

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的文件夹里面的包。

image

3. 运行项目

proj0需要完成model中的四个方法。

build这个项目时会提示没有输出路径,需要自己在项目下新建一个output文件夹并设置为输出路径。

image

点击main运行,发现Model报错。

problem4

控制台报出空指针异常。

resolve4

image

根据报错信息(这里之前没有判断是否为null),找到报错的if语句并修改。

problem5

如果自己的JDK是8的话,可能会出现版本为Java12的相关报错。

resolve5

直接在项目结构中把12换成8即可。

4. 方向键无效

运行成功,弹出了board和两个随机初始化的块,但是按方向键发现并没有控制块移动。

problem6

这里反复检查了代码,确定不是代码问题。在网上看了文章,发现是因为系统语言是中文,所以上下左右键对应的并不是原始代码中给出的Up/Down/Left/Right,而是“向上/下/左/右箭头”。

resolve6

网上查到的是可以直接把自己的系统语言改成英语,但是我的win11不知道什么情况,下载了英语的语言包但没办法用。

所以我是在GUISource关于键盘输入的方法中把上下左右键改成WASD,也比较方便写代码。

image

posted on 2023-08-28 08:36  ww0809  阅读(454)  评论(0)    收藏  举报