| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <string.h>
- #include <stdio.h>
- #include "rubiks.h"
- void rubik_output(t_rubiks *rub, FILE *f)
- {
- char out[55];
- memcpy(out, rub->grid, sizeof(rub->grid));
- out[54] = 0;
- fprintf(f, "%s", out);
- }
- void spatial_show(t_rubiks *rub)
- {
- printf(" +---+\n");
- printf(" |%c%c%c|\n", rub->grid[5][0][2], rub->grid[5][1][2], rub->grid[5][2][2]);
- printf(" |%c%c%c|\n", rub->grid[5][0][1], rub->grid[5][1][1], rub->grid[5][2][1]);
- printf(" |%c%c%c|\n", rub->grid[5][0][0], rub->grid[5][1][0], rub->grid[5][2][0]);
- printf(" +---+\n");
- printf(" |%c%c%c|\n", rub->grid[2][0][2], rub->grid[2][1][2], rub->grid[2][2][2]);
- printf(" |%c%c%c|\n", rub->grid[2][0][1], rub->grid[2][1][1], rub->grid[2][2][1]);
- printf(" |%c%c%c|\n", rub->grid[2][0][0], rub->grid[2][1][0], rub->grid[2][2][0]);
- printf("+---+---+---+\n");
- printf("|%c%c%c|%c%c%c|%c%c%c|\n",
- rub->grid[3][0][2], rub->grid[3][1][2], rub->grid[3][2][2],
- rub->grid[0][0][2], rub->grid[0][1][2], rub->grid[0][2][2],
- rub->grid[1][0][2], rub->grid[1][1][2], rub->grid[1][2][2]);
- printf("|%c%c%c|%c%c%c|%c%c%c|\n",
- rub->grid[3][0][1], rub->grid[3][1][1], rub->grid[3][2][1],
- rub->grid[0][0][1], rub->grid[0][1][1], rub->grid[0][2][1],
- rub->grid[1][0][1], rub->grid[1][1][1], rub->grid[1][2][1]);
- printf("|%c%c%c|%c%c%c|%c%c%c|\n",
- rub->grid[3][0][1], rub->grid[3][1][0], rub->grid[3][2][0],
- rub->grid[0][0][1], rub->grid[0][1][0], rub->grid[0][2][0],
- rub->grid[1][0][1], rub->grid[1][1][0], rub->grid[1][2][0]);
- printf("+---+---+---+\n");
- printf(" |%c%c%c|\n", rub->grid[4][0][2], rub->grid[4][1][2], rub->grid[4][2][2]);
- printf(" |%c%c%c|\n", rub->grid[4][0][1], rub->grid[4][1][1], rub->grid[4][2][1]);
- printf(" |%c%c%c|\n", rub->grid[4][0][0], rub->grid[4][1][0], rub->grid[4][2][0]);
- printf("+---+---+---+\n");
- }
- static void doSolutionOutput(struct s_stackitem *s, FILE *out, size_t down)
- {
- if (--down)
- doSolutionOutput(s->prev, out, down);
- fprintf(out, "%c", (int) s->value);
- }
- void solution_output(t_stack *s, FILE *out)
- {
- fprintf(out, ".");
- doSolutionOutput(s->items, out, stack_length(s));
- }
|