为了账号安全,请及时绑定邮箱和手机立即绑定

快速实现不一样的移动拼图

阿旭_ 移动开发工程师
难度初级
时长 1小时17分
学习人数
综合评分9.63
35人评价 查看评价
9.7 内容实用
9.7 简洁易懂
9.5 逻辑清晰
if (x == null_x && Math.abs(y - null_y) == 1) {
return true;
} else if (y == null_y && Math.abs(x - null_x) == 1) {
return true;
}

用绝对值的方法感觉更方便
非常好的学习资料,已经get it,希望以后多出这样的实例,感谢ing
1240604587@qq.com

讲师回答 / 阿旭_
把代码贴上来吧,我写这个代码故意把代码都写在了一个MainActivity里,所以你粘过来我看一眼就知道了。猜测是少一行交换点击位置与空方块的代码

已采纳回答 / 阿旭_
只要结果对就行,怎么实现的根据自己的想法来就OK。
你们谁有源码诶
这里的break只跳过第二层for 应该在外面也判断一次,提高程序运行效率
如果把一下两行调转一下,岂不妙哉
/**
* 设置最后一个方块为空的数据
*/
setNullImageView(iv_game_arr[2][4]);
/**
* 随机打乱顺序
*/
randomMove();
/**
* 手势的判断
*
* @param sx
* @param sy
* @param ex
* @param ey
* @return 上下左右 1 2 3 4
*/
public int getDirByGes(float sx, float sy, float ex, float ey) {
// 左右:横向距离大于竖直距离
// 左 :终点x小于起点x
// 安卓y正轴方向为竖直向下
// 上:终点y小于起点y
return Math.abs(sx-ex)<Math.abs(sy-ey)?(sy>ey?1:2):(sx>ex?3:4);
}

讲师回答 / 阿旭_
如果要是按自己的逻辑实现起来总是错的,不知道正确的方法。那么可以把activity这个类的代码都发过来,我结果上下文看看是不是其它地方写错了

已采纳回答 / 阿旭_
我这边按照我的逻辑应该是没讲错,因为最终结果是对的啊。建议以实际运行效果为准。方法不唯一,只要清算自己写的x, y分别代表什么用自己的逻辑实现就好,
我想知道那个是什么软件?
课程须知
学完课程内讲解的代码后,可尝试修改逻辑实现“2048”小游戏
老师告诉你能学到什么?
1、注释先行:良好的代码编写风格 2、代码分层:了解MVC之间的关系。 (1)M数据:初始化在数据V之前。 (2)V视图:注意尽可能每个视图写在一块,绑定好相应的Model (3)C控制:先写控制层需要的内容注释,再写相应的实现方法。 慕课网Android讨论群② 170368200

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消