小伙用VC.NET还原多阶魔方全过程,嗯,CPU的香味
魔方自动求解程序一般有两种方法,一种是按照人还原魔方的步骤,一步步来,另外一种是使用数学方法,魔方自有一套复杂的数学理论,其中较著名的是两阶段算法(压缩文件中的cube430.exe使用的就是数学方法,程序作者便是two-phase算法发明人,文档中有该算的介绍) 。
本程序还原魔法使用的便是第一种方法。界面仿wca的cube430.exe(文件夹中的wca-explorer.zip是完整程序) ,实现界面如下:
项目结构展示:
部分源码展示:
程序还有bug,程序可能自动生成一个ml文件,保存bug发生时的魔方状态。经验总结:
当要处理的状态是很多可能状态之一,而识别出当前的状态是哪种状态又比较困难时,可以考虑构造hash函数,以区别每一种状态。求出所有可能状态的hash值和当前状态hash值,识别当前状态是哪种状态时搜索hash值即可。本程序中第二种手法还原顶面时即用到该方法。使用状态hash的方法,可以屏蔽掉状态的复杂性。但是我想到这个方法时,前面的程序已经成型了,所以第一种方法实现时还是用了很多if-else或者switch,搞得头晕。
本程序在调试时也遇到了很大麻烦,不可能一开始就设断点调试的。后来采用的方法是每一个函数在出现问题时保存当前状态成文件,然后打开文件,继续执行时才在对应函数中设断点调试。
最后,如果你在学习C/C++的过程中遇到了问题,可以来问小编哦~小编很热情的(●'◡'●)
声明:本文内容来源于网络,如有侵权请联系删除