数独游戏--弹出Dialog选择数字后刷新表格
来源:互联网 发布:质量好的女装品牌知乎 编辑:程序博客网 时间:2024/06/05 02:38
这最后一步有点多,所以就简单梳理下就好了。
首先,要编写一个KeyDialog继承Dialog类,在构造方法中传入Context,ShuduView,int[] used三个参数。
接着在onCreate方法中完成KeyDialog的布局设置,初始化Dialog里面的按钮,这个时候used数组就有用了,要把不能用的数字按钮设置为不可见。随后为按钮添加监听器,在onClick方法中返回一个信息传给shuduView,这个信息实际上就是按钮的数值。这时候shuduView 对象里面的getSelectedTile方法被调用,这个方法里面有一个判断–如果传回的数值没有被用过,那么invalidate()方法调用刷新表格内的数据。
描述到这里,就该编写前面博客里面说过的Game.java文件了,首先新建一个三维数组,int[][][] usedData=new int[9][9][],用来存储x,y和已经在x,y不能用的数值。
首先要写一个用来判断在表格(x,y)位置不可用的数值,返回一个数组。首先判断纵列,然后横列,最后一个大的3*3单元格内不能用的数字,不要忘记对数组进行压缩。
然后需要初始化usedData数组了,编写一个函数,两个循环相互嵌套,代表循环x轴和y轴,在Game的构造方法中进行调用。
不要忘了重写ShuduView里面的onTouchEvent方法,当点击屏幕的时候,该方法被调用,这里可以使KeyDialog类实现。
自己出现的几个问题:
1、在KeyDialog类的构造函数里面去实现本应该在onCreate方法里面的实现的内容,其实压根没先到去重写Dialog的onCreate方法,忘了。
2、其次构造方法内的参数没有考虑周到,没有意识传入shuduView的对象和used数组。
3、在ShuduView类中,getSelectedTile方法中没有写判断,直接更新Game中的usedData数组,然后不论是否满足条件就执行invalidate方法,结果导致一行可以填入相同的数据。
- 数独游戏--弹出Dialog选择数字后刷新表格
- 数独游戏--画表格
- Android数字游戏之数独(自动随机生成不同难度的数独)
- 数独游戏求解
- 数独游戏
- 数独游戏
- 数独游戏破解
- 数独游戏程序
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏新篇章
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏开发
- 数独游戏
- 在Swift里两个枚举值一起使用的方法
- 滑动隐藏和显示tabBar和NavigationBar
- 开灯问题
- 【JS】Javascript介绍
- 程序员的11个阶段
- 数独游戏--弹出Dialog选择数字后刷新表格
- requests模拟登录百度
- 112.AVAudioSession音频会话(类别选择/音频输出切换)
- SSH和SSM对比总结
- 【转载】解决IE6、IE7、IE8样式不兼容问题
- 【转载】CSS样式:浏览器之间样式区分
- asp.net页面传值测试实例代码(前后台)
- 五种提高 SQL 性能的方法
- 继承的总结