https://github.com/Centurybbx/sp18-century/tree/master/proj0

proj0的具体实现在上面的Github中。

在proj0中我明显感受到国外大学对于教学课程的严谨性和权威性,之前只是听说过测试(刚学习的小白),没想到在CS61B中老师为了方便测试学生所写代码的准确性,提前写好了不少测试类,直接运行即可。并且它的教程完全是保姆式的,完全是在手把手的教课,对于新手程序员来说简直是不要太好。

下面主要谈一下它的设计方面:

这个项目里面其实自己并没有写多少高大上的代码,感觉它的实现还是挺简单的,主要是基于牛顿定律和一些物理公式的推导得出来的。但是它的设计却让我感觉非常巧妙,例如在Planet中它先是循序渐进的让我们写出一个calcDistance(Planet p)方法来计算两个天体之间的距离,随后根据这个写calcForceExertedBy(Planet p)方法,用来计算两个天体之间的引力作用。随后又引出calcForceExertedByX(Planet p)和calcForceExertedByY(Planet p)两个方法来计算X和Y轴上力的分量,最后再写出calcNetForceExertedByX(Planet[] ps)/calcNetForceExertedByY(Planet[] ps)引用上面的方法来计算出多个引力作用的结果,感觉很妙!

总体来说这个项目还是挺简单的,因为好多轮子已经造好了,比如StdDraw/In这些工具类已经封装好了很多方法,直接看着API文档调用就好了。

-------------------------------------------------------------------------------------------------------

刚刚用gradescope评估了一下评分,发现它提示我有一点小问题——原来是变量作用域的问题,我用public修饰的G(一个系数)要改为private.....这真的好严谨,爱了爱了!这课不好好学完全是浪费啊!

proj0的具体实现 #CS61B-sp18的更多相关文章

  1. CS61B sp2018笔记 | Lists

    Lists csdn同作者原创地址 1. IntLists   下面我们来一步一步的实现List类,首先你可以实现一个最简单的版本: public class IntList { public int ...

  2. CS61B HW0

    The Enhanced For Loop public class EnhancedForBreakDemo { public static void main(String[] args) { S ...

  3. CS61b proj1a

    得分46.25有一个点的bug不会修(希望大佬带我),style没有注意.1.LinkedListDeque.java public class LinkedListDeque <T>{ ...

  4. diff and patch

    A patch captures the changes of two different files (oldfile and newfile). Given the oldfile and the ...

  5. 麻省理工18年春软件构造课程阅读02“Java基础”

    本文内容来自MIT_6.031_sp18: Software Construction课程的Readings部分,采用CC BY-SA 4.0协议. 由于我们学校(哈工大)大二软件构造课程的大部分素材 ...

  6. Java学习资源整理(超级全面)

    这里整理一些自己平常搜集的比较好的关于Java的学习资源,主要包括博客站点.书籍.课程等. 了解Java最新资讯 这部分主要是了解与Java相关的动态以及信息,能够拓展我们的视野以及寻找一些好的ide ...

  7. Java中的Iterable与Iterator详解

    在Java中,我们可以对List集合进行如下几种方式的遍历: List<Integer> list = new ArrayList<>(); list.add(5); list ...

  8. CS61A hw01

    前不久在知乎上看到CS61A 和CS61B spring18 开课的消息.上去看了一眼,发现真的不错,所有proj hw都可以本地测试!也就是说除了没有课程成绩和官方讨论区和TA解答外,这个课完全可以 ...

  9. 1732157 - Collecting diagnosis information for SAP HANA [VIDEO]

    Symptom SAP Support asked you to provide a collection of the relevant diagnosis files (also known as ...

随机推荐

  1. day03组件

    1.text   编写文本信息,等价于span 2.view 等价于div 3.image ============================wxml====================== ...

  2. 「疫期集训day4」硝烟

    那真是一阵恐怖的炮击(that boomed booms),响亮的炮音(that noise),滚滚的硝烟(that smoke),熊熊的火焰在围绕着我们前进...小心前进(go and be car ...

  3. 云开发 VSCode 插件 Cloudbase Toolkit 的正确打开方式

    什么是 Cloudbase Toolkit Tencent CloudBase Toolkit 是云开发的 VS Code(Visual Studio Code)插件.该插件可以让您更好地在本地进行云 ...

  4. AIX系统下挂载外置存储

    连接盘柜后在盘柜里映射好分区. 1.扫描硬件才能发现盘柜映射的容量 ,命令cfgmgr 2.查看在 AIX 系统下能否认到盘柜的分区. 命令:lsdev -Cc disk 3.查看物理卷(pv),命令 ...

  5. MCU 51-3定时器

    51定时/计数器简介 51单片机有2个16位定时器/计数器:定时器0(T0为P3.4)和定时器1(T1为P3.5).这里所说的16位是指定时/计数器内部分别有16位的计数寄存器. 当工作在定时模式时, ...

  6. shell专题(三):Shell脚本入门

    1.脚本格式 脚本以#!/bin/bash开头(指定解析器) 2.第一个Shell脚本:helloworld (1)需求:创建一个Shell脚本,输出helloworld (2)案例实操: [atgu ...

  7. Python之 爬虫(二十三)Scrapy分布式部署

    按照上一篇文章中我们将代码放到远程主机是通过拷贝或者git的方式,但是如果考虑到我们又多台远程主机的情况,这种方式就比较麻烦,那有没有好用的方法呢?这里其实可以通过scrapyd,下面是这个scrap ...

  8. tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'x_1' with dtype float and shape [?,227,227,3]

    记一次超级蠢超级折磨我的bug. 报错内容: tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a ...

  9. As 布局文件太多很乱的问题

    //添加自定义文件整理文件夹的方法,没有之一在build.gradle(Module: app)里加入布局需要放入的路径代码>>>>>> sourceSets { ...

  10. CentOS开机启动不了修复

    1,如果启动时进度条,先修改为日志启动 启动后快速按任何键(Enter除外)进入如下界面 在按e进入 选择第二个选项卡 在按e进入将红色部分 rhgb quiet 删除,然后按Enter,在按b重启 ...