Qt魔方还原4
目的
随机打乱魔方,在”Qt还原魔方3”的基础上,完成全部还原动作,效果如下:
实施
按照第一步的思路,将每一步分解为可循环操作,并设置相应的结束条件。
比如第三步 处理第二层的四个棱色块,对好前两层
选好前两层固定的一条棱边,如果当前棱边颜色正确,则旋转下一条棱边到这个位置,并判断,每次旋转后判断是否满足前两层颜色相同条件,满足则退出循环。
void Widget::onAutobackBtn()
{
//第一步白色十字
autoBackCenter();
while(!calAutoBack1())
{
if(autoBack1zthird())break;
if(autoBack1xthird())break;
if(autoBack1xfirst())break;
if(autoBack1yfirst())break;
if(autoBack1ythird())break;
sleep(10);
}
autoBack1Last();
//第二步对好第一面加上四个侧面的T字形
autoBack2();
//第三步处理第二层的四个棱色块,对好前两层
autoBack3();
//第四步在新的黄色顶面画十字
autoBack4();
//第五步调整顶层角色块的朝向,对好顶层黄色面
autoBack5();
//第六步 调整顶层角色块顺序
autoBack6();
//第七步调整顶层棱色块顺序,将魔方最后还原
autoBack7();
autobackBtn->setText("完成");
qDebug()<<"---------finish------------";
}