第一步是底部棱块归位。
function s1_xiaobai(argument) {
var times = 10 ;
for (var i = 0; i < times; i++) {
step1();
}
}
var step1_times = 0
// 找到底层白色做成底层十字,俗称小白花
function step1(argument) {
var w_index = "";
var w_len_index ="";
var w_len_indexa="";
var w_len_indexacolor="";
var checkeeee="";
var faces="abcdef".split("");
var lenwei="1357"; //棱位
var jiaowei="0268"; //角位
var colorseq=["green","red","blue","yellow"];
var map_lenwei= ["a1", "a3", "a5", "a7", "b1", "b3", "b5", "b7", "c1", "c3", "c5", "c7", "d1", "d3", "d5", "d7", "e1", "e3", "e5", "e7", "f1", "f3", "f5", "f7"];
var map_lenweia= ["f7", "b5", "c3", "e1", "f3", "d5", "a3", "e3", "f5", "a5", "d3", "e5", "f1", "c5", "b3", "e7", "a7", "b7", "c7", "d7", "d1", "b1", "c1", "a1"];
for (var i = 0; i < colordata.length; i++) {
for (var j = 0; j < colordata[i].length; j++) {
if('white'==colordata[i][j]){
w_index += "," + faces[i] +"" + j ;
if(lenwei.indexOf(j)>=0){ //var lenwei="1357"; //棱位
checkeeee +=faces[i] ;
var this_w_len_index = "" + faces[i] +"" + j
w_len_index += "," + this_w_len_index ;
var this_w_len_indexa = map_lenweia[ map_lenwei.indexOf(this_w_len_index) ]
w_len_indexa += "," + this_w_len_indexa ;
var ff = this_w_len_indexa.split("")[0];
var ffi = this_w_len_indexa.split("")[1];
w_len_indexacolor += "," + colordata[faces.indexOf(ff)][ffi];
}
}
}
}
var hasa = (checkeeee.indexOf("a")>=0)
var needmove = false;
step1_times++;
if(step1_times<=100){
if(checkeeee.indexOf("a")<0){
if(checkeeee.indexOf("b")>=0){
U1all();
step1();
}else if(checkeeee.indexOf("c")>=0){
Uall();
step1();
}else if(checkeeee.indexOf("d")>=0){
Uall();Uall();
step1();
}else if(checkeeee.indexOf("f")>=0){
var fn = w_len_index.substr(w_len_index.indexOf("f")+1,1);
if(fn==1){U1();}
if(fn==3){}
if(fn==5){U1();U1();}
if(fn==7){U();}
F();R();F1(); //frf1,把BF楞块先放到A3面,然后放到A1,然后回退一次B面。
step1();
}else{
//这里已经是eeee.
// var fn = w_len_index.substr(w_len_index.indexOf("e")+1,1);
// var aindex = (w_len_index.indexOf("e"+fn)-1)/3;
// var ducolor = w_len_indexacolor.split(",")[aindex+1];
// var ducolor ="";
// if(fn==1){ducolor=colordata[0][4]}
// if(fn==3){}
// if(fn==5){U1();U1();}
// if(fn==7){U();}
// colorseq.indexOf(colordata[5][fn])- colorseq.indexOf(ducolor)
console.log("checkeeee是:"+ checkeeee+",应该是全E,但不一定对。" + hasa);
}
}else{
var fn= w_len_index.substr(w_len_index.indexOf("a")+1,1);
var aindex = (w_len_index.indexOf("a"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
if(fn==1){}
if(fn==3){R();}
if(fn==5){R1();}
if(fn==7){R();R();}
var bcolor = colordata[1][4];
var N =4+ colorseq.indexOf(bcolor)- colorseq.indexOf(ducolor) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
R1();F();R();
}
}
console.log(" 执行了" + step1_times + "次" );
fillcolor2box(colordata);
}
总之执行这个后。底部就小白花了。
在写第二步的时候检查到这个有错。例如:
checkeeee是:eeef,其中是否有a:false
index_mofang.html:465 白色9块分布于:,a1,a6,b1,d2,d6,e3,e4,e7,f8
index_mofang.html:466 白色棱位:,a1,b1,e3,e7
index_mofang.html:467 白色棱位对位置:,f7,f3,b7,d7
index_mofang.html:468 白色棱位对颜色:,yellow,blue,red,green
index_mofang.html:469 A面的颜色是:blue
index_mofang.html:470 B面的颜色是:red
index_mofang.html:471 C面的颜色是:yellow
index_mofang.html:472 D面的颜色是:green
index_mofang.html:473 E面的颜色是:white
index_mofang.html:474 F面的颜色是:pink
index_mofang.html:475 checkeeee是:abee,其中是否有a:true
index_mofang.html:513 has a and :a1
index_mofang.html:533 N : 2
index_mofang.html:534 Fn : 1
index_mofang.html:535 bcolor : red
所以F面这里少许修改,直接归位
}else if(checkeeee.indexOf("f")>=0){
var fn = w_len_index.substr(w_len_index.indexOf("f")+1,1);
var aindex = (w_len_index.indexOf("f"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
var bcolor = colordata[1][4];
var N = 4 + colorseq.indexOf(bcolor) - colorseq.indexOf(ducolor) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
F();F();
// if(fn==1){U1();}
// if(fn==3){}
// if(fn==5){U1();U1();}
// if(fn==7){U();}
// F();R();F1(); //frf1,把BF楞块先放到A3面,然后放到A1,然后回退一次B面。
step1();
}else{
最终第一,二步代码:
var step1_times = 0;
var step2_times = 0;
function s1_xiaobai(argument) {
var times = 20 ;
step1_times = 0;
for (var i = 0; i < times; i++) {
step1();
}
}
// 找到底层白色做成底层十字,俗称小白花
function step1(argument) {
// 找到底层白色做成底层十字,俗称小白花
// 分析:白色共8个动快 0123 5678
var w_index = "";
var w_len_index ="";
var w_len_indexa="";
var w_len_indexacolor="";
var checkeeee="";
var faces="abcdef".split("");
var lenwei="1357"; //棱位
var jiaowei="0268"; //角位
var colorseq=["green","red","blue","yellow"];
var map_lenwei= ["a1", "a3", "a5", "a7", "b1", "b3", "b5", "b7", "c1", "c3", "c5", "c7", "d1", "d3", "d5", "d7", "e1", "e3", "e5", "e7", "f1", "f3", "f5", "f7"];
var map_lenweia= ["f7", "b5", "c3", "e1", "f3", "d5", "a3", "e3", "f5", "a5", "d3", "e5", "f1", "c5", "b3", "e7", "a7", "b7", "c7", "d7", "d1", "b1", "c1", "a1"];
for (var i = 0; i < colordata.length; i++) {
for (var j = 0; j < colordata[i].length; j++) {
if('white'==colordata[i][j]){
w_index += "," + faces[i] +"" + j ;
if(lenwei.indexOf(j)>=0){ //var lenwei="1357"; //棱位
checkeeee +=faces[i] ;
var this_w_len_index = "" + faces[i] +"" + j
w_len_index += "," + this_w_len_index ;
var this_w_len_indexa = map_lenweia[ map_lenwei.indexOf(this_w_len_index) ]
w_len_indexa += "," + this_w_len_indexa ;
var ff = this_w_len_indexa.split("")[0];
var ffi = this_w_len_indexa.split("")[1];
w_len_indexacolor += "," + colordata[faces.indexOf(ff)][ffi];
}
}
}
}
var hasa = (checkeeee.indexOf("a")>=0)
console.log("白色9块分布于:"+w_index);
console.log("白色棱位:"+w_len_index); //a3,a5,e5,e7
console.log("白色棱位对位置:"+w_len_indexa); //a3,a5,e5,e7
console.log("白色棱位对颜色:"+w_len_indexacolor); //a3,a5,e5,e7
console.log("A面的颜色是:"+ colordata[0][4]);
console.log("B面的颜色是:"+ colordata[1][4]);
console.log("C面的颜色是:"+ colordata[2][4]);
console.log("D面的颜色是:"+ colordata[3][4]);
console.log("E面的颜色是:"+ colordata[4][4]);
console.log("F面的颜色是:"+ colordata[5][4]);
console.log("checkeeee是:"+ checkeeee+",其中是否有a:" + hasa);
var needmove = false;
step1_times++;
if(step1_times<=100){
if(checkeeee.indexOf("a")<0){
if(checkeeee.indexOf("b")>=0){
U1all();
step1();
}else if(checkeeee.indexOf("c")>=0){
Uall();
step1();
}else if(checkeeee.indexOf("d")>=0){
Uall();Uall();
step1();
}else if(checkeeee.indexOf("f")>=0){
var fn = w_len_index.substr(w_len_index.indexOf("f")+1,1);
var aindex = (w_len_index.indexOf("f"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
var bcolor = colordata[1][4];
var N = 4 + colorseq.indexOf(bcolor) - colorseq.indexOf(ducolor) ;
if(fn==1){U1();}
if(fn==3){ }
if(fn==5){U();U();}
if(fn==7){U();}
console.log("bcolor:",bcolor);
console.log("ducolor:",ducolor);
console.log("N_thisf:",N);
for (var i = 0; i < N; i++) {
U1all();U();
}
F();F();
step1();
}else{
//这里已经是eeee.如果颜色不对是需要拧上去的。
var fn = w_len_index.substr(w_len_index.indexOf("e")+1,1);
var aindex = (w_len_index.indexOf("e"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
var errcolor=false;
if(fn==1){errcolor = (ducolor!=colordata[0][4]) ;}
if(fn==3){errcolor = (ducolor!=colordata[1][4]) ;}
if(fn==5){errcolor = (ducolor!=colordata[2][4]) ;}
if(fn==7){errcolor = (ducolor!=colordata[3][4]) ;}
if(fn==1&&errcolor){R();}
if(fn==3&&errcolor){F();}
if(fn==5&&errcolor){B();}
if(fn==7&&errcolor){U1all();F();}
// colorseq.indexOf(colordata[5][fn])- colorseq.indexOf(ducolor)
console.log("ducolor:"+ ducolor+",colordata[0][4]" + colordata[0][4]);
}
}else{
//has a
console.log("has a and :a"+ w_len_index.substr(w_len_index.indexOf("a")+1,1) );
var fn= w_len_index.substr(w_len_index.indexOf("a")+1,1);
var aindex = (w_len_index.indexOf("a"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
// var colorseq=["green","red","blue","yellow"]; green
//B_color w_len_indexacolor.split(",")[aindex+1]
// a面有白。a->a1->color->weizhi
if(fn==1){}
if(fn==3){R();}
if(fn==5){R1();}
if(fn==7){R();R();}
var bcolor = colordata[1][4];
var N =4+ colorseq.indexOf(bcolor)- colorseq.indexOf(ducolor) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
R1();F();R();
console.log("N : "+ N );
console.log("Fn : "+ fn );
console.log("bcolor : "+ bcolor );
//a1
//色面到B需要all几次
//
// colorseq
// colorseq = (w_len_index.indexOf("a1")-1)/3
}
}
console.log(" 执行了" + step1_times + "次" );
fillcolor2box(colordata);
// if(needmove){
// if(!hasa){
// Uall();
// }
// step1();
// }
// checkeeee 排序 可以分析出 白棱出现的位置分两种:顶底,其他4面。
// 如果是其他4面,可以通过旋转魔方转置A面。然后通过R转至相同色面
// a1357 -> R
// a->bcd U
// a3,face[1]->fde F
// a7 bule yellow
// a7->a1->d7->a1
//计算棱位对应色
// for (var j = 0; j < faces.length; j++) {
// for (var i = 0; i < arr_lenwei.length; i++) {
// map_lenwei.push(""+faces[j]+""+arr_lenwei[i]);
// }
// }
// console.log(map_lenwei);
// ["a1", "a3", "a5", "a7", "b1", "b3", "b5", "b7", "c1", "c3", "c5", "c7", "d1", "d3", "d5", "d7", "e1", "e3", "e5", "e7", "f1", "f3", "f5", "f7"]
}
function s2_dicheng(argument) {
var times = 20;
step2_times = 0;
for (var i = 0; i < times; i++) {
step2();
}
}
// 2找到底层角块,并归位
function step2(argument) {
var w_index = "";
var w_len_index ="";
var w_len_indexa="";
var w_len_indexacolor="";
var checkeeee="";
var faces="abcdef".split("");
var lenwei="1357"; //棱位
var jiaowei="0268"; //角位
var colorseq=["green","red","blue","yellow"];
for (var i = 0; i < colordata.length; i++) {
for (var j = 0; j < colordata[i].length; j++) {
if('white'==colordata[i][j]){
w_index += "," + faces[i] +"" + j ;
if(jiaowei.indexOf(j)>=0){ //var jiaowei="0268";
checkeeee +=faces[i] ;
var this_w_len_index = "" + faces[i] +"" + j
w_len_index += "," + this_w_len_index ;
}
}
}
}
// 白色9块分布于:,b0,c2,e1,e3,e4,e5,e6,e7,f6
// index_mofang.html:622 白色角位:,b0,c2,e6,f6
// index_mofang.html:631 checkeeee是:bcef,其中是否有a:false
// 同理也是先将1个白色角块转至A面。然后定位于A0,然后对应相应颜色。共3个步骤
var hasa = (checkeeee.indexOf("a")>=0)
console.log("白色9块分布于:"+w_index);
console.log("白色角位:"+w_len_index); //a3,a5,e5,e7
console.log("checkeeee是:"+ checkeeee+",其中是否有a:" + hasa);
step2_times++;
if(step2_times<=100){
if(checkeeee.indexOf("a")<0){
if(checkeeee.indexOf("b")>=0){
U1all();
step2();
}else if(checkeeee.indexOf("c")>=0){
Uall();
step2();
}else if(checkeeee.indexOf("d")>=0){
Uall();Uall();
step2();
}else if(checkeeee.indexOf("f")>=0){
// 白角块在F面时有2个路线。
var fn= w_len_index.substr(w_len_index.indexOf("f")+1,1);
if(fn==0){U();F1();U1();F()}
if(fn==2){F1();U1();F()}
if(fn==6){U1();F1();U();F();}
if(fn==8){F1();U();F();}
step2();
}else{
//eeee就不拧了,先检查再拧。
}
}else{
// console.log("has a and :a"+ w_len_index.substr(w_len_index.indexOf("a")+1,1) );
var fn= w_len_index.substr(w_len_index.indexOf("a")+1,1);
var aindex = (w_len_index.indexOf("a"+fn)-1)/3;
if(fn==0){}
if(fn==2){U1();R();U();R1();}
if(fn==6){R();U();R1();U1();}
if(fn==8){R1();U1();R();U();}
//A0已经有一个白角块了。到时间看下是什么颜色了。
var colorB= colordata[1][2];
var bcolor = colordata[1][4];
var N =4+ colorseq.indexOf(bcolor)- colorseq.indexOf(colorB) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
U1(); F1(); U(); F();
}
}
console.log(" step2执行了" + step2_times + "次" );
fillcolor2box(colordata);
}
接下来第三部:中层归位。思路也是把4个找出来。且把他们固定在A1位置。然后判定颜色,然后根据公式旋转。
// 如何找?经过1\2步骤,中层块只有4个,且只可能在f1357,a35,d35,这8个位置。去掉有顶色的块,剩下就是
我也不知道是哪里有问题。多数是可以成功。但还是有少数几个不能成功。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="renderer" content="webkit">
<script src="jquery.min.js"></script>
<style>
* {
margin:0;
padding:0;
list-style:none;
box-sizing:border-box;
}
.container {
width: 100%;
height: 380px;
margin: 10px auto;
}
.box {
left: 10%;
top: 110px;
width: 320px;
perspective:500px;
position:relative;
margin: 0 auto;
}
.boxmin{
left: 25%;
top: -40%;
width: 320px;
perspective:500px;
position: relative;
margin: 0 auto;
zoom: 51%;
}
.content {
width:180px;
height:180px;
transform-style:preserve-3d;
animation:run 10s infinite;
}
.face {
width:180px;
height:180px;
position:absolute;
text-align:center;
line-height:180px;
}
/*@keyframes run {
0% {
transform:rotateY(0);
}
10% {
transform:rotateY(180deg);
}
20% {
transform:rotateX(360deg);
transform:rotateY(360deg);
}
}*/
.minibox{
width: 54px;
height:54px;
border-radius: 4px;
float: left;
border:3px solid #000;
}
.divbuttons{
height:60px;
margin:10px auto;
text-align: center;
}
.button{font-size: xx-large;width: 100px;
padding: 3px;
margin: 3px;}
</style>
<script type="text/javascript">
var colors = ["green","yellow","red","blue","white","pink"];
var sidenames = ["aside","bside","cside","dside","eside","fside"];
var colordata=[];
$(function (argument) {
//初始化colordata[]
for (var i = 0; i < colors.length; i++) {
var tmp =[];
for (var j = 0; j < 9; j++) {
tmp.push(colors[i]);
}
colordata.push(tmp);
}
// fillcolor2box(colordata);
//整体有个旋转角度可以让我们看到3面
$(".box .content").css("transform","rotateX(-35deg) rotateY(54deg) rotateZ(9deg)");
$(".boxmin .content").css("transform","rotateX(-35deg) rotateY(67deg) rotateZ(14deg)");
// 各面旋转拼凑正方体
$(".bside").css("transform","rotateY(-90deg) translateX(-71px) translateZ(90px)");
$(".cside").css("transform","rotateY(90deg) translateX(90px) translateZ(71px)");
$(".dside").css("transform","rotateY(180deg) translateX(17px) translateZ(161px)");
$(".eside").css("transform","rotateX(269deg) translateY(90px) translateZ(71px) ");
$(".fside").css("transform","rotateX(90deg) translateY(-71px) translateZ(90px)");
});
</script>
</head>
<body>
<div class="divbuttons">
<input type="button" class="button" value="U'" onclick="U1()">
<input type="button" class="button" value="U" onclick="U()">
</div>
<div class="container">
<!-- 左边两个按钮 -->
<div class="divbuttons" style="float: left;height: 100%;width: 100px;line-height: 161px;padding: 32px;">
<input type="button" class="button" value="F'" onclick="F1()">
<input type="button" class="button" value="F" onclick="F()" >
</div>
<!-- 正方体 -->
<div class="box">
<div class="content">
<div class="aside face"> <!--魔方第一个面,类名aside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="bside face"> <!--魔方第2个面,类名bside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="cside face"> <!--魔方第3个面,类名cside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="dside face"> <!--魔方第一4个面,类名dside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="eside face"> <!--魔方第5个面,类名eside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="fside face"> <!--魔方第6个面,类名fside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
</div>
</div>
<div class="boxmin">
<div class="content">
<div class="aside face"> <!--魔方第一个面,类名aside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="bside face"> <!--魔方第2个面,类名bside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="cside face"> <!--魔方第3个面,类名cside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="dside face"> <!--魔方第一4个面,类名dside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="eside face"> <!--魔方第5个面,类名eside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
<div class="fside face"> <!--魔方第6个面,类名fside-->
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
<div class="minibox"></div>
</div>
</div>
</div>
</div>
<div class="divbuttons">
<input type="button" class="button" value="R'" onclick="R1()">
<input type="button" class="button" value="R" onclick="R()">
<input type="button" class="button" value="B'" onclick="B1()">
<input type="button" class="button" value="B" onclick="B()"><br>
<input type="button" class="button" value="<-all" onclick="Uall()">
<input type="button" class="button" value="all'->" onclick="U1all()">
<input type="button" class="button" value="打乱" onclick="Rndx()">
<br>
<input type="button" class="button" value="1底层小白花" onclick="s1_xiaobai()">
<input type="button" class="button" value="2底层归位" onclick="s2_dicheng()">
<input type="button" class="button" value="3中层归位" onclick="s3_zhongcheng()">
<input type="button" class="button" value="3fenxi" onclick="fenxi()">
</div>
</body>
</html>
<script type="text/javascript">
// 顶逆
function U1() {
var rotefaces=['aside','cside','dside','bside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[0,1,2],[0,1,2],[0,1,2],[0,1,2],[0,1,2]]; //本次操作的块
var movefave = ["fside"]; //本次操作的4个相关面,一个顶面
var bno = ["01258763"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
function U() {
var rotefaces=['aside','bside','dside','cside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[0,1,2],[0,1,2],[0,1,2],[0,1,2],[0,1,2]]; //本次操作的块
var movefave = ["fside"]; //本次操作的4个相关面,一个顶面
var bno = ["36785210"];
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
// 前逆
function F1() {
var rotefaces=['aside','fside','dside','eside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[6,3,0],[6,3,0],[2,5,8],[6,3,0],[6,3,0]]; //本次操作的块
var movefave = ["bside"]; //本次操作的4个相关面,一个顶面
var bno = ["01258763"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
function F() {
var rotefaces=['aside','eside','dside','fside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[6,3,0],[6,3,0],[2,5,8],[6,3,0],[6,3,0]]; //本次操作的块
var movefave = ["bside"]; //本次操作的4个相关面,一个顶面
var bno = ["36785210"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
//右逆
function R1() {
var rotefaces=['fside','bside','eside','cside','fside']; //本次操作的4个相关面,一个顶面
var rotepos=[[8,7,6],[2,5,8],[0,1,2],[6,3,0],[8,7,6]]; //本次操作的块
var movefave = ["aside"]; //本次操作的4个相关面,一个顶面
var bno = ["01258763"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
function R() {
var rotefaces=['fside','cside','eside','bside','fside']; //本次操作的4个相关面,一个顶面
var rotepos=[[8,7,6],[6,3,0],[0,1,2],[2,5,8],[8,7,6]]; //本次操作的块
var movefave = ["aside"]; //本次操作的4个相关面,一个顶面
var bno = ["36785210"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
// 后逆
function B1() {
var rotefaces=['aside','fside','dside','eside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[2,5,8],[2,5,8],[6,3,0],[2,5,8],[2,5,8]]; //本次操作的块
var movefave = ["cside"]; //本次操作的4个相关面,一个顶面
var bno = ["36785210"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
function B() {
var rotefaces=['aside','eside','dside','fside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[2,5,8],[2,5,8],[6,3,0],[2,5,8],[2,5,8]]; //本次操作的块
var movefave = ["cside"]; //本次操作的4个相关面,一个顶面
var bno = ["01258763"]; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
// 整体顶逆
function U1all() {
var rotefaces=['aside','cside','dside','bside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8]]; //本次操作的块
var movefave = ['eside','fside']; //本次操作的4个相关面,一个顶面
var bno = ['36785210','01258763'] ; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
// 整体顶顺
function Uall() {
var rotefaces=['aside','bside','dside','cside','aside']; //本次操作的4个相关面,一个顶面
var rotepos=[[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,5,6,7,8]]; //本次操作的块
var movefave = ['eside','fside']; //本次操作的4个相关面,一个顶面
var bno = ['01258763','36785210']; //01258763 36785210
roteall(rotefaces,rotepos,movefave,bno);
//把数据对应到格子上
fillcolor2box(colordata);
}
// 打乱---随机旋转100次
function Rndx() {
var times = 20;
Rndxtimes(100);
fillcolor2box(colordata);
}
// 打乱---随机旋转1次
function Rndxtimes(times) {
for (var i = 0; i < times; i++) {
var rand = Math.floor(Math.random()*4+1) ;
if(rand==1){R();}
if(rand==2){U();}
if(rand==3){F();}
if(rand==4){Uall();}
}
fillcolor2box(colordata);
}
var step1_times = 0;
var step2_times = 0;
var step3_times = 0;
function s1_xiaobai(argument) {
var times = 20 ;
step1_times = 0;
for (var i = 0; i < times; i++) {
step1();
}
}
// 找到底层白色做成底层十字,俗称小白花
function step1(argument) {
// 找到底层白色做成底层十字,俗称小白花
// 分析:白色共8个动快 0123 5678
var w_index = "";
var w_len_index ="";
var w_len_indexa="";
var w_len_indexacolor="";
var checkeeee="";
var faces="abcdef".split("");
var lenwei="1357"; //棱位
var jiaowei="0268"; //角位
var colorseq=["green","red","blue","yellow"];
var map_lenwei= ["a1", "a3", "a5", "a7", "b1", "b3", "b5", "b7", "c1", "c3", "c5", "c7", "d1", "d3", "d5", "d7", "e1", "e3", "e5", "e7", "f1", "f3", "f5", "f7"];
var map_lenweia= ["f7", "b5", "c3", "e1", "f3", "d5", "a3", "e3", "f5", "a5", "d3", "e5", "f1", "c5", "b3", "e7", "a7", "b7", "c7", "d7", "d1", "b1", "c1", "a1"];
for (var i = 0; i < colordata.length; i++) {
for (var j = 0; j < colordata[i].length; j++) {
if('white'==colordata[i][j]){
w_index += "," + faces[i] +"" + j ;
if(lenwei.indexOf(j)>=0){ //var lenwei="1357"; //棱位
checkeeee +=faces[i] ;
var this_w_len_index = "" + faces[i] +"" + j
w_len_index += "," + this_w_len_index ;
var this_w_len_indexa = map_lenweia[ map_lenwei.indexOf(this_w_len_index) ]
w_len_indexa += "," + this_w_len_indexa ;
var ff = this_w_len_indexa.split("")[0];
var ffi = this_w_len_indexa.split("")[1];
w_len_indexacolor += "," + colordata[faces.indexOf(ff)][ffi];
}
}
}
}
var hasa = (checkeeee.indexOf("a")>=0)
console.log("白色9块分布于:"+w_index);
console.log("白色棱位:"+w_len_index); //a3,a5,e5,e7
console.log("白色棱位对位置:"+w_len_indexa); //a3,a5,e5,e7
console.log("白色棱位对颜色:"+w_len_indexacolor); //a3,a5,e5,e7
console.log("A面的颜色是:"+ colordata[0][4]);
console.log("B面的颜色是:"+ colordata[1][4]);
console.log("C面的颜色是:"+ colordata[2][4]);
console.log("D面的颜色是:"+ colordata[3][4]);
console.log("E面的颜色是:"+ colordata[4][4]);
console.log("F面的颜色是:"+ colordata[5][4]);
console.log("checkeeee是:"+ checkeeee+",其中是否有a:" + hasa);
var needmove = false;
step1_times++;
if(step1_times<=100){
if(checkeeee.indexOf("a")<0){
if(checkeeee.indexOf("b")>=0){
U1all();
step1();
}else if(checkeeee.indexOf("c")>=0){
Uall();
step1();
}else if(checkeeee.indexOf("d")>=0){
Uall();Uall();
step1();
}else if(checkeeee.indexOf("f")>=0){
var fn = w_len_index.substr(w_len_index.indexOf("f")+1,1);
var aindex = (w_len_index.indexOf("f"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
var bcolor = colordata[1][4];
var N = 4 + colorseq.indexOf(bcolor) - colorseq.indexOf(ducolor) ;
if(fn==1){U1();}
if(fn==3){ }
if(fn==5){U();U();}
if(fn==7){U();}
console.log("bcolor:",bcolor);
console.log("ducolor:",ducolor);
console.log("N_thisf:",N);
for (var i = 0; i < N; i++) {
U1all();U();
}
F();F();
step1();
}else{
//这里已经是eeee.如果颜色不对是需要拧上去的。
var fn = w_len_index.substr(w_len_index.indexOf("e")+1,1);
var aindex = (w_len_index.indexOf("e"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
var errcolor=false;
if(fn==1){errcolor = (ducolor!=colordata[0][4]) ;}
if(fn==3){errcolor = (ducolor!=colordata[1][4]) ;}
if(fn==5){errcolor = (ducolor!=colordata[2][4]) ;}
if(fn==7){errcolor = (ducolor!=colordata[3][4]) ;}
if(fn==1&&errcolor){R();}
if(fn==3&&errcolor){F();}
if(fn==5&&errcolor){B();}
if(fn==7&&errcolor){U1all();F();}
// colorseq.indexOf(colordata[5][fn])- colorseq.indexOf(ducolor)
console.log("ducolor:"+ ducolor+",colordata[0][4]" + colordata[0][4]);
}
}else{
//has a
console.log("has a and :a"+ w_len_index.substr(w_len_index.indexOf("a")+1,1) );
var fn= w_len_index.substr(w_len_index.indexOf("a")+1,1);
var aindex = (w_len_index.indexOf("a"+fn)-1)/3;
var ducolor = w_len_indexacolor.split(",")[aindex+1];
// var colorseq=["green","red","blue","yellow"]; green
//B_color w_len_indexacolor.split(",")[aindex+1]
// a面有白。a->a1->color->weizhi
if(fn==1){}
if(fn==3){R();}
if(fn==5){R1();}
if(fn==7){R();R();}
var bcolor = colordata[1][4];
var N =4+ colorseq.indexOf(bcolor)- colorseq.indexOf(ducolor) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
R1();F();R();
console.log("N : "+ N );
console.log("Fn : "+ fn );
console.log("bcolor : "+ bcolor );
//a1
//色面到B需要all几次
//
// colorseq
// colorseq = (w_len_index.indexOf("a1")-1)/3
}
}
console.log(" 执行了" + step1_times + "次" );
fillcolor2box(colordata);
// if(needmove){
// if(!hasa){
// Uall();
// }
// step1();
// }
// checkeeee 排序 可以分析出 白棱出现的位置分两种:顶底,其他4面。
// 如果是其他4面,可以通过旋转魔方转置A面。然后通过R转至相同色面
// a1357 -> R
// a->bcd U
// a3,face[1]->fde F
// a7 bule yellow
// a7->a1->d7->a1
//计算棱位对应色
// for (var j = 0; j < faces.length; j++) {
// for (var i = 0; i < arr_lenwei.length; i++) {
// map_lenwei.push(""+faces[j]+""+arr_lenwei[i]);
// }
// }
// console.log(map_lenwei);
// ["a1", "a3", "a5", "a7", "b1", "b3", "b5", "b7", "c1", "c3", "c5", "c7", "d1", "d3", "d5", "d7", "e1", "e3", "e5", "e7", "f1", "f3", "f5", "f7"]
}
function s2_dicheng(argument) {
var times = 20;
step2_times = 0;
for (var i = 0; i < times; i++) {
step2();
}
}
// 2找到底层角块,并归位
function step2(argument) {
var w_index = "";
var w_len_index ="";
var w_len_indexa="";
var w_len_indexacolor="";
var checkeeee="";
var faces="abcdef".split("");
var lenwei="1357"; //棱位
var jiaowei="0268"; //角位
var colorseq=["green","red","blue","yellow"];
for (var i = 0; i < colordata.length; i++) {
for (var j = 0; j < colordata[i].length; j++) {
if('white'==colordata[i][j]){
w_index += "," + faces[i] +"" + j ;
if(jiaowei.indexOf(j)>=0){ //var jiaowei="0268";
checkeeee +=faces[i] ;
var this_w_len_index = "" + faces[i] +"" + j
w_len_index += "," + this_w_len_index ;
}
}
}
}
// 白色9块分布于:,b0,c2,e1,e3,e4,e5,e6,e7,f6
// index_mofang.html:622 白色角位:,b0,c2,e6,f6
// index_mofang.html:631 checkeeee是:bcef,其中是否有a:false
// 同理也是先将1个白色角块转至A面。然后定位于A0,然后对应相应颜色。共3个步骤
var hasa = (checkeeee.indexOf("a")>=0)
console.log("白色9块分布于:"+w_index);
console.log("白色角位:"+w_len_index); //a3,a5,e5,e7
console.log("checkeeee是:"+ checkeeee+",其中是否有a:" + hasa);
step2_times++;
if(step2_times<=100){
if(checkeeee.indexOf("a")<0){
if(checkeeee.indexOf("b")>=0){
U1all();
step2();
}else if(checkeeee.indexOf("c")>=0){
Uall();
step2();
}else if(checkeeee.indexOf("d")>=0){
Uall();Uall();
step2();
}else if(checkeeee.indexOf("f")>=0){
// 白角块在F面时有2个路线。
var fn= w_len_index.substr(w_len_index.indexOf("f")+1,1);
if(fn==0){U();F1();U1();F()}
if(fn==2){F1();U1();F()}
if(fn==6){U1();F1();U();F();}
if(fn==8){F1();U();F();}
step2();
}else{
//eeee就不拧了,先检查再拧。
}
}else{
// console.log("has a and :a"+ w_len_index.substr(w_len_index.indexOf("a")+1,1) );
var fn= w_len_index.substr(w_len_index.indexOf("a")+1,1);
var aindex = (w_len_index.indexOf("a"+fn)-1)/3;
if(fn==0){}
if(fn==2){U1();R();U();R1();}
if(fn==6){R();U();R1();U1();}
if(fn==8){R1();U1();R();U();}
//A0已经有一个白角块了。到时间看下是什么颜色了。
var colorB= colordata[1][2];
var bcolor = colordata[1][4];
var N =4+ colorseq.indexOf(bcolor)- colorseq.indexOf(colorB) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
U1(); F1(); U(); F();
}
}
console.log(" step2执行了" + step2_times + "次" );
fillcolor2box(colordata);
}
function s3_zhongcheng(argument) {
var times = 10;
step3_times = 0;
for (var i = 0; i < times; i++) {
step3();
}
}
function step3(argument) {
// 思路也是把4个找出来。且把他们固定在A1位置。然后判定颜色,然后根据公式旋转。
// 如何找?经过12步骤,中层块只有4个,且只可能在f1357,a35,d35,这8个位置。去掉有顶色的块,剩下就是
var fcolro = colordata[5][4];
var maybepos = ["f1","f3","f5","f7","a3","a5","d3","d5"];
var maybeposa = ["d1","b1","c1","a1","b5","c3","c5","b3"];
var maybecolor = [];
var maybecolora =[];
var pos=[];
var posa=[];
var color3=[];
var color3a=[];
var checkeeee="";
var faces="abcdef".split("");
maybecolor = maybepos.map(function(v,i) {
return colordata[faces.indexOf(v.substr(0,1))][v.substr(1)];
});
maybecolora = maybeposa.map(function(v,i) {
return colordata[faces.indexOf(v.substr(0,1))][v.substr(1)];
});
for (var i = 0; i < maybecolor.length; i++) {
if(maybecolor[i] != fcolro && maybecolora[i] != fcolro){
checkeeee+=maybepos[i].substr(0,1);
pos.push(maybepos[i]);
posa.push(maybeposa[i]);
color3.push(maybecolor[i]);
color3a.push(maybecolora[i]);
}
}
console.log(fcolro);
console.log(pos);
console.log(posa);
console.log(color3);
console.log(color3a);
console.log(checkeeee);
var colorseq=["green","red","blue","yellow"];
step3_times++;
if(step3_times<=100){
if(checkeeee.indexOf("f")<0){
if(checkeeee.indexOf("a")>=0){
if(pos.indexOf("a3")>=0 && checknotokstep3("a3")){
U1();F1();U();F();U();R();U1();R1();step3();
}else if(pos.indexOf("a5")>=0 && checknotokstep3("a5")){ // a5
Uall();step3();
}
}else if(checkeeee.indexOf("d")<0){
if(pos.indexOf("d3")>=0 && checknotokstep3("d3")){
U1all();U1all();step3();
}else if(pos.indexOf("d5")>=0 && checknotokstep3("d5")){ // a5
Uall();step3();
}
}
}else{
//公式f1357
var fn = 0;
for (var i = 0; i < pos.length; i++) {
if(pos[i].indexOf("f")>=0){
fn= i;
}
}
console.log(pos[fn]);
console.log(color3[fn]);
console.log(color3a[fn]);
console.log(4+colorseq.indexOf(color3[fn])-colorseq.indexOf(color3a[fn]));
console.log(colorseq);
if(colorseq.indexOf(color3[fn])-colorseq.indexOf(color3a[fn])==-1 || colorseq.indexOf(color3[fn])-colorseq.indexOf(color3a[fn])==3 ){
console.log("顺:" + color3[fn] + color3a[fn] );
//顺就放到f7
if(pos[fn]=="f1"){U();U();}
if(pos[fn]=="f3"){U1();}
if(pos[fn]=="f5"){U();}
var N =4+ colorseq.indexOf(colordata[0][4]) - colorseq.indexOf(color3a[fn]) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
//u1f1ufuru1r
U1();F1();U();F();U();R();U1();R1();
}else{
//反就放到f3
if(pos[fn]=="f1"){U1(); }
if(pos[fn]=="f5"){U();U();}
if(pos[fn]=="f7"){U();}
console.log("反:" + color3[fn] + color3a[fn] );
var N =4+ colorseq.indexOf(colordata[0][4]) - colorseq.indexOf(color3[fn]) ;
for (var i = 0; i < N; i++) {
U1all();U();
}
U();R();U1();R1();U1();F1();U();F();
}
}
}
}
function fenxi(argument) {
console.clear();
var fcolro = colordata[5][4];
var maybepos = ["f1","f3","f5","f7","a3","a5","d3","d5"];
var maybeposa = ["d1","b1","c1","a1","b5","c3","c5","b3"];
var maybecolor = [];
var maybecolora =[];
var pos=[];
var posa=[];
var color3=[];
var color3a=[];
var checkeeee="";
var faces="abcdef".split("");
maybecolor = maybepos.map(function(v,i) {
return colordata[faces.indexOf(v.substr(0,1))][v.substr(1)];
});
maybecolora = maybeposa.map(function(v,i) {
return colordata[faces.indexOf(v.substr(0,1))][v.substr(1)];
});
for (var i = 0; i < maybecolor.length; i++) {
if(maybecolor[i] != fcolro && maybecolora[i] != fcolro){
checkeeee+=maybepos[i].substr(0,1);
pos.push(maybepos[i]);
posa.push(maybeposa[i]);
color3.push(maybecolor[i]);
color3a.push(maybecolora[i]);
}
}
console.log(fcolro);
console.log(pos);
console.log(posa);
console.log(color3);
console.log(color3a);
console.log(checkeeee);
for (var i = 0; i < pos.length; i++) {
console.log(checknotokstep3(pos[i]));
}
}
function checknotokstep3(pos) {
if(pos=="a3"){
var a=colordata[0][3];
var b=colordata[0][4];
var c=colordata[1][5];
var d=colordata[1][4];
return (a!=b) || (c!=d) ;}
if(pos=="a5"){ return (colordata[0][5]!=colordata[0][4]) || (colordata[2][3]!=colordata[2][4]) ;}
if(pos=="d3"){ return (colordata[3][3]!=colordata[3][4]) || (colordata[2][5]!=colordata[2][4]) ;}
if(pos=="d5"){ return (colordata[3][5]!=colordata[3][4]) || (colordata[1][3]!=colordata[1][4]) ;}
}
function roteall(rotefaces,rotepos,movefave,bno ) {
// var rotefaces=['fside','cside','eside','bside','fside']; //本次操作的4个相关面,一个顶面
// var rotepos=[[8,7,6],[6,3,0],[0,1,2],[2,5,8],[8,7,6]]; //本次操作的块
// var movefave = "aside"; //本次操作的4个相关面,一个顶面
// var bno = "36785210"; //01258763 36785210
//为复制先存一个a面的顶上3个块颜色
var tmpcolordata = [];
for (var i = 0; i < colordata.length; i++) {
tmpcolordata.push(colordata[i].concat() ); //保存第一个数据
}
for (var i = 0; i < rotefaces.length; i++) { //4个面轮流复制,最后一个面的时候使用保存的数据
for (var j = 0; j < rotepos[i].length; j++) {
if(i<4){
colordata[sidenames.indexOf(rotefaces[i+1])][rotepos[i+1][j]] =
tmpcolordata[sidenames.indexOf(rotefaces[i])][rotepos[i][j]];
}
}
}
tmpcolordata=[];
//顶面旋转
for (var k = 0; k < movefave.length; k++) {
var ci = sidenames.indexOf(movefave[k]);
var bn = bno[k].split("");// 顶面的操作是这8个格子依次右进3次 "01258763"顺时针
for (var i = 0; i < 2; i++) {
var tmp = colordata[ci][bn[0]]; //保存第一个数据
for (var j = 0; j < bn.length; j++) {
if(j>=bn.length-1){
colordata[ci][bn[j]]= tmp ;
}else{
colordata[ci][bn[j]]= colordata[ci][bn[j+1]] ;
}
}
}
}
}
$(function() {
var xx;
var yy;
var xxyystop = false;
$(".box .content").mousedown(function(e) {
xx=e.pageX;
yy=e.pageY;
xxyystop = true ;
console.log("x:" + xx + ",y:" + yy);
});
$(".box .content").mousemove(function(e) {
if(xxyystop){
minimove(e.pageX-xx,e.pageY-yy);
console.log("x:" + xxyystop+ xx + ",y:" + yy);
}
});
$(".box .content").mouseup(function(e) {
xxyystop=false;
});
Rndx();
s1_xiaobai();
s2_dicheng();
s3_zhongcheng();
})
function minimove(x,y) {
var rx = -30 + x/3;
var ry = 30 +y/3;
$(".box .content").css("transform","rotateX("+rx+"deg) rotateY("+ry+"deg) rotateZ(9deg)");
}
//把数据对应到格子上
function fillcolor2box(colordata) {
sidenames.map(function(value,index,array) {
var k= sidenames.indexOf(value);
for (var i = 0; i < 9; i++) {
$(".box ."+value+" div").eq(i).css("background",colordata[k][i]);
if("aside,bside,fside".split(",").indexOf(value)>=0){
$(".boxmin ."+value+" div").eq(i).css("background","fixed");
$(".boxmin .minibox").css("border","1px solid rgb(138, 135, 135)");
}else{
$(".boxmin ."+value+" div").eq(i).css("background",colordata[k][i]);
}
}
});
}
</script>
<script>
function test() {
// $(".content").css("transform","rotateX(-30deg) rotateY(150deg) rotateZ(0deg)");
// $(".aside").css("transform","rotateY(0deg) translateX(0px) translateZ(0px)");
// $(".bside").css("transform","rotateY(90deg) translateX(90px) translateZ(-90px)");
// $(".cside").css("transform","rotateY(-90deg) translateX(-71px) translateZ(-71px)");
// $(".dside").css("transform","translateZ(-161px)");
// $(".eside").css("transform","rotateX(90deg) translateY(-71px) translateZ(-71px) ");
// $(".fside").css("transform","rotateX(-90deg) translateY(90px) translateZ(-90px)");
// // rotefaces.map(function(vax,inx) {
// rotepos.map(function(v,i) {
// if(inx>rotefaces.length-2){
// colordata[sidenames.indexOf(vax)][i] = tmpcolordata[sidenames.indexOf(rotefaces[0])][i];
// }else{
// colordata[sidenames.indexOf(vax)][i] = colordata[sidenames.indexOf(rotefaces[inx+1])][i];
// }
// console.log(colordata);
// })
// });
var thiscolors=[];
var rotefaces=['aside','bside','dside','cside']; //本次操作的4个相关面,一个顶面
var rotepos=[0,1,2]; //本次操作的块
var tmpcolordata = []; //为复制先存一个a
for (var i = 0; i < rotepos.length; i++) {
tmpcolordata.push(colordata[sidenames.indexOf(rotefaces[0])][i]); //保存第一个数据
}
// console.log(tmpcolordata);
for (var i = 0; i < rotefaces.length; i++) {
for (var j = 0; j < rotepos.length; j++) {
if(i>rotefaces.length-2){//c=a
colordata[sidenames.indexOf(rotefaces[i])][j] = tmpcolordata[j];
}else{ //aside=bside,b=d,d=c
colordata[sidenames.indexOf(rotefaces[i])][j] = colordata[sidenames.indexOf(rotefaces[i+1])][j];
}
}
}
var movefave = "fside"; //本次操作的4个相关面,一个顶面
var ci = sidenames.indexOf(movefave);
// var bn = "01258763".split("");//顶面的操作是这8个格子依次前进3次
var bn = "36785210".split("");//顶面的操作是这8个格子依次前进3次
//顶层 01258763 进行3次移位
for (var i = 0; i < 2; i++) {
var tmp = colordata[ci][bn[0]];
// console.log(tmp);
for (var j = 0; j < bn.length; j++) {
if(j>=bn.length-1){
colordata[ci][bn[j]]= tmp ;
}else{
colordata[ci][bn[j]]= colordata[ci][bn[j+1]] ;
}
}
// consolebn(colordata);
}
sidenames.map(function(value,index,array) {
var k= sidenames.indexOf(value);
for (var i = 0; i < 9; i++) {
$("."+value+" div").eq(i).css("background",colordata[k][i]);
}
})
}
// function consolebn(colordata) {
// var bn = "01258763".split("");
// var ctm = [];
// for (var i = 0; i < 8; i++) {
// ctm.push(colordata[5][bn[i]]);
// }
// console.log(ctm);
// }
// var maxt=10;
// var t1=0;
// var myVar1;
// run("aside","0_0_0_0","-90_-71_0_-71");
// run("bside","90_90_0_-0","0_0_0_0");
// run("dside","0_0_0_-161","90_90_0_-90");
// function run(side,start,end) {
// myVar = setInterval(function() {
// console.log( (parseInt(end.split("_")[0]) - parseInt(start.split("_")[0])) / maxt * t);
// console.log( t);
// $("."+side).css("transform","rotateY("+ (parseInt(end.split("_")[0]) - parseInt(start.split("_")[0])) / maxt * t
// +"deg) translateX("+ (parseInt(end.split("_")[1]) - parseInt(start.split("_")[1])) / maxt * t
// +"px) translateY("+ (parseInt(end.split("_")[2]) - parseInt(start.split("_")[2])) / maxt * t
// +"px) translateZ("+ (parseInt(end.split("_")[3]) - parseInt(start.split("_")[3])) / maxt * t
// +"px)");
// t++;
// if(t>10){
// clearInterval(myVar);
// }
// // alert( parseInt(end.split("_")[0]) - parseInt(start.split("_")[0]) / maxt * t );
// }, 100);
// }
</script>