aboutsummaryrefslogtreecommitdiff
path: root/test/020_move/move_tests.c
blob: 4a010f136ecc5abd1b1fe3d00182e2a34dcd284d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>

#ifdef CUBE_AVX2
#include <immintrin.h>
#endif

#include "../../cube.h"

#define STRLENMAX 10000
#define MOVESMAX 1000

int main() {
	char str[STRLENMAX];
	int i, n;
	move_t moves[MOVESMAX];
	cube_t cube;

	fgets(str, STRLENMAX, stdin);
	n = readmoves(str, moves);

	if (n == -1) {
		printf("Error reading moves\n");
		return 1;
	}

	fgets(str, STRLENMAX, stdin);
	cube = readcube(H48, str);

	for (i = 0; i < n; i++)
		cube = move(cube, moves[i]);

	if (iserror(cube)) {
		printf("Error moving cube\n");
	} else if (!issolvable(cube)) {
		printf("Moved cube is not solvable\n");
	} else {
		writecube(H48, cube, str);
		printf("%s\n", str);
	}

	return 0;
}

Generated with cgit - Back to sebastiano.tronto.net