Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char *nullString ( char string[], int length )
- {
- int x = 0;
- for ( x = 0; x < length; x++)
- string[i] = '/0';
- return string;
- }
- char *SHA512_binToHex(unsigned char input[], unsigned char output[], _Bool withSpace)
- {
- int x = 0;
- char stringTemp[16] = { 0 };
- nullString(output, 129);
- if (withSpace)
- {
- for (x = 0; x < 64; x++)
- {
- sprintf(stringTemp, "%2X", input[x]);
- strcat(output, stringTemp);
- }
- }
- else
- {
- for (x = 0; x < 64; x++)
- {
- sprintf(stringTemp, "%X", input[x]);
- strcat(output, stringTemp);
- }
- }
- return (output);
- }
- void subtitChar(char *string, int stringLength, char charToSubtit, char alpha)
- {
- int x = 0;
- for (x = 0; x < stringLength; x++)
- if (string[x] == charToSubtit)
- string[x] = alpha;
- }
- char *stringAdd(char source[], const char input[])
- {
- int i = 0;
- int sourceLength = strlen(source);
- int inputLength = strlen(input);
- if (inputLength < sourceLength)
- {
- for (i = 0; i < sourceLength; i++)
- source[i] += input[i%inputLength];
- }
- else if (inputLength == sourceLength)
- {
- for (i = 0; i < sourceLength; i++)
- source[i] += input[i];
- }
- else
- {
- for (i = 0; i < inputLength; i++)
- source[i%sourceLength] += input[i];
- }
- return (source);
- }
- char *stringXOR(char source[], const char mask[])
- {
- int i = 0;
- int sourceLength = strlen(source);
- int maskLength = strlen(mask);
- if (maskLength < sourceLength)
- {
- for (i = 0; i < sourceLength; i++)
- source[i] ^= mask[i%maskLength];
- }
- else if (maskLength == sourceLength)
- {
- for (i = 0; i < sourceLength; i++)
- source[i] ^= mask[i];
- }
- else
- {
- for (i = 0; i < maskLength; i++)
- source[i%sourceLength] ^= mask[i];
- }
- return (source);
- }
- char *tri_dimensionnalShaker(char string[], int x_Variations, int y_Variations, int z_Variations, _Bool isReverse)
- {
- int mod = 0;
- int mod_3 = 0;
- int x_dim = 0;
- int y_dim = 0;
- int z_dim = 0;
- int x_VariationsTourDone = 0;
- int y_VariationsTourDone = 0;
- int z_VariationsTourDone = 0;
- int x_VariationsBackup = x_Variations;
- int y_VariationsBackup = y_Variations;
- int z_VariationsBackup = z_Variations;
- int stringLength = strlen(string);
- int w = 0;
- int x = 0;
- int y = 0;
- int z = 0;
- char string_temp[64] = { 0 };
- char *stringDecrypted = NULL;
- stringDecrypted = malloc(sizeof(char*)*stringLength);
- for (x = 0; x < stringLength; x++)
- stringDecrypted[x] = '\0';
- if (!isReverse)
- {
- while (z_dim*y_dim*x_dim < stringLength)
- {
- if (!(mod_3 % 3))
- x_dim++;
- else if (mod_3 % 3 == 1)
- y_dim++;
- else
- z_dim++;
- mod_3++;
- }
- if ((x_dim > y_dim&&x_dim >= z_dim) || (x_dim >= y_dim&&x_dim > z_dim))
- {
- y_dim = x_dim;
- z_dim = x_dim;
- }
- else if ((y_dim > x_dim&&y_dim >= z_dim) || (y_dim >= x_dim&&y_dim > z_dim))
- {
- x_dim = y_dim;
- z_dim = y_dim;
- }
- else if ((z_dim > x_dim&&z_dim >= y_dim) || (z_dim >= x_dim&&z_dim > y_dim))
- {
- x_dim = z_dim;
- y_dim = z_dim;
- }
- char ****stringMatrix = NULL;
- stringMatrix = malloc(sizeof(char****)* z_dim);
- for (y = 0; y < y_dim; y++)
- stringMatrix[y] = malloc(sizeof(char***)*y_dim);
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- stringMatrix[y][x] = malloc(sizeof(char**)*x_dim);
- for (z = 0; z < z_dim; z++)
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- stringMatrix[z][y][x] = malloc((sizeof(char*)) * 3);
- for (z = 0; z < z_dim; z++)
- {
- for (y = 0; y < y_dim; y++)
- {
- for (x = 0; x < x_dim; x++)
- {
- stringMatrix[z][y][x][0] = '\0';
- stringMatrix[z][y][x][1] = '\0';
- stringMatrix[z][y][x][2] = '\0';
- }
- }
- }
- w = 0;
- for (z = 0; z < z_dim; z++)
- {
- for (y = 0; y < y_dim; y++)
- {
- for (x = 0; x < x_dim; x++)
- {
- if (w>strlen(string))
- sprintf(stringMatrix[z][y][x], "KK");
- else
- {
- if (string[w] == '\0')
- sprintf(stringMatrix[z][y][x], "KK");
- else
- {
- sprintf(string_temp, "%c", string[w]);;
- sprintf(stringMatrix[z][y][x], "%s", string_temp);
- }
- }
- w++;
- }
- }
- }
- mod = 0;
- while (x_Variations > 0 || y_Variations > 0 || z_Variations > 0)
- {
- if (!(mod % 3) && x_Variations > 0)
- {
- if (x_VariationsTourDone == x_dim)
- x_VariationsTourDone -= x_dim;
- cubicString_matrix_rightLateralRotation(stringMatrix, x_dim, 1, x_VariationsTourDone);
- x_Variations--;
- mod++;
- x_VariationsTourDone++;
- }
- else if ((mod % 3) == 1 && y_Variations > 0)
- {
- if (y_VariationsTourDone == x_dim)
- y_VariationsTourDone -= x_dim;
- cubicString_matrix_frontVerticalRotation(stringMatrix, x_dim, 1, y_VariationsTourDone);
- y_Variations--;
- mod++;
- y_VariationsTourDone++;
- }
- else if ((mod % 3) == 2 && z_Variations > 0)
- {
- if (z_VariationsTourDone == x_dim)
- z_VariationsTourDone -= x_dim;
- cubicString_matrix_leftVerticalRotation(stringMatrix, x_dim, 1, z_VariationsTourDone);
- z_Variations--;
- mod++;
- z_VariationsTourDone++;
- }
- else
- mod++;
- }
- char *stringToEncrypt = NULL;
- stringToEncrypt = malloc(sizeof(char*)* 2 + sizeof(char*)*z_dim*y_dim*x_dim);
- if (stringToEncrypt == NULL)
- {
- centerText("Pas assez de RAM pour allouer stringToEncrypt", CONS_L, 15, 0);
- Sleep(10000);
- exit(1);
- }
- else
- {
- for (x = 0; x < 2 + z_dim*y_dim*x_dim; x++)
- stringToEncrypt[x] = '\0';
- w = 0;
- for (z = 0; z < z_dim; z++)
- {
- for (y = 0; y < y_dim; y++)
- {
- for (x = 0; x < x_dim; x++)
- {
- if (strcmp(stringMatrix[z][y][x], "KK") == NULL)
- stringToEncrypt[w] = '~';
- else
- stringToEncrypt[w] = stringMatrix[z][y][x][0];
- w++;
- }
- }
- }
- }
- free(stringDecrypted);
- for (z = 0; z < z_dim; z++)
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- free(stringMatrix[z][y][x]);
- free(stringMatrix);
- return (stringToEncrypt);
- }
- else
- {
- while (z_dim*y_dim*x_dim < stringLength)
- {
- if (!(mod_3 % 3))
- x_dim++;
- else if (mod_3 % 3 == 1)
- y_dim++;
- else
- z_dim++;
- mod_3++;
- }
- if ((x_dim > y_dim&&x_dim >= z_dim) || (x_dim >= y_dim&&x_dim > z_dim))
- {
- y_dim = x_dim;
- z_dim = x_dim;
- }
- else if ((y_dim > x_dim&&y_dim >= z_dim) || (y_dim >= x_dim&&y_dim > z_dim))
- {
- x_dim = y_dim;
- z_dim = y_dim;
- }
- else if ((z_dim > x_dim&&z_dim >= y_dim) || (z_dim >= x_dim&&z_dim > y_dim))
- {
- x_dim = z_dim;
- y_dim = z_dim;
- }
- char ****stringMatrix = NULL;
- stringMatrix = malloc(sizeof(char****)* z_dim);
- for (y = 0; y < y_dim; y++)
- stringMatrix[y] = malloc(sizeof(char***)*y_dim);
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- stringMatrix[y][x] = malloc(sizeof(char**)*x_dim);
- for (z = 0; z < z_dim; z++)
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- stringMatrix[z][y][x] = malloc((sizeof(char*)) * 3);
- for (z = 0; z < z_dim; z++)
- {
- for (y = 0; y < y_dim; y++)
- {
- for (x = 0; x < x_dim; x++)
- {
- stringMatrix[z][y][x][0] = '\0';
- stringMatrix[z][y][x][1] = '\0';
- stringMatrix[z][y][x][2] = '\0';
- }
- }
- }
- w = 0;
- for (z = 0; z < z_dim; z++)
- {
- for (y = 0; y < y_dim; y++)
- {
- for (x = 0; x < x_dim; x++)
- {
- if (string[w] == '\0')
- sprintf(stringMatrix[z][y][x], "KK");
- else
- {
- sprintf(string_temp, "%c", string[w]);;
- sprintf(stringMatrix[z][y][x], "%s", string_temp);
- }
- w++;
- }
- }
- }
- int *actionsSequence = NULL;
- actionsSequence = malloc(sizeof(int*)*(x_Variations + y_Variations + z_Variations) * 2);
- if (actionsSequence == NULL)
- {
- printf("Pas assez de RAM pour allouer actionsSequence[%d]", x_Variations + y_Variations + z_Variations);
- Sleep(10000);
- exit(1);
- }
- else
- {
- mod = 0;
- w = 0;
- while (x_Variations > 0 || y_Variations > 0 || z_Variations > 0)
- {
- if (!(mod % 3) && x_Variations > 0)
- {
- if (x_VariationsTourDone == x_dim)
- x_VariationsTourDone -= x_dim;
- actionsSequence[w] = 0;
- actionsSequence[w + 1] = x_VariationsTourDone;
- x_Variations--;
- mod++;
- x_VariationsTourDone++;
- w++;
- w++;
- }
- else if ((mod % 3) == 1 && y_Variations > 0)
- {
- if (y_VariationsTourDone == x_dim)
- y_VariationsTourDone -= x_dim;
- actionsSequence[w] = 1;
- actionsSequence[w + 1] = y_VariationsTourDone;
- y_Variations--;
- mod++;
- y_VariationsTourDone++;
- w++;
- w++;
- }
- else if ((mod % 3) == 2 && z_Variations > 0)
- {
- if (z_VariationsTourDone == x_dim)
- z_VariationsTourDone -= x_dim;
- actionsSequence[w] = 2;
- actionsSequence[w + 1] = z_VariationsTourDone;
- z_Variations--;
- mod++;
- z_VariationsTourDone++;
- w++;
- w++;
- }
- else
- mod++;
- }
- }
- x_Variations = x_VariationsBackup;
- y_Variations = y_VariationsBackup;
- z_Variations = z_VariationsBackup;
- for (x = (x_Variations + y_Variations + z_Variations) * 2 - 1; x > -1; x -= 2)
- {
- switch (actionsSequence[x - 1])
- {
- case 0:
- cubicString_matrix_leftLateralRotation(stringMatrix, x_dim, 1, actionsSequence[x]);
- break;
- case 1:
- cubicString_matrix_backVerticalRotation(stringMatrix, x_dim, 1, actionsSequence[x]);
- break;
- case 2:
- cubicString_matrix_rightVerticalRotation(stringMatrix, x_dim, 1, actionsSequence[x]);
- break;
- default:
- printf("Erreurrrrrr !!!!!!!!!!!!!!!!!!!!");
- break;
- }
- }
- for (x = 0; x < stringLength / 8; x++)
- stringDecrypted[x] = '\0';
- for (z = 0; z < z_dim; z++)
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- strcat(stringDecrypted, stringMatrix[z][y][x]);
- char *ptr = NULL;
- ptr = strchr(stringDecrypted, '~');
- if (ptr != NULL)
- *ptr = '\0';
- for (z = 0; z < z_dim; z++)
- for (y = 0; y < y_dim; y++)
- for (x = 0; x < x_dim; x++)
- free(stringMatrix[z][y][x]);
- free(stringMatrix);
- free(actionsSequence);
- return (stringDecrypted);
- }
- }
- void cubicString_matrix_rightLateralRotation(char *****matrix, double matrix_size, int numbOf_tour, int layerTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int z = 0;
- int x = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (x = placeOf_alpha; x <= matrix_sizeOrig - placeOf_alpha; x++)
- {
- if (x == placeOf_alpha)
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], matrix[placeOf_alpha - 1][layerTo_switch][x - 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig - (placeOf_alpha + 1); x >= placeOf_alpha - 1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (x = placeOf_alpha; x <= matrix_sizeOrig - placeOf_alpha; x++)
- {
- if (x == placeOf_alpha)
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], matrix[placeOf_alpha - 1][layerTo_switch][x - 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig - (placeOf_alpha + 1); x >= placeOf_alpha - 1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- void cubicString_matrix_frontVerticalRotation(char *****matrix, double matrix_size, int numbOf_tour, int faceTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int x = 0;
- int y = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], matrix[faceTo_switch][y + 1][matrix_sizeOrig - placeOf_alpha]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig - (placeOf_alpha + 1); x >= placeOf_alpha - 1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig - placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], matrix[faceTo_switch][y + 1][matrix_sizeOrig - placeOf_alpha]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig-(placeOf_alpha+1); x >= placeOf_alpha-1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][placeOf_alpha-1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig-placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][matrix_sizeOrig-placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- void cubicString_matrix_leftVerticalRotation(char *****matrix, double matrix_size, int numbOf_tour, int faceTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int y = 0;
- int z = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (y == placeOf_alpha)
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], matrix[placeOf_alpha - 1][y - 1][faceTo_switch]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (y == placeOf_alpha)
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], matrix[placeOf_alpha - 1][y - 1][faceTo_switch]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig-(placeOf_alpha+1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][placeOf_alpha-1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- void cubicString_matrix_leftLateralRotation(char *****matrix, double matrix_size, int numbOf_tour, int layerTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int z = 0;
- int x = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (x = matrix_sizeOrig - (placeOf_alpha+1);x >= placeOf_alpha-1; x--)
- {
- if (x == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], matrix[placeOf_alpha - 1][layerTo_switch][x + 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][placeOf_alpha-1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig-placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (x = matrix_sizeOrig - (placeOf_alpha + 1); x >= placeOf_alpha - 1; x--)
- {
- if (x == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], matrix[placeOf_alpha - 1][layerTo_switch][x + 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][layerTo_switch][x]);
- sprintf(matrix[placeOf_alpha - 1][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][placeOf_alpha - 1]);
- sprintf(matrix[z][layerTo_switch][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig - placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][layerTo_switch][x], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[z][layerTo_switch][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- void cubicString_matrix_backVerticalRotation(char *****matrix, double matrix_size, int numbOf_tour, int faceTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int x = 0;
- int y = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha-1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], matrix[faceTo_switch][y+1][placeOf_alpha - 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig-placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][matrix_sizeOrig-placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig-(placeOf_alpha+1); x >= placeOf_alpha-1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= placeOf_alpha - 1; y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], matrix[faceTo_switch][y+1][placeOf_alpha - 1]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][placeOf_alpha - 1]);
- sprintf(matrix[faceTo_switch][y][placeOf_alpha - 1], temp2);
- verif = 0;
- }
- }
- for (x = placeOf_alpha; x <= matrix_sizeOrig - placeOf_alpha; x++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][placeOf_alpha - 1][x]);
- sprintf(matrix[faceTo_switch][placeOf_alpha - 1][x], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha]);
- sprintf(matrix[faceTo_switch][y][matrix_sizeOrig - placeOf_alpha], temp2);
- verif = 0;
- }
- }
- for (x = matrix_sizeOrig - (placeOf_alpha + 1); x >= placeOf_alpha - 1; x--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x]);
- sprintf(matrix[faceTo_switch][matrix_sizeOrig - placeOf_alpha][x], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- void cubicString_matrix_rightVerticalRotation(char *****matrix, double matrix_size, int numbOf_tour, int faceTo_switch)
- {
- int matrix_sizeOrig = matrix_size;
- int y = 0;
- int z = 0;
- int placeOf_alpha = 1;
- _Bool verif = 0;
- int externRotation = 0;
- int tour = 0;
- char temp[3] = { 0 };
- char temp2[3] = { 0 };
- if (!((int)matrix_size % 2))
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= (placeOf_alpha - 1); y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], matrix[placeOf_alpha - 1][y + 1][faceTo_switch]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- else
- {
- for (tour = 0; tour < numbOf_tour; tour++)
- {
- matrix_size = matrix_sizeOrig;
- placeOf_alpha = 1;
- while (matrix_size >= 2)
- {
- for (externRotation = 0; externRotation < matrix_size - 1; externRotation++)
- {
- for (y = matrix_sizeOrig - (placeOf_alpha + 1); y >= (placeOf_alpha - 1); y--)
- {
- if (y == matrix_sizeOrig - (placeOf_alpha + 1))
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], matrix[placeOf_alpha - 1][y + 1][faceTo_switch]);
- verif = 0;
- }
- else if (!verif)
- {
- sprintf(temp2, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[placeOf_alpha - 1][y][faceTo_switch]);
- sprintf(matrix[placeOf_alpha - 1][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = placeOf_alpha; z <= matrix_sizeOrig - placeOf_alpha; z++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][placeOf_alpha - 1][faceTo_switch]);
- sprintf(matrix[z][placeOf_alpha - 1][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (y = placeOf_alpha; y <= matrix_sizeOrig - placeOf_alpha; y++)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch]);
- sprintf(matrix[matrix_sizeOrig - placeOf_alpha][y][faceTo_switch], temp2);
- verif = 0;
- }
- }
- for (z = matrix_sizeOrig - (placeOf_alpha + 1); z >= placeOf_alpha - 1; z--)
- {
- if (!verif)
- {
- sprintf(temp2, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp);
- verif = 1;
- }
- else
- {
- sprintf(temp, matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch]);
- sprintf(matrix[z][matrix_sizeOrig - placeOf_alpha][faceTo_switch], temp2);
- verif = 0;
- }
- }
- }
- matrix_size -= 2;
- placeOf_alpha++;
- }
- }
- }
- }
- int identifyTriDiShaker_Size(char string[])
- {
- int dim = 0;
- int stringLength = strlen(string);
- while (dim*dim*dim < stringLength)
- dim++;
- return (dim);
- }
- void string_random ( unsigned char string[], unsigned int rand_seed, int numbOf_tour, _Bool isReverse)
- {
- int *randTab1 = NULL;
- int *randTab2 = NULL;
- int stringLength = strlen(string);
- randTab1 = malloc(sizeof(int)*numbOf_tour);
- if ( randTab1 == NULL )
- {
- printf("\n\n\n\n\nPas assez de RAM pour allouer \"randTab1\" dans string_random\n");
- printf("numbOf_tour: %d\nString ( %d ): %s", numbOf_tour, strlen(string), string);
- Sleep(10000);
- exit(0);
- }
- randTab2 = malloc(sizeof(int)*numbOf_tour);
- if ( randTab2 == NULL )
- {
- printf("\n\n\n\n\nPas assez de RAM pour allouer \"randTab2\" dans string_random");
- printf("numbOf_tour: %d\nString ( %d ): %s", numbOf_tour, strlen(string), string);
- Sleep(10000);
- exit(0);
- }
- int alea;
- int temp = 0;
- int x = 0;
- srand(rand_seed);
- if (stringLength > 1 )
- {
- for (x = 0;x < numbOf_tour; x++)
- {
- alea = rand() % stringLength;
- randTab1[x] = alea;
- alea = rand() % stringLength;
- randTab2[x] = alea;
- }
- if (!isReverse)
- {
- for (x = 0; x < numbOf_tour; x++)
- {
- temp = string[randTab1[x]];
- string[randTab1[x]] = string[randTab2[x]];
- string[randTab2[x]] = temp;
- }
- }
- else
- {
- for (x = numbOf_tour - 1; x >= 0; x--)
- {
- temp = string[randTab1[x]];
- string[randTab1[x]] = string[randTab2[x]];
- string[randTab2[x]] = temp;
- }
- }
- }
- free(randTab1);
- free(randTab2);
- }
- void string_rightRotation(char string[], int numbOf_tour)
- {
- int stringLength = strlen(string);
- int x = 0;
- int y = 0;
- int permaTemp = 0;
- if (strlen(string) > 1)
- {
- for (x = 0; x < numbOf_tour; x++)
- {
- permaTemp = string[stringLength - 1];
- for (y = stringLength - 1; y>0; y--)
- string[y] = string[y - 1];
- string[0] = permaTemp;
- }
- }
- }
- void string_leftRotation (char string[], int numbOf_tour)
- {
- int stringLength = strlen(string);
- int x = 0;
- int y = 0;
- int permaTemp = 0;
- int temp = 0;
- if (stringLength > 1)
- {
- for (x = 0; x < numbOf_tour; x++)
- {
- permaTemp = string[0];
- for (y = 0; y < stringLength; y++)
- {
- if (!y)
- string[0] = string[1];
- else
- {
- temp = string[y];
- string[y] = string[y + 1];
- }
- }
- string[y - 1] = permaTemp;
- }
- }
- }
- void string_reverse(char string[])
- {
- int x = 0;
- int y = 0;
- char *temp = malloc(sizeof(char)*(strlen(string)+1));
- for (x = strlen(string) - 1, y = 0; x > -1; x--, y++)
- temp[y] = string[x];
- temp[y] = '\0';
- sprintf(string, "%s", temp);
- free(temp);
- }
- void subBox(char string[], char sub_Box[62][62][3])
- {
- char backup = 0;
- backup = string[0];
- string[0] = sub_Box[searchCoord(string[0])][searchCoord(string[1])][0];
- string[1] = sub_Box[searchCoord(backup)][searchCoord(string[1])][1];
- backup = string[2];
- string[2] = sub_Box[searchCoord(string[2])][searchCoord(string[3])][0];
- string[3] = sub_Box[searchCoord(backup)][searchCoord(string[3])][1];
- backup = string[4];
- string[4] = sub_Box[searchCoord(string[4])][searchCoord(string[5])][0];
- string[5] = sub_Box[searchCoord(backup)][searchCoord(string[5])][1];
- backup = string[6];
- string[6] = sub_Box[searchCoord(string[6])][searchCoord(string[7])][0];
- string[7] = sub_Box[searchCoord(backup)][searchCoord(string[7])][1];
- }
- int searchCoord(char caracter)
- {
- switch (caracter)
- {
- case '0':
- return 0;
- break;
- case '1':
- return 1;
- break;
- case '2':
- return 2;
- break;
- case '3':
- return 3;
- break;
- case '4':
- return 4;
- break;
- case '5':
- return 5;
- break;
- case '6':
- return 6;
- break;
- case '7':
- return 7;
- break;
- case '8':
- return 8;
- break;
- case '9':
- return 9;
- break;
- case 'A':
- return 10;
- break;
- case 'B':
- return 11;
- break;
- case 'C':
- return 12;
- break;
- case 'D':
- return 13;
- break;
- case 'E':
- return 14;
- break;
- case 'F':
- return 15;
- break;
- case 'G':
- return 16;
- break;
- case 'H':
- return 17;
- break;
- case 'I':
- return 18;
- break;
- case 'J':
- return 19;
- break;
- case 'K':
- return 20;
- break;
- case 'L':
- return 21;
- break;
- case 'M':
- return 22;
- break;
- case 'N':
- return 23;
- break;
- case 'O':
- return 24;
- break;
- case 'P':
- return 25;
- break;
- case 'Q':
- return 26;
- break;
- case 'R':
- return 27;
- break;
- case 'S':
- return 28;
- break;
- case 'T':
- return 29;
- break;
- case 'U':
- return 30;
- break;
- case 'V':
- return 31;
- break;
- case 'W':
- return 32;
- break;
- case 'X':
- return 33;
- break;
- case 'Y':
- return 34;
- break;
- case 'Z':
- return 35;
- break;
- case 'a':
- return 36;
- break;
- case 'b':
- return 37;
- break;
- case 'c':
- return 38;
- break;
- case 'd':
- return 39;
- break;
- case 'e':
- return 40;
- break;
- case 'f':
- return 41;
- break;
- case 'g':
- return 42;
- break;
- case 'h':
- return 43;
- break;
- case 'i':
- return 44;
- break;
- case 'j':
- return 45;
- break;
- case 'k':
- return 46;
- break;
- case 'l':
- return 47;
- break;
- case 'm':
- return 48;
- break;
- case 'n':
- return 49;
- break;
- case 'o':
- return 50;
- break;
- case 'p':
- return 51;
- break;
- case 'q':
- return 52;
- break;
- case 'r':
- return 53;
- break;
- case 's':
- return 54;
- break;
- case 't':
- return 55;
- break;
- case 'u':
- return 56;
- break;
- case 'v':
- return 57;
- break;
- case 'w':
- return 58;
- break;
- case 'x':
- return 59;
- break;
- case 'y':
- return 60;
- break;
- case 'z':
- return 61;
- break;
- }
- }
- short searchChar(int alpha)
- {
- switch (alpha)
- {
- case 'A':
- return 0;
- case 'B':
- return 1;
- case 'C':
- return 2;
- case 'D':
- return 3;
- case 'E':
- return 4;
- case 'F':
- return 5;
- case 'G':
- return 6;
- case 'H':
- return 7;
- case 'I':
- return 8;
- case 'J':
- return 9;
- case 'K':
- return 10;
- case 'L':
- return 11;
- case 'M':
- return 12;
- case 'N':
- return 13;
- case 'O':
- return 14;
- case 'P':
- return 15;
- case 'Q':
- return 16;
- case 'R':
- return 17;
- case 'S':
- return 18;
- case 'T':
- return 19;
- case 'U':
- return 20;
- case 'V':
- return 21;
- case 'W':
- return 22;
- case 'X':
- return 23;
- case 'Y':
- return 24;
- case 'Z':
- return 25;
- case 'a':
- return 26;
- case 'b':
- return 27;
- case 'c':
- return 28;
- case 'd':
- return 29;
- case 'e':
- return 30;
- case 'f':
- return 31;
- case 'g':
- return 32;
- case 'h':
- return 33;
- case 'i':
- return 34;
- case 'j':
- return 35;
- case 'k':
- return 36;
- case 'l':
- return 37;
- case 'm':
- return 38;
- case 'n':
- return 39;
- case 'o':
- return 40;
- case 'p':
- return 41;
- case 'q':
- return 42;
- case 'r':
- return 43;
- case 's':
- return 44;
- case 't':
- return 45;
- case 'u':
- return 46;
- case 'v':
- return 47;
- case 'w':
- return 48;
- case 'x':
- return 49;
- case 'y':
- return 50;
- case 'z':
- return 51;
- case '0':
- return 52;
- case '1':
- return 53;
- case '2':
- return 54;
- case '3':
- return 55;
- case '4':
- return 56;
- case '5':
- return 57;
- case '6':
- return 58;
- case '7':
- return 59;
- case '8':
- return 60;
- case '9':
- return 61;
- case '!':
- return 62;
- case '\"':
- return 63;
- case '#':
- return 64;
- case '$':
- return 65;
- case '%' :
- return 66;
- case '&':
- return 67;
- case '(':
- return 68;
- case ')':
- return 69;
- case '*':
- return 70;
- case '+':
- return 71;
- case ',':
- return 72;
- case '-':
- return 73;
- case '.':
- return 74;
- case '/':
- return 75;
- case ':':
- return 76;
- case ';':
- return 77;
- case '<':
- return 78;
- case '=':
- return 79;
- case '>':
- return 80;
- case '?':
- return 81;
- case '@':
- return 82;
- case '[':
- return 83;
- case ']':
- return 84;
- case '^':
- return 85;
- case '_':
- return 86;
- case '`':
- return 87;
- case '{':
- return 88;
- case '|':
- return 89;
- case '}':
- return 90;
- case '~':
- return 91;
- case ' ':
- return 92;
- case '\'':
- return 93;
- default:
- return 0;
- }
- }
Add Comment
Please, Sign In to add comment