Hexagon_Brute_Force/src/main.c.bak

85 lines
1.2 KiB
C

/*
int array [1..19]
loop:
- shift array by one thing until it is every possible version
- each time check if it is the solution
*/
#include <stdio.h>
#include <stdlib.h>
#define HEX_MAX 5
int* createHexagon(){
int* hexagon = malloc(sizeof(int)*(HEX_MAX+1));
if(hexagon == NULL){
printf("buy more ram lol\n");
exit(1);
}
for(int i=1; i<=HEX_MAX+1; ++i){
hexagon[i-1] = i;
}
return hexagon;
}
int isSolution(int* h){
return 1;
}
void swapPlaces(int* h, int a, int b){
int bb = h[b];
h[b] = h[a];
h[a] = bb;
}
void printHexagon(int* h){
printf("\n== HEXAGON ==\n");
for(int i=0; i<=HEX_MAX; ++i){
printf("%d_",h[i]);
} putchar('\n');
}
void solveHexagon(int* h, int n){
if(isSolution(h)){
printf("found solution");
printHexagon(h);
//return;
}
int i,j,tmp;
if(n == 1){
printf("sorting finished\n");
return;
}
for(i=0; i<n; ++i){
solveHexagon(h, n-1);
j = (n % 2 == 1) ? n-1 : 0;
//swapPlaces(h, n-1, j);
tmp = h[n-1];
h[n-1] = h[j];
h[j] = tmp;
}
}
/*
ABC
CBA
CAB
BAC
BCA
ACB
ABC
*/
int main(){
int* my_hexagon = createHexagon();
solveHexagon(my_hexagon,HEX_MAX+1);
free(my_hexagon);
return 0;
}