一阶段总结。。
还有我老是给批说做事三分钟热度。不能够坚持。然后还被说这样子神马事情都做不成,感觉这个好,就做这个,后来发现遇到坎了,然后又动手做其他的。像之前的扫雷,做了一些感觉界面出不来,又换连连看。这个缺点真的是死穴,希望以后不管谁都不要学我。其实他说的很有道理,做一件事情多想想为什么,把事情的本质原理搞懂了以后实现起来就知道怎么做了。或许第一次很慢,但是到了第二次做同一件事情速度绝对会比别人快而且理解的更加深刻。
OK,屁事唠叨完了。开始讲讲这几个月学的一些东西。
先是画图板。
Swing组件的一些东西想知道用法就翻jdk1.6 API。
其实画板学到最多的是一个名次耦合度(虽然这个名次是别人告诉我的),先说下布局,从菜单,到左边的工具条,再到底下的工具条,还有中间的面板。一个部分是一个单独的控件,在主函数中调用,之间的联系靠传参,这样就大大提高代码的重用性。
连连看主要是算法。
有判断是水平的,竖直的,一个弯的,两个弯的。还有边界,当时做边界的时候是很头疼的,后来想想,我们用二维数组来放图片,然后边界的话,不就是在外面再扩大一个圈,其实这个是一个很重要的思想。水平的和竖直的其实很简单,判断之间有没有障碍物就可以了。一个弯的话。可以这两个点的另一条对角线的两个点,判断这两个点和原来两个点之间有没有障碍物,只要符合一种就行了。至于那个坑爹的两个弯的,转化一下思想,其实可以这样,先从上找,两个点中比较比较矮的一个点,向上遍历,直到碰到障碍物停止遍历,然后判断遍历到的点和另一个点能否一个弯连起来。再其他方向也遍历一遍。好像讲的有点抽象。
在此附上代码一小段
// 向上搜索的情况一
for(int i=image_height-1;i>=0;i--){for(int j=0;j<image_width;j++){Blue[i][j]=dis.read();Green[i][j]=dis.read();Red[i][j]=dis.read();if(j==image_width-1){System.out.println(dis.skipBytes(skip_width));}}}OK,BMP就可以打开了。