- 博客(9)
- 资源 (5)
- 收藏
- 关注
原创 Android华容道之一步一步实现-8-开始游戏
开始游戏指的是开始打乱图片顺序。效果图如下:先说产生随机数,利用随机数产生一个[0-14]的整数,代码如下:private void init_num_arr() { for (int i = 0; i < 16; i++) { num_arr[i] = -1; } num_arr[15] ...
2019-04-19 08:03:25 790 1
原创 Android华容道之一步一步实现-7-重构代码
是时候做一点代码的重构了,毕竟已经是一个可运行的版本了,并且顺带做一点点美化的工作,先看效果图,重构和美化完之后的版本效果图。重构第一部分如果是数字版,不再使用带有数字的图片,而是使用动态创建数字图片的方式。并在图片上绘制数字,代码如下:private void draw_text(Bitmap bitmap, String text) { int...
2019-04-18 09:03:58 919
原创 Android华容道之一步一步实现-6-还原状态检测
再次说明一下,我们的华容道的最终版本是图像华容道,不是纯数字的华容道,难度当然要比纯数字版的华容道大多了,因为在玩的时候要记住整福图像以及被切分后,每一张小图片应该在什么位置,如果是一幅您不熟悉的图片的话,是很考察观察力和记忆力的。但是无论是图片版也好,数字版也好,我们实现的本质都是一样的。我们先说数字版的华容道怎么判断已经还原。还原状态也就是初始状态,1234,5678,9 10 1...
2019-04-17 09:11:12 407
原创 Android华容道之一步一步实现-5-图像块移动算法实现
首先祝贺一下,完成这一步,0.1版的图像华容道就实现了,就是能够自己可以自由玩耍了。不要着急一次成型,要使用Agile的思想,每天一次更新,但是每天都是可用的,一个可用的软件比别的都重要。优化啊,界面啊,性能啊,重构啊,别急,慢慢来。在上一篇文章中提到了具体的算法思想,这次就是具体的实现,主要就这个一个函数,根据手指触摸的位置来对所有的图像块进行重新排序,但是实际上每次最多三块图像的位...
2019-04-17 08:20:33 788
原创 Android华容道之一步一步实现-4-图像块移动算法
下一个关键点就是图像块的移动,以如图为例。假设空格处于第二行第三格,那么此时只有触摸第二行以及第三列的图像块的时候才需要移动图像块,因为别的图像块不能移动。当触摸发生在合法的图像块的时候,即上面图中的十字交叉黑线区域,则有四种情况出现,即移动图像块有四种可能,向上,向下,向左,向右。比如手指触摸在7号图像块,这7号图像块只能向左移动,别的图像块都不用移动。再比如手指触摸在...
2019-04-16 10:15:05 748
原创 Android华容道之一步一步实现-3 -手指触摸处理
华容道关键点之一出现了,就是处理触摸,包括手指按下,抬起,移动等。自己实现一个处理触摸的类,然后处理onTouchEvent(MotionEvent event)事件,在这里处理手指按下,抬起,移动事件。代码为:这里的效果是手指触摸一下,16块小图像依次交换package com.example.szhrd;import android.R.bool;im...
2019-04-16 09:45:36 904
原创 Android华容道之一步一步实现-2-图片分割
因为华容道是16个格子,所以要把一张大一点的图片分割成16个相等的小图片。可以使用Bitmap.createBitmap方法来进行。直接上代码ori_bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.koala);原始图片下面对原始图片进行切分,分为16张 ori_bitmap = ...
2019-04-15 21:36:30 1590 1
原创 Android华容道之一步一步实现-序言
女儿看了最强大脑的数字华容道节目之后,就缠着要玩数字华容道,买了实物版,玩了几天,感觉好像还没有过瘾,就让我做个手机版的数字华容道游戏。说明一下,最终要实现的版本并不是最强大脑那种数字版的华容道,而是图像版的华容道,也就是说要比数字华容道的难度大多了,玩的时候不但要记住整福图像,而且要记住每一个小图像块的位置才能还原,不但需要很强的观察力,也需要很强的记忆力,因为这不是拼图游戏。虽然是久经...
2019-04-15 09:18:34 1930
原创 Ubuntu迁移/boot卷
默认/boot卷总是不是太大,总是有很多理由需要/boot卷很大,说重点,如何在不重新装机的情况下迁移到另外一个空间很大的卷上。步骤:(亲测有效)假设有一个卷/dev/sdc1,并且空间足够1.拷贝/boot里面的所有东西到一个临时目录,比如叫/tmp/boot2.umount /boot3.mount /dev/sdc1 /boot4.拷贝/tmp/boot里面的所有文件...
2019-04-05 19:11:16 911
C语言控制台时钟显示代码
2021-03-07
C/C++图实现运动会比赛安排
2021-03-07
C/C++哈弗曼编码,译码
2021-03-07
C语言宿舍管理系统,二分查找
2021-03-07
基于C++模板(template)的二叉树,支持任意类型为数据
2021-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人