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

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

 
🔗
MosesZhou 2015-7-4 13:02:12 | 只看该作者
全局:
好不容易写到一半手贱按了个回退,结果白写了 = =
我写的是06Fall Project 1 part 1, Sharks and fish,题目很有意思,思路并不复杂,可能实现方法上需要稍微想一会儿~ 我做的时候在实现方法上走偏了,经过指点,绕了回来,然后就是之前画的流程图敲代码,然后编译、调试,过程居然出乎意料得顺利,改了两个小bug以后程序能跑了,出现了海洋的动态图。都有点不敢相信居然这么顺利~嘿嘿嘿~

说一下思路把~根据题目要求我们可知每个timestep后每个cell会有8种可能的改变情况,取决于当前cellContents和其临域sharks和fish的各自的总数量。需要注意的是,如果当前cellContents == sharks, 那么我们还需要看它的starveTime, 如果starveTime用光时未能进食,则鲨鱼死亡。由以上分析,自然地,我们想到会需要一个neighbor(x,y) 的method,用于返回cell(x,y)临域内的sharks和fish的情况。同样地,对于每个shark,我们需要单独记录其starveTime。

1. 关于starveTime,我最初的想法是创建一个2D Array oceanArray[x][y]用来表示海洋,然后Array[x][y]存个指向object cell的reference,object cell的结构是cell.content=shark || fish || empty; cell.starveTime = time(null if cell.content != shark)。 后来觉得这样写起来实在麻烦,经过提示发现可以再单独建一个2D Array starveArray[x][y]用来表示某个cell的starveTime,这样就简化很多。

2. 关于neighbor(x,y) method. 我是在里面declare了一个int [ ] neighborArea = new int [3];  neighborArea[0]储存临域empty cell的数量,neighborArea[1]储存临域shark cell的数量,neighborArea[2]储存临域fish cell的数量。

3. 记得建立一个helper method用来归一化坐标值,注意考虑坐标为负值的情况。

4. 8种cell可能的变化情况先画个树状图理一下思路再写代码

要注意的基本上就是这几点了。

最后问一句,是不是stimulation以后,sharks and fish动态图一直运行变化,没有停止,就是程序正确了啊?

pj1_result.JPG (54.91 KB, 下载次数: 0)

pj1_result.JPG
回复

使用道具 举报

全局:
gougou9901 发表于 2014-7-5 21:32
终于把project1做完了!!part3和part4真是debug到死啊。。
用这个RLE压缩算法可以把164kb的tiff图片文件 ...

大神你好! 我现在正在做这个pj得part2 卡在一个地方了,能不能麻烦你把你的代码(如果还在的话)发到我的邮箱,我想借鉴一下,万分感激! senyangzhuang@163.com
回复

使用道具 举报

全局:
imposiwind 发表于 2014-11-12 23:21
Part 2 - 3 像素图像和行程编码之间的互相转换。  Part 4:编写函数:给出像素坐标和新值,直接修改对应的 ...

求问大神, part2里面得两个RunLengthEncoding得构造函数是什么意思啊? 是要我们构造一个DList来储存嘛? 连题目都看不懂 真是要跪了。。
回复

使用道具 举报

🔗
gh603 2015-7-12 14:41:02 | 只看该作者
全局:
06年 project 1:

Screen Shot 2015-07-12 at 1.33.42 AM.png (8.79 KB, 下载次数: 1)

Screen Shot 2015-07-12 at 1.33.42 AM.png
回复

使用道具 举报

🔗
dennisyang 2015-7-13 10:01:11 | 只看该作者
全局:
O6年PROJECT 1
PART 1 截图

回复

使用道具 举报

🔗
althinking 2015-7-13 18:43:06 | 只看该作者
全局:
Project 1
Part 1: Image Blurring and Edge Detection


