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

uc berkeley CS 61B homework 9

 
全局:

非常有意思的作业

回复

使用道具 举报

🔗
黎明之前 2017-5-7 15:23:56 | 只看该作者
全局:
union也有错误,盯着maze很快写好了却总是不对。。。
回复

使用道具 举报

🔗
mmyn 2017-5-18 01:18:32 | 只看该作者
全局:
感觉到了后期作业难度在逐渐下降,这次的话如何随机的部分也被作业很详细地描述出来了,所以只剩下如何把hWalls和vWalls给放进一个array里,我用的方法是加一个walls class 三个files:boolean HorV(true for H and  false for V), int x, int y,然后用array of walls即可。
另外关于part2:如何知道是否有cycle的方法其实已经被作业描述过了,开始把所有的cells设为false,每遍历一次就变为true,因为用的是dfs,所以如果是tree的话,每个cell只能遍历一次,遍历到一个是true的cell就是有cycle了,然后把walls的boolean转换一下就可以了;第二个问题如何每次random一个不一样的maze,也是用随机数呈现,即每次dfs的时候随机数生成上下左右的顺序,所以每次先遍历的点不一样,因而也就有了不同的maze。
最后上一下结果:
回复

使用道具 举报

🔗
Wei Zhang 2017-5-24 11:26:21 | 只看该作者
本楼:
全局:
done hw9

hw9.PNG (14.27 KB, 下载次数: 0)

hw9.PNG
回复

使用道具 举报

🔗
splansher 2017-5-26 18:48:05 | 只看该作者
全局:
做完了还是非常懵比。。。
照着说明 做出来了,但原理还不是特别懂



61b hw9.png (14.81 KB, 下载次数: 0)

61b hw9.png
回复

使用道具 举报

🔗
liniua 2017-7-9 08:36:49 | 只看该作者
全局:
*******************************************************************************
* *     *       *       *         * * *   *             *       * *       *   *
* * * ********* ***** ***** * * *** * * ***** *** *** ******* *** *** *** *** *
*   * *         *     *     * * *   *     *   * * *   *         * *   * *     *
***** *** *** * ***** ***** *** *** * * *** *** * * * *** ***** * * *** * * ***
*   *   *   * *         * * *   *   * *   *     * * * *     * * *       * * * *
* ***** *** *** ********* * *** * ***** ***** ***** * * *** * *** * ***** *** *
*   *   * *   * * *       *   *     * *     *     * *   *         *     *     *
* ***** * * ***** * * *** * * * *** * *** ***** ******* * *** *** *********** *
*   * * *           * *   * * * * *         *     *   * * *     * *   * *     *
* *** * * ******* * *** ********* * ***** ***** *** * * ***** *** * *** * *****
*       *   *     * *       *     *     *           * * * *   * * *           *
***** * ******* ******* * *** ***** * * ***** ***** ***** *** * * ******* *****
*     * *   * *   * *   *   *   *   * *   *     *         *   * * * * *   *   *
* ******* * * * * * *** * *** * *** ********* * ************* * *** * ***** * *
* *     * * * * *     * *     * *       * * * *   *   *   *   *     * *     * *
* *** ***** * *** ***** * * * *** * *** * * * ***** *** ***** ***** * *** * ***
* * *   *           *   * * *     * *   *   * *           *         *     *   *
* * * * *** ********* * * *** *** * *** * ***** ***** ***** * * * * ***** *****
*     * * * *       * * * * * *   * *   *         *     * * * * * *     *     *
***** * * * ******* ***** * *************** * * ********* *** ********* * *****
* *   * * * *   * *     *       *           * * *         * * * *   *         *
* *** *** * * *** * * * * *************** ******* * ***** * *** *** * *********
*     * * *       * * * *   *     *         * *   *   *     *     *           *
*** * * * * ***** * ***** ******* ***** *** * *** ******* * *** * * * * * *** *
*   *       * * * *   *         *     * * *     *     *   *     *   * * * *   *
* ***** ***** * * * *** * *** *** ***** * *** * * ***************** ***** * * *
*   *   * * *   * *     *   * *         *     *     * *       *   * *   * * * *
* * *** * * * *** * * * ***** *** *** * *** *** * *** ***** *** * * * ***** ***
* * *     *       * * *   *   *     * *   * *   * *             *       *     *
*******************************************************************************
What a fine maze you've created!
回复

使用道具 举报

头像被屏蔽
🔗
老毒物 2017-7-26 23:26:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

🔗
yywwd 2017-8-12 12:06:12 | 只看该作者
全局:
在(2)的时候,counter w 已经减到1了,但是(3)的时候,我把控制条件还写成<w,搞得我多花一个小时才发现。。。。。ps. dfs那个method还没看。。等下看看他怎么写的 先贴图吧
回复

使用道具 举报

🔗
yagamy 2017-8-14 07:48:02 | 只看该作者
全局:
我去,理解题目的意思花了半下午的时间,然后思考怎么把所有wall和所有cell分别放进一个array里,又花了一下午。。。真正理解了之后又在array的index那卡住了,一开始我用了walls[index] = i * 10 + j, 然后一直报错array index out of bound,debug了几个小时,后来发现我只考虑了横纵cell为一位数,如果上了10,我的方法就不行了。终于做出来… 自己学的还是不够好

hw9.PNG (17.64 KB, 下载次数: 0)

hw9.PNG
回复

使用道具 举报

🔗
bigworld 2018-3-12 21:00:37 | 只看该作者
全局:
关于用一个数组保存hWalls(h个元素)和vWalls(v个元素),建立一个h+v的int数组,先存入hWalls再存入vWalls。那么hWalls的index为0~h-1,依次用0,1,2,3,4...依次表示。同理,vWalls的index为h~v-1,用负数-1,-2,-3,-4...表示
在解码时,可以简单的取商,取余解码。
编码:
for(i = 0; i < horiz * (vert - 1); i++) {
            randomWalls[i] = i;
    }
    for(; i < horiz * (vert - 1) + vert * (horiz - 1); i++) {
            randomWalls[i] = -i + horiz * (vert - 1) - 1;
    }

解码:
    temp = randomWalls[i]
    wallIndexH =temp  / (vert - 1);
    wallIndexV = temp  % (vert - 1);  %hWalls, if(randomWalls[i] >= 0)



    temp = -randomWalls[i] - 1;
    wallIndexH = temp / vert;
    wallIndexV = temp % vert;  %vWalls, if(randomWalls[i] < 0)


关于PartII: 一种思路就是像首页讲得,先让所有wall = true,然后一个个拆墙;
也可以先让所有wall = false,然后发现一个circle就把那堵墙= true。个人感觉实现起来应该和第一种差不多


回复

使用道具 举报

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

本版积分规则

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