前面已经让魔方完成中间层:接下来第四步:
function step4(){
var fcolor = colordata[5][4];
var count = 0;
var pos =[];
for (var i = 0; i < 9; i++) {
if(colordata[5][i]===fcolor){ count++;pos.push(i);}
}
console.log(count);
console.log(pos);
if(count>=1 && count<3){
if((colordata[0][1]===fcolor) && (colordata[1][1]===fcolor)){
F();R();U();R1();U1();F1();F();R();U();R1();U1();F1();F();R();U();R1();U1();F1();
}else if((colordata[4][1]===fcolor) && (colordata[1][1]===fcolor)){
U1all();step4();
}else if((colordata[4][1]===fcolor) && (colordata[2][1]===fcolor)){
U1all();U1all();step4();
}else if((colordata[0][1]===fcolor) && (colordata[2][1]===fcolor)){
Uall();step4();
}
}
if(count>=3){
if(pos.indexOf(1)>=0 && pos.indexOf(7)>=0 ){
console.log("heng");
if(colordata[1][1]===fcolor){
F();R();U();R1();U1();F1();
}else if(colordata[2][1]===fcolor){
Uall();Uall();F();R();U();R1();U1();F1();
}
}else if(pos.indexOf(3)>=0 && pos.indexOf(5)>=0 ){
Uall();step4();
}else if(pos.indexOf(1)>=0 && pos.indexOf(5)>=0 ){
F();R();U();R1();U1();F1();F();R();U();R1();U1();F1();F();R();U();R1();U1();F1();F();R();U();R1();U1();F1();
}else{
Uall();step4();
}
}
}
function step5(argument) {
// R1();U();U();R();U();R1();U();R();
// 经过前面4步,顶面已经是十字了,用这个公式可以让顶部出现以下几种图案:
}
function step5(argument) {
// R1();U();U();R();U();R1();U();R();
// 经过前面4步,顶面已经是十字了,用这个公式可以让顶部出现以下几种图案:
// 还是检查顶层的色块个数
var fcolor = colordata[5][4];
var count = 0;
var pos =[];
for (var i = 0; i < 9; i++) {
if(colordata[5][i]===fcolor){ count++;pos.push(i);}
}
console.log(count);
console.log(pos);
if(count==5){
R1();U();U();R();U();R1();U();R();
}
if(count==6){
if(colordata[0][2]===fcolor){
R1();U();U();R();U();R1();U();R();
}else{
Uall();step5();
}
}
if(count==7){
if(colordata[5][0]===fcolor && colordata[5][8]===fcolor ){
if(colordata[0][0]===fcolor){
R1();U();U();R();U();R1();U();R();
}
}else if(colordata[5][0]===fcolor && colordata[5][2]===fcolor){
Uall();step5();
}else if(colordata[5][2]===fcolor && colordata[5][8]===fcolor){
Uall();step5();
}else if(colordata[5][8]===fcolor && colordata[5][6]===fcolor){
if(colordata[1][0]===fcolor && colordata[2][2]===fcolor){
R1();U();U();R();U();R1();U();R();
}
}else if(colordata[5][6]===fcolor && colordata[5][0]===fcolor){
if(colordata[2][0]===fcolor && colordata[2][2]===fcolor){
R1();U();U();R();U();R1();U();R();
}else{
Uall();step5();
}
}
}
}
我感觉公式不对,无法完成顶面。看下是不是哪里写错了。