void myRubixCube::randomize() { int i, j=22, k, random_var=13456; for (i = 0; i<random_var; i++) { k = j; while (j == k || (j == 2 && k == 3) || (j == 3 && k == 2)) j = rand() % 4; keypressed.push_back(k); switch (k) { case 0: axis.push_back(rand() % 3); break; case 1: plane.push_back(rand() % 3); break; case 2: direction = 0; rotating = false; rotate_cube_plane(); break; case 3: direction = 1; rotating = false; rotate_cube_plane(); break; } } }
void RubixCube::randomize() { time_t t; time(&t); tm * a; a=localtime(&t); int i,j,k,till; till=20+(a->tm_sec + a->tm_min + a->tm_hour + a->tm_mday + a->tm_mon + a->tm_year)%30; j=(a->tm_sec + a->tm_min + a->tm_hour + a->tm_mday + a->tm_mon + a->tm_year)%4; for(i=0;i<till;i++) { k=j; while(j==k || (j==2 && k==3) || (j==3 && k==2)) j=rand()%4; keypressed.push_back(k); switch(k) { case 0: axis.push_back(rand()%3); break; case 1: plane.push_back(rand()%3); break; case 2: dir=0; rotating=false; rotate_cube_plane(); break; case 3: dir=1; rotating=false; rotate_cube_plane(); break; } } }
void RubixCube::keyboard(unsigned char key) { switch (key) { case 'r': case 'R': //randomize(); glutPostRedisplay(); break; case ',': case '<': dir=1; keypressed.push_back(3); rotating=true; rotate_cube_plane(); break; case '.': case '>': dir=0; keypressed.push_back(2); rotating=true; rotate_cube_plane(); break; case 'a': case 'A': if(Axis == 0) { axis.push_back(0); keypressed.push_back(0); Axis = 2; } else if(Axis == 2) { axis.push_back(2); keypressed.push_back(0); Axis = 1; } else { axis.push_back(1); keypressed.push_back(0); Axis = 0; } break; case 's': case 'S': if(Row == 0) { plane.push_back(0); keypressed.push_back(1); Row = 1; } else if(Row == 1) { plane.push_back(1); keypressed.push_back(1); Row = 2; } else { plane.push_back(2); keypressed.push_back(1); Row = 0; } break; } }
void myRubixCube::keyboard(unsigned char key) { if (!rotating) { switch (key) { case '>': case '.': direction = 1; keypressed.push_back(3); rotating = true; rotate_cube_plane(); break; case ',': case '<': direction = 0; keypressed.push_back(2); rotating = true; rotate_cube_plane(); break; case 'x': case 'X': axis.push_back(0); keypressed.push_back(0); break; case 'y': case 'Y': axis.push_back(1); keypressed.push_back(0); break; case 'z': case 'Z': axis.push_back(2); keypressed.push_back(0); break; case '1': plane.push_back(0); keypressed.push_back(1); break; case '2': plane.push_back(1); keypressed.push_back(1); break; case '3': plane.push_back(2); keypressed.push_back(1); break; } } }
void RubixCube::rotation_idle_func() { if(rotating) { if(theta>=(double)90) { glutIdleFunc(NULL); rotating=false; theta=0.0; rotate_cube_plane(); } else theta+=+0.5; glutPostRedisplay(); } }