楼主: jaly50
跳转到指定楼层
上一主题 下一主题
收起左侧

Berkeley CS 61B Data Structures(in Java) Project1 加分+讨论帖

 
🔗
czbnlzd920706 2015-4-14 23:38:12 | 只看该作者
全局:
做的2006的project1.第二部分在做时有点不明所以,而且看不了测试文件,干脆就不做了。转头做2014的project1去了。

cs61b_project1_part1.png (8.23 KB, 下载次数: 0)

cs61b_project1_part1.png
回复

使用道具 举报

🔗
czbnlzd920706 2015-4-14 23:41:42 | 只看该作者
全局:
czbnlzd920706 发表于 2015-4-14 23:38
做的2006的project1.第二部分在做时有点不明所以,而且看不了测试文件,干脆就不做了。转头做2014的project ...

只不过2006这个小程序part1虽然比较容易写,但是很有趣啊。鲨鱼会在短时间内增长,然后又死光。每次看到红色大片消失,心里都有很大的快感啊。。。额。。。还有几个鲨鱼在边上,小鱼就变成了鲨鱼,让我想起了异行的繁殖方式。。。
回复

使用道具 举报

🔗
czbnlzd920706 2015-4-19 08:53:37 | 只看该作者
全局:
这次作业大概写了八个小时,前三部分写了四个小时,最后一个部分写了四个小时。感觉前三部分不是很难,好好写,没有多大问题,只是烦一些。但是第四部分的确有些难,要想一边写好对于我来说不可能。按老师的话说,就是tricky。
主要是,我一开始并没有考虑到,如果修改一个点,可能会发生多种情况。
第一种,点在run(一段像素点值相同的区域)左边,那么修改后,如果点左边的run和修改的像素值相等,则需要合并(加长这个run的length并且删除前面那个节点)。并且需要将run剩余的部分重新插入为一个新的节点。
第二种,点在run中间,那么修改后,只需要将该点左右的区域分别插入为新的节点。
第三种,点在run右边,那么修改后,如点右边的run像素值和该点相同,那么久合并。并且将该点右侧run剩余的部分重新插入为一个新的节点。
我觉得第四部分最关键的是得完善节点的操作方法,而不要通过list遍历来进行操作,否则会很麻烦,复杂度也会提高。
总结下收获吧:
1.因为初学,对Java还不是很熟悉。这次自己写了一个迭代器,对于iterator终于算是有点懂了。首先类需要实现一个Iterable的接口,然后在类里面用方法实现这个接口,iterator().一般是通过这个方法返回一个迭代器,迭代器其实也是一个类,或者说,一个根据主类而构造出来的对象,他的作用在于,你不需要了解这个类的具体内部构造就可以遍历他。在这个迭代器中貌似必须得有hasNext()和next()方法。通过这些来给用户提供遍历。
2.原来在一个类中,可以返回有自己这个类new出来的新对象。之前一直不知道。还不停的构造不同的数组来实现要求的功能。后来发现逻辑上不可能,然后在发现,原来可以返回自己这个对象。但前提是类中必须有可以修改对象的方法,set。
3.我在自己写迭代器的时候犯了一个错误。传入一个链表来构造迭代器,结果我在下面的方法中把这个链表里面的头指针给修改了,直接的说,就是修改了这个传入的链表。导致主类中其他地方需要用到链表的时候发生了错误。所以教训就是,切勿修改传入迭代器的参数。可以自己构造指针来指,或者干脆直接复制一个链表来进行操作(会浪费许多空间)
4.Debug虽然痛苦,但他揭示了许多错误的根源。每次Debug都有一种高中偷看XX片的兴奋感。
Good luck, Richardo!

更多图片 小图 大图
组图打开中,请稍候......

评分

参与人数 1大米 +20 学分 +1 收起 理由
AveMaleficum + 20 + 1 很有帮助!

查看全部评分

回复

使用道具 举报

全局:
czbnlzd920706 发表于 2015-4-14 23:38
做的2006的project1.第二部分在做时有点不明所以,而且看不了测试文件,干脆就不做了。转头做2014的project ...

你好~~我是初学者,这个project1看不太懂意思。。可以给我看一下你写好的这个project1 的作业吗?边分析边学习,然后自己再做。。。如果可以的话,可以发到邮箱吗?感觉这里不鼓励分享代码~~谢谢~~
回复

使用道具 举报

🔗
czbnlzd920706 2015-4-26 19:00:23 | 只看该作者
全局:
乐百氏开开心心 发表于 2015-4-26 11:13
你好~~我是初学者,这个project1看不太懂意思。。可以给我看一下你写好的这个project1 的作业吗?边分析 ...

这次作业我写的代码很烂,因为中途断了几个小时去干其他事了,而且没有写注释。你如果需要的话就给我你的邮箱吧
回复

使用道具 举报

全局:
czbnlzd920706 发表于 2015-4-26 19:00
这次作业我写的代码很烂,因为中途断了几个小时去干其他事了,而且没有写注释。你如果需要的话就给我你的 ...

嗯好的,太感谢,初学者人太笨~~邮箱是zhouhuanhuanlele@163.com,谢谢~~
回复

使用道具 举报

🔗
josephdesire 2015-4-29 13:55:47 | 只看该作者
全局:

先交06年的吧
看了别人写的,觉得自己想得好复杂。。。
建了一个shark类,shark的field有timestep. 还为ocean建了一个arraylist<shark>.........
回复

使用道具 举报

🔗
wynnforce 2015-5-25 16:23:56 | 只看该作者
全局:
做的06年的PJ1 , 求加分呀求加分~~~



其实我一直想不通,为什么说一条小鱼周围的格子里有两条或以上鲨鱼,这个cell就会新生出来一条鲨鱼...这是个什么逻辑...
后来终于想明白了....因为多条鲨鱼会跑到同一个cell来吃鱼...他们就碰面了....就....就会交配......
回复

使用道具 举报

🔗
dennisyang 2015-6-4 20:37:47 | 只看该作者
全局:
enirinth 发表于 2015-5-25 16:23
做的06年的PJ1 , 求加分呀求加分~~~

同学可以问一下你是怎么保存每一个SHARK点的starveTime的么?
难道一定要新建立一个SHARK类么?
回复

使用道具 举报

🔗
wynnforce 2015-6-5 00:13:54 | 只看该作者
全局:
dennisyang 发表于 2015-6-4 20:37
同学可以问一下你是怎么保存每一个SHARK点的starveTime的么?
难道一定要新建立一个SHARK类么?

我觉得要么再新建一个数组,要么新建一个类;
感觉后者比较good style;
而且数组元素类型最好保持一致,只不过fish和empty的starvetime取-1之类的值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表