Part 2-5
  1. calhost pj1]$ javac -g -cp "jai_core.jar:jai_codec.jar" *.java
  2. [jun@localhost pj1]$ java -cp ".:jai_core.jar:jai_codec.jar" RunLengthEncoding
  3. Testing one-parameter RunLengthEncoding constuctor on a 3x3 image.  Input image:
  4. 0 0 0 3 3 3 6 6 6 1 1 1 4 4 4 7 7 7 2 2 2 5 5 5 8 8 8 Testing the doubly linked list.
  5. Testing getWidth/getHeight on a 3x3 encoding.
  6. Good.
  7. Testing toPixImage() on a 3x3 encoding.
  8. Good.
  9. Testing setPixel() on a 3x3 encoding.
  10. Good.
  11. Testing setPixel() on a 3x3 encoding.
  12. Good.
  13. Testing setPixel() on a 3x3 encoding.
  14. Good.
  15. Testing setPixel() on a 3x3 encoding.
  16. Good.
  17. Testing setPixel() on a 3x3 encoding.
  18. Good.
  19. Testing setPixel() on a 3x3 encoding.
  20. 0 0 0 2 2 2 6 6 6 42 42 42 4 4 4 7 7 7 2 2 2 5 5 5 42 42 42 Good.
  21. Testing setPixel() on a 3x3 encoding.
  22. Good.
  23. Testing one-parameter RunLengthEncoding constuctor on another 3x3 image.  Input image:
  24. 2 2 2 3 3 3 5 5 5 2 2 2 4 4 4 5 5 5 3 3 3 4 4 4 6 6 6 Testing getWidth/getHeight on a 3x3 encoding.
  25. Good.
  26. Testing toPixImage() on a 3x3 encoding.
  27. Good.
  28. Testing setPixel() on a 3x3 encoding.
  29. Good.
  30. Testing setPixel() on a 3x3 encoding.
  31. Good.
  32. Testing one-parameter RunLengthEncoding constuctor on a 5x2 image.  Input image:
  33. 0 0 0 5 5 5 1 1 1 6 6 6 2 2 2 7 7 7 3 3 3 8 8 8 4 4 4 9 9 9 Testing getWidth/getHeight on a 5x2 encoding.
  34. Good.
  35. Testing toPixImage() on a 5x2 encoding.
  36. Good.
  37. Testing setPixel() on a 5x2 encoding.
  38. Good.
  39. Testing setPixel() on a 5x2 encoding.
  40. Good.
  41. Testing setPixel() on a 5x2 encoding.
  42. Good.
  43. Testing one-parameter RunLengthEncoding constuctor on a 3x2 image.  Input image:
  44. 0 0 0 3 3 3 1 1 1 4 4 4 2 2 2 5 5 5 Testing getWidth/getHeight on a 3x2 encoding.
  45. Good.
  46. Testing toPixImage() on a 3x2 encoding.
  47. Good.
  48. Testing setPixel() on a 3x2 encoding.
  49. Good.
  50. Testing setPixel() on a 3x2 encoding.
  51. Good.
  52. Testing setPixel() on a 3x2 encoding.
  53. Good.
复制代码





补充内容 (2015-7-18 08:19):
$ java -cp ".:jai_core.jar:jai_codec.jar" Sobel feathers.tiff 5
Reading image file feathers.tiff
Blurring image file.
Writing blurred image file blur_feathers.tiff
Performing Sobel edge detection o...
回复

使用道具 举报

🔗
moow77 2015-8-2 22:45:00 | 只看该作者
全局:
Project 1 part I 的執行結果如下圖所示 (這個作業還蠻花時間的, 不過終於有時間去抓奇樂了)
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
moow77 2015-8-3 09:28:14 | 只看该作者
全局:
以下為part II-IV結果 (圖片太多, 分2樓上傳)
更多图片 小图 大图
组图打开中,请稍候......
回复

使用道具 举报

🔗
edwin1992 2015-8-8 13:05:23 | 只看该作者
全局:
请问jai那个怎么导进去啊?就是jai_codec.jar和jai_core.jar?谢谢了
回复

使用道具 举报

🔗
edwin1992 2015-8-9 11:17:25 | 只看该作者
全局:
831128 发表于 2014-10-15 09:24
各位大牛,转专业新人有一个问题想问一下, 我已经把part1的code 写好了,可是不清楚怎样读取tiff图片文件 ...

请问jai_codec.jar和jai_core.jar下载下来放在哪啊?谢谢
回复

使用道具 举报

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

本版积分规则

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