数字华容道——掌控版+遥杆例程
自小就喜欢玩拼图游戏,一个小板板上通过一个缺少的方块,移动其余的方块打乱拼图,通过一定的移动方法将方块放回到位置。这次就借助掌控版,来设计一个数字华容道。
任务:
1、 设计格子布局
在显示屏上绘制64X64像素的3X3方格。同时再额外扩展一个方格出来放置第一个块的数字位置。
完成效果如下:
201912198465..png (53.03 KB, 下载次数: 1)
2019-12-19 15:33 上传
file:///C:/Users/JIONEY/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
2、 设计数字位置关系
根据3X3的方格找出位置编号与行列位置关系。布局如下:
0123
456
789
file:///C:/Users/JIONEY/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
行列关系找到间隔21像素比较适合,同时显示位置转换成i j 行列关系。
0 è i=0 j=0;
1 è i=1 j=0; 2 è i=2 j=0; 3 è i=3 j=0;
4 è i=1 j=1; 5 è i=2 j=1; 6 è i=3 j=1;
7 è i=1 j=2; 8 è i=2 j=2; 9 è i=3 j=2;
file:///C:/Users/JIONEY/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
推算出行列与位置编号N的关系为 N=i+j*3,建立数组Nun=[0,1,2,3,4,5,6,7,8,9]
201912195442..png (23.09 KB, 下载次数: 1)
2019-12-19 15:35 上传
将位置的编号对应数组中的编号。
201912195119..png (73.04 KB, 下载次数: 3)
2019-12-19 15:34 上传
3、 遥控控制数字的位置关系
file:///C:/Users/JIONEY/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
遥杆X 控制左右移动,Y控制上下移动。
读取模拟端口数据,将数据0-4095映射-100,100
当X向左,X坐标增加1,X的范围从0-3;
当Y向上,Y坐标减少1,Y的范围从0-2;
由于0的位置很特殊,所以单独处理。
4、 位置对应数组的数据转存关系:
201912196200..png (39.75 KB, 下载次数: 1)
2019-12-19 15:35 上传
数组有9个位置,遥杆控制位置变换,做数据的位置变换。
用0做为空位,当遥杆位置发生变换时,
将当前位置i j 和数据存储AX,AY,A,松开后,位置变化,存储下一位置的i j 和数据,存储在BX BY,B,
利用数组位置读取和写入实现两个数据的交换。
201912197736..png (100.57 KB, 下载次数: 2)
2019-12-19 15:35 上传
file:///C:/Users/JIONEY/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
完成效果: