Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ELEC351_Group_T by
ALGORITHM.cpp
00001 #include "mbed.h" //Include the mbed libraries 00002 #include "ALGORITHM.hpp" //Include the header file, this acts like a series of forward declarations 00003 #include "SERIAL_COMMANDS.hpp" 00004 00005 //Constructor 00006 ALGORITHM::ALGORITHM() //Constructor 00007 { 00008 _State = 0; 00009 } 00010 00011 ALGORITHM::~ALGORITHM(){} //Destructor 00012 00013 void ALGORITHM::ALGORITHM_INIT() 00014 { 00015 _State = 0; 00016 /* 00017 Needs to know what colour all of the positions of the cube are in so that it can enact upon this data. 00018 00019 */ 00020 } 00021 00022 void ALGORITHM::Find_edges()//Sets the internal variable to the location of all the pieces and the positions of them 00023 { 00024 //Reset the Pointer Values 00025 _White_Pointer_Edge = 0; 00026 _Orange_Pointer_Edge = 0; 00027 _Blue_Pointer_Edge = 0; 00028 _Red_Pointer_Edge = 0; 00029 _Green_Pointer_Edge = 0; 00030 _Yellow_Pointer_Edge = 0; 00031 //Reset the 00032 00033 _Find_edges_White(); 00034 _Find_edges_Orange(); 00035 _Find_edges_Blue(); 00036 _Find_edges_Red(); 00037 _Find_edges_Green(); 00038 _Find_edges_Yellow(); 00039 } 00040 00041 void ALGORITHM::Find_Corners()//Sets the internal variable to the location of all the pieces and the positions of them 00042 { 00043 //Reset the Pointer Values 00044 _White_Pointer_Corner = 0; 00045 _Orange_Pointer_Corner = 0; 00046 _Blue_Pointer_Corner = 0; 00047 _Red_Pointer_Corner = 0; 00048 _Green_Pointer_Corner = 0; 00049 _Yellow_Pointer_Corner = 0; 00050 //Reset the 00051 00052 _Find_Corners_White(); 00053 _Find_Corners_Orange(); 00054 _Find_Corners_Blue(); 00055 _Find_Corners_Red(); 00056 _Find_Corners_Green(); 00057 _Find_Corners_Yellow(); 00058 } 00059 void ALGORITHM::_Find_Corners_White()//Identify White edges 00060 { 00061 //Check White side 00062 if(CubeMap[0][0][1] == White) 00063 { 00064 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00065 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00066 } 00067 if(CubeMap[0][1][0] == White) 00068 { 00069 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00070 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00071 } 00072 if(CubeMap[0][1][2] == White) 00073 { 00074 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00075 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00076 } 00077 if(CubeMap[0][2][1] == White) 00078 { 00079 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00080 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00081 } 00082 //Check Orange side 00083 if(CubeMap[1][0][1] == White) 00084 { 00085 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00086 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00087 } 00088 if(CubeMap[1][1][0] == White) 00089 { 00090 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00091 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00092 } 00093 if(CubeMap[1][1][2] == White) 00094 { 00095 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00096 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00097 } 00098 if(CubeMap[1][2][1] == White) 00099 { 00100 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00101 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00102 } 00103 //Check Blue side 00104 if(CubeMap[2][0][1] == White) 00105 { 00106 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00107 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00108 } 00109 if(CubeMap[2][1][0] == White) 00110 { 00111 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00112 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00113 } 00114 if(CubeMap[2][1][2] == White) 00115 { 00116 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00117 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00118 } 00119 if(CubeMap[2][2][1] == White) 00120 { 00121 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00122 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00123 } 00124 //Check Red side 00125 if(CubeMap[3][0][1] == White) 00126 { 00127 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00128 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00129 } 00130 if(CubeMap[3][1][0] == White) 00131 { 00132 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00133 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00134 } 00135 if(CubeMap[3][1][2] == White) 00136 { 00137 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00138 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00139 } 00140 if(CubeMap[3][2][1] == White) 00141 { 00142 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00143 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00144 } 00145 //Check Green side 00146 if(CubeMap[4][0][1] == White) 00147 { 00148 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00149 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00150 } 00151 if(CubeMap[4][1][0] == White) 00152 { 00153 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00154 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00155 } 00156 if(CubeMap[4][1][2] == White) 00157 { 00158 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00159 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00160 } 00161 if(CubeMap[4][2][1] == White) 00162 { 00163 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00164 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00165 } 00166 //Check Yellow side 00167 if(CubeMap[5][0][1] == White) 00168 { 00169 _White_List_Corner[_White_Pointer_Corner] =1;//Store this internal variable 00170 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00171 } 00172 if(CubeMap[5][1][0] == White) 00173 { 00174 _White_List_Corner[_White_Pointer_Corner] =3;//Store this internal variable 00175 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00176 } 00177 if(CubeMap[5][1][2] == White) 00178 { 00179 _White_List_Corner[_White_Pointer_Corner] =7;//Store this internal variable 00180 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00181 } 00182 if(CubeMap[5][2][1] == White) 00183 { 00184 _White_List_Corner[_White_Pointer_Corner] =9;//Store this internal variable 00185 _White_Pointer_Corner = _White_Pointer_Corner + 1; 00186 } 00187 } 00188 00189 00190 void ALGORITHM::_Find_Corners_Orange()//Identify Orange edges 00191 { 00192 //Check White side 00193 if(CubeMap[0][0][1] == Orange) 00194 { 00195 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00196 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00197 } 00198 if(CubeMap[0][1][0] == Orange) 00199 { 00200 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00201 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00202 } 00203 if(CubeMap[0][1][2] == Orange) 00204 { 00205 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00206 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00207 } 00208 if(CubeMap[0][2][1] == Orange) 00209 { 00210 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00211 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00212 } 00213 //Check Orange side 00214 if(CubeMap[1][0][1] == Orange) 00215 { 00216 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00217 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00218 } 00219 if(CubeMap[1][1][0] == Orange) 00220 { 00221 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00222 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00223 } 00224 if(CubeMap[1][1][2] == Orange) 00225 { 00226 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00227 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00228 } 00229 if(CubeMap[1][2][1] == Orange) 00230 { 00231 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00232 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00233 } 00234 //Check Blue side 00235 if(CubeMap[2][0][1] == Orange) 00236 { 00237 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00238 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00239 } 00240 if(CubeMap[2][1][0] == Orange) 00241 { 00242 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00243 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00244 } 00245 if(CubeMap[2][1][2] == Orange) 00246 { 00247 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00248 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00249 } 00250 if(CubeMap[2][2][1] == Orange) 00251 { 00252 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00253 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00254 } 00255 //Check Red side 00256 if(CubeMap[3][0][1] == Orange) 00257 { 00258 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00259 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00260 } 00261 if(CubeMap[3][1][0] == Orange) 00262 { 00263 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00264 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00265 } 00266 if(CubeMap[3][1][2] == Orange) 00267 { 00268 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00269 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00270 } 00271 if(CubeMap[3][2][1] == Orange) 00272 { 00273 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00274 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00275 } 00276 //Check Green side 00277 if(CubeMap[4][0][1] == Orange) 00278 { 00279 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00280 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00281 } 00282 if(CubeMap[4][1][0] == Orange) 00283 { 00284 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00285 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00286 } 00287 if(CubeMap[4][1][2] == Orange) 00288 { 00289 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00290 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00291 } 00292 if(CubeMap[4][2][1] == Orange) 00293 { 00294 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00295 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00296 } 00297 //Check Yellow side 00298 if(CubeMap[5][0][1] == Orange) 00299 { 00300 _Orange_List_Corner[_Orange_Pointer_Corner] =1;//Store this internal variable 00301 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00302 } 00303 if(CubeMap[5][1][0] == Orange) 00304 { 00305 _Orange_List_Corner[_Orange_Pointer_Corner] =3;//Store this internal variable 00306 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00307 } 00308 if(CubeMap[5][1][2] == Orange) 00309 { 00310 _Orange_List_Corner[_Orange_Pointer_Corner] =7;//Store this internal variable 00311 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00312 } 00313 if(CubeMap[5][2][1] == Orange) 00314 { 00315 _Orange_List_Corner[_Orange_Pointer_Corner] =9;//Store this internal variable 00316 _Orange_Pointer_Corner = _Orange_Pointer_Corner + 1; 00317 } 00318 } 00319 void ALGORITHM::_Find_Corners_Blue()//Identify White edges 00320 { 00321 //Check White side 00322 if(CubeMap[0][0][1] == Blue) 00323 { 00324 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00325 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00326 } 00327 if(CubeMap[0][1][0] == Blue) 00328 { 00329 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00330 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00331 } 00332 if(CubeMap[0][1][2] == Blue) 00333 { 00334 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00335 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00336 } 00337 if(CubeMap[0][2][1] == Blue) 00338 { 00339 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00340 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00341 } 00342 //Check Orange side 00343 if(CubeMap[1][0][1] == Blue) 00344 { 00345 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00346 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00347 } 00348 if(CubeMap[1][1][0] == Blue) 00349 { 00350 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00351 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00352 } 00353 if(CubeMap[1][1][2] == Blue) 00354 { 00355 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00356 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00357 } 00358 if(CubeMap[1][2][1] == Blue) 00359 { 00360 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00361 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00362 } 00363 //Check Blue side 00364 if(CubeMap[2][0][1] == Blue) 00365 { 00366 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00367 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00368 } 00369 if(CubeMap[2][1][0] == Blue) 00370 { 00371 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00372 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00373 } 00374 if(CubeMap[2][1][2] == Blue) 00375 { 00376 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00377 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00378 } 00379 if(CubeMap[2][2][1] == Blue) 00380 { 00381 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00382 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00383 } 00384 //Check Red side 00385 if(CubeMap[3][0][1] == Blue) 00386 { 00387 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00388 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00389 } 00390 if(CubeMap[3][1][0] == Blue) 00391 { 00392 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00393 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00394 } 00395 if(CubeMap[3][1][2] == Blue) 00396 { 00397 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00398 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00399 } 00400 if(CubeMap[3][2][1] == Blue) 00401 { 00402 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00403 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00404 } 00405 //Check Green side 00406 if(CubeMap[4][0][1] == Blue) 00407 { 00408 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00409 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00410 } 00411 if(CubeMap[4][1][0] == Blue) 00412 { 00413 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00414 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00415 } 00416 if(CubeMap[4][1][2] == Blue) 00417 { 00418 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00419 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00420 } 00421 if(CubeMap[4][2][1] == Blue) 00422 { 00423 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00424 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00425 } 00426 //Check Yellow side 00427 if(CubeMap[5][0][1] == Blue) 00428 { 00429 _Blue_List_Corner[_Blue_Pointer_Corner] =1;//Store this internal variable 00430 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00431 } 00432 if(CubeMap[5][1][0] == Blue) 00433 { 00434 _Blue_List_Corner[_Blue_Pointer_Corner] =3;//Store this internal variable 00435 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00436 } 00437 if(CubeMap[5][1][2] == Blue) 00438 { 00439 _Blue_List_Corner[_Blue_Pointer_Corner] =7;//Store this internal variable 00440 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00441 } 00442 if(CubeMap[5][2][1] == Blue) 00443 { 00444 _Blue_List_Corner[_Blue_Pointer_Corner] =9;//Store this internal variable 00445 _Blue_Pointer_Corner = _Blue_Pointer_Corner + 1; 00446 } 00447 } 00448 void ALGORITHM::_Find_Corners_Red()//Identify Red edges 00449 { 00450 //Check White side 00451 if(CubeMap[0][0][1] == Red) 00452 { 00453 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00454 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00455 } 00456 if(CubeMap[0][1][0] == Red) 00457 { 00458 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00459 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00460 } 00461 if(CubeMap[0][1][2] == Red) 00462 { 00463 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00464 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00465 } 00466 if(CubeMap[0][2][1] == Red) 00467 { 00468 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00469 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00470 } 00471 //Check Orange side 00472 if(CubeMap[1][0][1] == Red) 00473 { 00474 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00475 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00476 } 00477 if(CubeMap[1][1][0] == Red) 00478 { 00479 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00480 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00481 } 00482 if(CubeMap[1][1][2] == Red) 00483 { 00484 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00485 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00486 } 00487 if(CubeMap[1][2][1] == Red) 00488 { 00489 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00490 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00491 } 00492 //Check Blue side 00493 if(CubeMap[2][0][1] == Red) 00494 { 00495 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00496 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00497 } 00498 if(CubeMap[2][1][0] == Red) 00499 { 00500 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00501 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00502 } 00503 if(CubeMap[2][1][2] == Red) 00504 { 00505 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00506 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00507 } 00508 if(CubeMap[2][2][1] == Red) 00509 { 00510 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00511 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00512 } 00513 //Check Red side 00514 if(CubeMap[3][0][1] == Red) 00515 { 00516 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00517 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00518 } 00519 if(CubeMap[3][1][0] == Red) 00520 { 00521 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00522 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00523 } 00524 if(CubeMap[3][1][2] == Red) 00525 { 00526 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00527 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00528 } 00529 if(CubeMap[3][2][1] == Red) 00530 { 00531 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00532 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00533 } 00534 //Check Green side 00535 if(CubeMap[4][0][1] == Red) 00536 { 00537 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00538 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00539 } 00540 if(CubeMap[4][1][0] == Red) 00541 { 00542 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00543 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00544 } 00545 if(CubeMap[4][1][2] == Red) 00546 { 00547 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00548 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00549 } 00550 if(CubeMap[4][2][1] == Red) 00551 { 00552 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00553 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00554 } 00555 //Check Yellow side 00556 if(CubeMap[5][0][1] == Red) 00557 { 00558 _Red_List_Corner[_Red_Pointer_Corner] =1;//Store this internal variable 00559 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00560 } 00561 if(CubeMap[5][1][0] == Red) 00562 { 00563 _Red_List_Corner[_Red_Pointer_Corner] =3;//Store this internal variable 00564 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00565 } 00566 if(CubeMap[5][1][2] == Red) 00567 { 00568 _Red_List_Corner[_Red_Pointer_Corner] =7;//Store this internal variable 00569 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00570 } 00571 if(CubeMap[5][2][1] == Red) 00572 { 00573 _Red_List_Corner[_Red_Pointer_Corner] =9;//Store this internal variable 00574 _Red_Pointer_Corner = _Red_Pointer_Corner + 1; 00575 } 00576 } 00577 void ALGORITHM::_Find_Corners_Green()//Identify Green edges 00578 { 00579 //Check White side 00580 if(CubeMap[0][0][1] == Green) 00581 { 00582 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00583 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00584 } 00585 if(CubeMap[0][1][0] == Green) 00586 { 00587 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00588 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00589 } 00590 if(CubeMap[0][1][2] == Green) 00591 { 00592 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00593 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00594 } 00595 if(CubeMap[0][2][1] == Green) 00596 { 00597 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00598 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00599 } 00600 //Check Orange side 00601 if(CubeMap[1][0][1] == Green) 00602 { 00603 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00604 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00605 } 00606 if(CubeMap[1][1][0] == Green) 00607 { 00608 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00609 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00610 } 00611 if(CubeMap[1][1][2] == Green) 00612 { 00613 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00614 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00615 } 00616 if(CubeMap[1][2][1] == Green) 00617 { 00618 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00619 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00620 } 00621 //Check Blue side 00622 if(CubeMap[2][0][1] == Green) 00623 { 00624 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00625 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00626 } 00627 if(CubeMap[2][1][0] == Green) 00628 { 00629 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00630 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00631 } 00632 if(CubeMap[2][1][2] == Green) 00633 { 00634 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00635 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00636 } 00637 if(CubeMap[2][2][1] == Green) 00638 { 00639 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00640 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00641 } 00642 //Check Red side 00643 if(CubeMap[3][0][1] == Green) 00644 { 00645 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00646 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00647 } 00648 if(CubeMap[3][1][0] == Green) 00649 { 00650 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00651 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00652 } 00653 if(CubeMap[3][1][2] == Green) 00654 { 00655 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00656 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00657 } 00658 if(CubeMap[3][2][1] == Green) 00659 { 00660 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00661 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00662 } 00663 //Check Green side 00664 if(CubeMap[4][0][1] == Green) 00665 { 00666 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00667 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00668 } 00669 if(CubeMap[4][1][0] == Green) 00670 { 00671 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00672 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00673 } 00674 if(CubeMap[4][1][2] == Green) 00675 { 00676 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00677 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00678 } 00679 if(CubeMap[4][2][1] == Green) 00680 { 00681 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00682 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00683 } 00684 //Check Yellow side 00685 if(CubeMap[5][0][1] == Green) 00686 { 00687 _Green_List_Corner[_Green_Pointer_Corner] =1;//Store this internal variable 00688 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00689 } 00690 if(CubeMap[5][1][0] == Green) 00691 { 00692 _Green_List_Corner[_Green_Pointer_Corner] =3;//Store this internal variable 00693 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00694 } 00695 if(CubeMap[5][1][2] == Green) 00696 { 00697 _Green_List_Corner[_Green_Pointer_Corner] =7;//Store this internal variable 00698 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00699 } 00700 if(CubeMap[5][2][1] == Green) 00701 { 00702 _Green_List_Corner[_Green_Pointer_Corner] =9;//Store this internal variable 00703 _Green_Pointer_Corner = _Green_Pointer_Corner + 1; 00704 } 00705 } 00706 void ALGORITHM::_Find_Corners_Yellow()//Identify Yellow edges 00707 { 00708 //Check White side 00709 if(CubeMap[0][0][1] == Yellow) 00710 { 00711 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00712 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00713 } 00714 if(CubeMap[0][1][0] == Yellow) 00715 { 00716 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00717 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00718 } 00719 if(CubeMap[0][1][2] == Yellow) 00720 { 00721 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00722 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00723 } 00724 if(CubeMap[0][2][1] == Yellow) 00725 { 00726 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00727 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00728 } 00729 //Check Orange side 00730 if(CubeMap[1][0][1] == Yellow) 00731 { 00732 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00733 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00734 } 00735 if(CubeMap[1][1][0] == Yellow) 00736 { 00737 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00738 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00739 } 00740 if(CubeMap[1][1][2] == Yellow) 00741 { 00742 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00743 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00744 } 00745 if(CubeMap[1][2][1] == Yellow) 00746 { 00747 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00748 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00749 } 00750 //Check Blue side 00751 if(CubeMap[2][0][1] == Yellow) 00752 { 00753 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00754 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00755 } 00756 if(CubeMap[2][1][0] == Yellow) 00757 { 00758 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00759 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00760 } 00761 if(CubeMap[2][1][2] == Yellow) 00762 { 00763 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00764 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00765 } 00766 if(CubeMap[2][2][1] == Yellow) 00767 { 00768 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00769 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00770 } 00771 //Check Red side 00772 if(CubeMap[3][0][1] == Yellow) 00773 { 00774 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00775 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00776 } 00777 if(CubeMap[3][1][0] == Yellow) 00778 { 00779 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00780 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00781 } 00782 if(CubeMap[3][1][2] == Yellow) 00783 { 00784 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00785 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00786 } 00787 if(CubeMap[3][2][1] == Yellow) 00788 { 00789 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00790 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00791 } 00792 //Check Green side 00793 if(CubeMap[4][0][1] == Yellow) 00794 { 00795 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00796 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00797 } 00798 if(CubeMap[4][1][0] == Yellow) 00799 { 00800 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00801 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00802 } 00803 if(CubeMap[4][1][2] == Yellow) 00804 { 00805 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00806 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00807 } 00808 if(CubeMap[4][2][1] == Yellow) 00809 { 00810 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00811 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00812 } 00813 //Check Yellow side 00814 if(CubeMap[5][0][1] == Yellow) 00815 { 00816 _Yellow_List_Corner[_Yellow_Pointer_Corner] =1;//Store this internal variable 00817 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00818 } 00819 if(CubeMap[5][1][0] == Yellow) 00820 { 00821 _Yellow_List_Corner[_Yellow_Pointer_Corner] =3;//Store this internal variable 00822 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00823 } 00824 if(CubeMap[5][1][2] == Yellow) 00825 { 00826 _Yellow_List_Corner[_Yellow_Pointer_Corner] =7;//Store this internal variable 00827 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00828 } 00829 if(CubeMap[5][2][1] == Yellow) 00830 { 00831 _Yellow_List_Corner[_Yellow_Pointer_Corner] =9;//Store this internal variable 00832 _Yellow_Pointer_Corner = _Yellow_Pointer_Corner + 1; 00833 } 00834 } 00835 00836 void ALGORITHM::_Find_edges_White()//Identify White edges 00837 { 00838 //Check White side 00839 if(CubeMap[0][0][1] == White) 00840 { 00841 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00842 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00843 } 00844 if(CubeMap[0][1][0] == White) 00845 { 00846 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00847 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00848 } 00849 if(CubeMap[0][1][2] == White) 00850 { 00851 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00852 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00853 } 00854 if(CubeMap[0][2][1] == White) 00855 { 00856 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00857 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00858 } 00859 //Check Orange side 00860 if(CubeMap[1][0][1] == White) 00861 { 00862 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00863 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00864 } 00865 if(CubeMap[1][1][0] == White) 00866 { 00867 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00868 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00869 } 00870 if(CubeMap[1][1][2] == White) 00871 { 00872 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00873 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00874 } 00875 if(CubeMap[1][2][1] == White) 00876 { 00877 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00878 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00879 } 00880 //Check Blue side 00881 if(CubeMap[2][0][1] == White) 00882 { 00883 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00884 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00885 } 00886 if(CubeMap[2][1][0] == White) 00887 { 00888 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00889 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00890 } 00891 if(CubeMap[2][1][2] == White) 00892 { 00893 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00894 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00895 } 00896 if(CubeMap[2][2][1] == White) 00897 { 00898 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00899 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00900 } 00901 //Check Red side 00902 if(CubeMap[3][0][1] == White) 00903 { 00904 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00905 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00906 } 00907 if(CubeMap[3][1][0] == White) 00908 { 00909 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00910 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00911 } 00912 if(CubeMap[3][1][2] == White) 00913 { 00914 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00915 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00916 } 00917 if(CubeMap[3][2][1] == White) 00918 { 00919 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00920 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00921 } 00922 //Check Green side 00923 if(CubeMap[4][0][1] == White) 00924 { 00925 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00926 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00927 } 00928 if(CubeMap[4][1][0] == White) 00929 { 00930 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00931 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00932 } 00933 if(CubeMap[4][1][2] == White) 00934 { 00935 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00936 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00937 } 00938 if(CubeMap[4][2][1] == White) 00939 { 00940 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00941 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00942 } 00943 //Check Yellow side 00944 if(CubeMap[5][0][1] == White) 00945 { 00946 _White_List_Edge[_White_Pointer_Edge] = 2;//Store this internal variable 00947 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00948 } 00949 if(CubeMap[5][1][0] == White) 00950 { 00951 _White_List_Edge[_White_Pointer_Edge] = 4;//Store this internal variable 00952 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00953 } 00954 if(CubeMap[5][1][2] == White) 00955 { 00956 _White_List_Edge[_White_Pointer_Edge] = 6;//Store this internal variable 00957 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00958 } 00959 if(CubeMap[5][2][1] == White) 00960 { 00961 _White_List_Edge[_White_Pointer_Edge] = 8;//Store this internal variable 00962 _White_Pointer_Edge = _White_Pointer_Edge + 1; 00963 } 00964 } 00965 00966 00967 void ALGORITHM::_Find_edges_Orange()//Identify Orange edges 00968 { 00969 //Check White side 00970 if(CubeMap[0][0][1] == Orange) 00971 { 00972 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 00973 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 00974 } 00975 if(CubeMap[0][1][0] == Orange) 00976 { 00977 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 00978 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 00979 } 00980 if(CubeMap[0][1][2] == Orange) 00981 { 00982 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 00983 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 00984 } 00985 if(CubeMap[0][2][1] == Orange) 00986 { 00987 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 00988 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 00989 } 00990 //Check Orange side 00991 if(CubeMap[1][0][1] == Orange) 00992 { 00993 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 00994 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 00995 } 00996 if(CubeMap[1][1][0] == Orange) 00997 { 00998 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 00999 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01000 } 01001 if(CubeMap[1][1][2] == Orange) 01002 { 01003 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 01004 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01005 } 01006 if(CubeMap[1][2][1] == Orange) 01007 { 01008 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 01009 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01010 } 01011 //Check Blue side 01012 if(CubeMap[2][0][1] == Orange) 01013 { 01014 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 01015 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01016 } 01017 if(CubeMap[2][1][0] == Orange) 01018 { 01019 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 01020 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01021 } 01022 if(CubeMap[2][1][2] == Orange) 01023 { 01024 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 01025 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01026 } 01027 if(CubeMap[2][2][1] == Orange) 01028 { 01029 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 01030 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01031 } 01032 //Check Red side 01033 if(CubeMap[3][0][1] == Orange) 01034 { 01035 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 01036 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01037 } 01038 if(CubeMap[3][1][0] == Orange) 01039 { 01040 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 01041 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01042 } 01043 if(CubeMap[3][1][2] == Orange) 01044 { 01045 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 01046 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01047 } 01048 if(CubeMap[3][2][1] == Orange) 01049 { 01050 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 01051 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01052 } 01053 //Check Green side 01054 if(CubeMap[4][0][1] == Orange) 01055 { 01056 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 01057 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01058 } 01059 if(CubeMap[4][1][0] == Orange) 01060 { 01061 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 01062 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01063 } 01064 if(CubeMap[4][1][2] == Orange) 01065 { 01066 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 01067 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01068 } 01069 if(CubeMap[4][2][1] == Orange) 01070 { 01071 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 01072 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01073 } 01074 //Check Yellow side 01075 if(CubeMap[5][0][1] == Orange) 01076 { 01077 _Orange_List_Edge[_Orange_Pointer_Edge] = 2;//Store this internal variable 01078 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01079 } 01080 if(CubeMap[5][1][0] == Orange) 01081 { 01082 _Orange_List_Edge[_Orange_Pointer_Edge] = 4;//Store this internal variable 01083 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01084 } 01085 if(CubeMap[5][1][2] == Orange) 01086 { 01087 _Orange_List_Edge[_Orange_Pointer_Edge] = 6;//Store this internal variable 01088 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01089 } 01090 if(CubeMap[5][2][1] == Orange) 01091 { 01092 _Orange_List_Edge[_Orange_Pointer_Edge] = 8;//Store this internal variable 01093 _Orange_Pointer_Edge = _Orange_Pointer_Edge + 1; 01094 } 01095 } 01096 void ALGORITHM::_Find_edges_Blue()//Identify White edges 01097 { 01098 //Check White side 01099 if(CubeMap[0][0][1] == Blue) 01100 { 01101 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01102 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01103 } 01104 if(CubeMap[0][1][0] == Blue) 01105 { 01106 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01107 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01108 } 01109 if(CubeMap[0][1][2] == Blue) 01110 { 01111 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01112 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01113 } 01114 if(CubeMap[0][2][1] == Blue) 01115 { 01116 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01117 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01118 } 01119 //Check Orange side 01120 if(CubeMap[1][0][1] == Blue) 01121 { 01122 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01123 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01124 } 01125 if(CubeMap[1][1][0] == Blue) 01126 { 01127 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01128 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01129 } 01130 if(CubeMap[1][1][2] == Blue) 01131 { 01132 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01133 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01134 } 01135 if(CubeMap[1][2][1] == Blue) 01136 { 01137 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01138 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01139 } 01140 //Check Blue side 01141 if(CubeMap[2][0][1] == Blue) 01142 { 01143 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01144 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01145 } 01146 if(CubeMap[2][1][0] == Blue) 01147 { 01148 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01149 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01150 } 01151 if(CubeMap[2][1][2] == Blue) 01152 { 01153 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01154 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01155 } 01156 if(CubeMap[2][2][1] == Blue) 01157 { 01158 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01159 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01160 } 01161 //Check Red side 01162 if(CubeMap[3][0][1] == Blue) 01163 { 01164 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01165 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01166 } 01167 if(CubeMap[3][1][0] == Blue) 01168 { 01169 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01170 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01171 } 01172 if(CubeMap[3][1][2] == Blue) 01173 { 01174 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01175 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01176 } 01177 if(CubeMap[3][2][1] == Blue) 01178 { 01179 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01180 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01181 } 01182 //Check Green side 01183 if(CubeMap[4][0][1] == Blue) 01184 { 01185 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01186 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01187 } 01188 if(CubeMap[4][1][0] == Blue) 01189 { 01190 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01191 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01192 } 01193 if(CubeMap[4][1][2] == Blue) 01194 { 01195 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01196 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01197 } 01198 if(CubeMap[4][2][1] == Blue) 01199 { 01200 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01201 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01202 } 01203 //Check Yellow side 01204 if(CubeMap[5][0][1] == Blue) 01205 { 01206 _Blue_List_Edge[_Blue_Pointer_Edge] = 2;//Store this internal variable 01207 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01208 } 01209 if(CubeMap[5][1][0] == Blue) 01210 { 01211 _Blue_List_Edge[_Blue_Pointer_Edge] = 4;//Store this internal variable 01212 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01213 } 01214 if(CubeMap[5][1][2] == Blue) 01215 { 01216 _Blue_List_Edge[_Blue_Pointer_Edge] = 6;//Store this internal variable 01217 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01218 } 01219 if(CubeMap[5][2][1] == Blue) 01220 { 01221 _Blue_List_Edge[_Blue_Pointer_Edge] = 8;//Store this internal variable 01222 _Blue_Pointer_Edge = _Blue_Pointer_Edge + 1; 01223 } 01224 } 01225 void ALGORITHM::_Find_edges_Red()//Identify Red edges 01226 { 01227 //Check White side 01228 if(CubeMap[0][0][1] == Red) 01229 { 01230 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01231 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01232 } 01233 if(CubeMap[0][1][0] == Red) 01234 { 01235 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01236 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01237 } 01238 if(CubeMap[0][1][2] == Red) 01239 { 01240 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01241 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01242 } 01243 if(CubeMap[0][2][1] == Red) 01244 { 01245 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01246 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01247 } 01248 //Check Orange side 01249 if(CubeMap[1][0][1] == Red) 01250 { 01251 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01252 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01253 } 01254 if(CubeMap[1][1][0] == Red) 01255 { 01256 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01257 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01258 } 01259 if(CubeMap[1][1][2] == Red) 01260 { 01261 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01262 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01263 } 01264 if(CubeMap[1][2][1] == Red) 01265 { 01266 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01267 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01268 } 01269 //Check Blue side 01270 if(CubeMap[2][0][1] == Red) 01271 { 01272 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01273 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01274 } 01275 if(CubeMap[2][1][0] == Red) 01276 { 01277 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01278 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01279 } 01280 if(CubeMap[2][1][2] == Red) 01281 { 01282 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01283 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01284 } 01285 if(CubeMap[2][2][1] == Red) 01286 { 01287 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01288 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01289 } 01290 //Check Red side 01291 if(CubeMap[3][0][1] == Red) 01292 { 01293 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01294 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01295 } 01296 if(CubeMap[3][1][0] == Red) 01297 { 01298 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01299 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01300 } 01301 if(CubeMap[3][1][2] == Red) 01302 { 01303 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01304 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01305 } 01306 if(CubeMap[3][2][1] == Red) 01307 { 01308 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01309 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01310 } 01311 //Check Green side 01312 if(CubeMap[4][0][1] == Red) 01313 { 01314 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01315 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01316 } 01317 if(CubeMap[4][1][0] == Red) 01318 { 01319 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01320 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01321 } 01322 if(CubeMap[4][1][2] == Red) 01323 { 01324 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01325 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01326 } 01327 if(CubeMap[4][2][1] == Red) 01328 { 01329 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01330 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01331 } 01332 //Check Yellow side 01333 if(CubeMap[5][0][1] == Red) 01334 { 01335 _Red_List_Edge[_Red_Pointer_Edge] = 2;//Store this internal variable 01336 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01337 } 01338 if(CubeMap[5][1][0] == Red) 01339 { 01340 _Red_List_Edge[_Red_Pointer_Edge] = 4;//Store this internal variable 01341 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01342 } 01343 if(CubeMap[5][1][2] == Red) 01344 { 01345 _Red_List_Edge[_Red_Pointer_Edge] = 6;//Store this internal variable 01346 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01347 } 01348 if(CubeMap[5][2][1] == Red) 01349 { 01350 _Red_List_Edge[_Red_Pointer_Edge] = 8;//Store this internal variable 01351 _Red_Pointer_Edge = _Red_Pointer_Edge + 1; 01352 } 01353 } 01354 void ALGORITHM::_Find_edges_Green()//Identify Green edges 01355 { 01356 //Check White side 01357 if(CubeMap[0][0][1] == Green) 01358 { 01359 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01360 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01361 } 01362 if(CubeMap[0][1][0] == Green) 01363 { 01364 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01365 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01366 } 01367 if(CubeMap[0][1][2] == Green) 01368 { 01369 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01370 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01371 } 01372 if(CubeMap[0][2][1] == Green) 01373 { 01374 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01375 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01376 } 01377 //Check Orange side 01378 if(CubeMap[1][0][1] == Green) 01379 { 01380 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01381 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01382 } 01383 if(CubeMap[1][1][0] == Green) 01384 { 01385 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01386 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01387 } 01388 if(CubeMap[1][1][2] == Green) 01389 { 01390 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01391 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01392 } 01393 if(CubeMap[1][2][1] == Green) 01394 { 01395 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01396 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01397 } 01398 //Check Blue side 01399 if(CubeMap[2][0][1] == Green) 01400 { 01401 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01402 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01403 } 01404 if(CubeMap[2][1][0] == Green) 01405 { 01406 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01407 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01408 } 01409 if(CubeMap[2][1][2] == Green) 01410 { 01411 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01412 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01413 } 01414 if(CubeMap[2][2][1] == Green) 01415 { 01416 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01417 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01418 } 01419 //Check Red side 01420 if(CubeMap[3][0][1] == Green) 01421 { 01422 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01423 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01424 } 01425 if(CubeMap[3][1][0] == Green) 01426 { 01427 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01428 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01429 } 01430 if(CubeMap[3][1][2] == Green) 01431 { 01432 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01433 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01434 } 01435 if(CubeMap[3][2][1] == Green) 01436 { 01437 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01438 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01439 } 01440 //Check Green side 01441 if(CubeMap[4][0][1] == Green) 01442 { 01443 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01444 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01445 } 01446 if(CubeMap[4][1][0] == Green) 01447 { 01448 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01449 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01450 } 01451 if(CubeMap[4][1][2] == Green) 01452 { 01453 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01454 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01455 } 01456 if(CubeMap[4][2][1] == Green) 01457 { 01458 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01459 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01460 } 01461 //Check Yellow side 01462 if(CubeMap[5][0][1] == Green) 01463 { 01464 _Green_List_Edge[_Green_Pointer_Edge] = 2;//Store this internal variable 01465 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01466 } 01467 if(CubeMap[5][1][0] == Green) 01468 { 01469 _Green_List_Edge[_Green_Pointer_Edge] = 4;//Store this internal variable 01470 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01471 } 01472 if(CubeMap[5][1][2] == Green) 01473 { 01474 _Green_List_Edge[_Green_Pointer_Edge] = 6;//Store this internal variable 01475 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01476 } 01477 if(CubeMap[5][2][1] == Green) 01478 { 01479 _Green_List_Edge[_Green_Pointer_Edge] = 8;//Store this internal variable 01480 _Green_Pointer_Edge = _Green_Pointer_Edge + 1; 01481 } 01482 } 01483 void ALGORITHM::_Find_edges_Yellow()//Identify Yellow edges 01484 { 01485 //Check White side 01486 if(CubeMap[0][0][1] == Yellow) 01487 { 01488 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01489 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01490 } 01491 if(CubeMap[0][1][0] == Yellow) 01492 { 01493 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01494 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01495 } 01496 if(CubeMap[0][1][2] == Yellow) 01497 { 01498 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01499 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01500 } 01501 if(CubeMap[0][2][1] == Yellow) 01502 { 01503 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01504 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01505 } 01506 //Check Orange side 01507 if(CubeMap[1][0][1] == Yellow) 01508 { 01509 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01510 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01511 } 01512 if(CubeMap[1][1][0] == Yellow) 01513 { 01514 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01515 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01516 } 01517 if(CubeMap[1][1][2] == Yellow) 01518 { 01519 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01520 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01521 } 01522 if(CubeMap[1][2][1] == Yellow) 01523 { 01524 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01525 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01526 } 01527 //Check Blue side 01528 if(CubeMap[2][0][1] == Yellow) 01529 { 01530 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01531 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01532 } 01533 if(CubeMap[2][1][0] == Yellow) 01534 { 01535 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01536 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01537 } 01538 if(CubeMap[2][1][2] == Yellow) 01539 { 01540 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01541 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01542 } 01543 if(CubeMap[2][2][1] == Yellow) 01544 { 01545 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01546 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01547 } 01548 //Check Red side 01549 if(CubeMap[3][0][1] == Yellow) 01550 { 01551 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01552 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01553 } 01554 if(CubeMap[3][1][0] == Yellow) 01555 { 01556 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01557 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01558 } 01559 if(CubeMap[3][1][2] == Yellow) 01560 { 01561 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01562 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01563 } 01564 if(CubeMap[3][2][1] == Yellow) 01565 { 01566 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01567 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01568 } 01569 //Check Green side 01570 if(CubeMap[4][0][1] == Yellow) 01571 { 01572 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01573 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01574 } 01575 if(CubeMap[4][1][0] == Yellow) 01576 { 01577 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01578 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01579 } 01580 if(CubeMap[4][1][2] == Yellow) 01581 { 01582 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01583 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01584 } 01585 if(CubeMap[4][2][1] == Yellow) 01586 { 01587 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01588 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01589 } 01590 //Check Yellow side 01591 if(CubeMap[5][0][1] == Yellow) 01592 { 01593 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 2;//Store this internal variable 01594 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01595 } 01596 if(CubeMap[5][1][0] == Yellow) 01597 { 01598 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 4;//Store this internal variable 01599 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01600 } 01601 if(CubeMap[5][1][2] == Yellow) 01602 { 01603 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 6;//Store this internal variable 01604 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01605 } 01606 if(CubeMap[5][2][1] == Yellow) 01607 { 01608 _Yellow_List_Edge[_Yellow_Pointer_Edge] = 8;//Store this internal variable 01609 _Yellow_Pointer_Edge = _Yellow_Pointer_Edge + 1; 01610 } 01611 } 01612 01613 01614 //Forward Declaration of the functions 01615 SIDE::SIDE()//Constructor 01616 { 01617 _Cubelet_1_position = 1; 01618 _Cubelet_2_position = 2; 01619 _Cubelet_3_position = 3; 01620 _Cubelet_4_position = 4; 01621 _Cubelet_5_position = 5; 01622 _Cubelet_6_position = 6; 01623 _Cubelet_7_position = 7; 01624 _Cubelet_8_position = 8; 01625 _Cubelet_9_position = 9; 01626 01627 _Cubelet_1_colour = 0; 01628 _Cubelet_2_colour = 0; 01629 _Cubelet_3_colour = 0; 01630 _Cubelet_4_colour = 0; 01631 _Cubelet_5_colour = 0; 01632 _Cubelet_6_colour = 0; 01633 _Cubelet_7_colour = 0; 01634 _Cubelet_8_colour = 0; 01635 _Cubelet_9_colour = 0; 01636 } 01637 SIDE::~SIDE()//Destructor 01638 { 01639 01640 } 01641 01642 01643 int SIDE::SIDE_type() 01644 { 01645 return _Cubelet_5_colour; 01646 } 01647 void SIDE::Set_Colours(int CP1,int CP2,int CP3,int CP4,int CP5,int CP6,int CP7,int CP8,int CP9) 01648 { 01649 _Cubelet_1_colour = CP1; 01650 _Cubelet_2_colour = CP2; 01651 _Cubelet_3_colour = CP3; 01652 _Cubelet_4_colour = CP4; 01653 _Cubelet_5_colour = CP5; 01654 _Cubelet_6_colour = CP6; 01655 _Cubelet_7_colour = CP7; 01656 _Cubelet_8_colour = CP8; 01657 _Cubelet_9_colour = CP9; 01658 }
Generated on Tue Jul 12 2022 22:52:51 by
