aboutsummaryrefslogtreecommitdiff
path: root/src/cube.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cube.c')
-rw-r--r--src/cube.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/cube.c b/src/cube.c
index 0ccffa4..c2a457c 100644
--- a/src/cube.c
+++ b/src/cube.c
@@ -2,6 +2,8 @@
2 2
3#include "cube.h" 3#include "cube.h"
4 4
5static int where_is_piece(int piece, int *arr, int n);
6
5void 7void
6compose(Cube *c2, Cube *c1) 8compose(Cube *c2, Cube *c1)
7{ 9{
@@ -154,3 +156,33 @@ print_cube(Cube *cube)
154 printf(" %s ", center_string[cube->xp[i]]); 156 printf(" %s ", center_string[cube->xp[i]]);
155 printf("\n"); 157 printf("\n");
156} 158}
159
160int
161where_is_center(Center x, Cube *c)
162{
163 return where_is_piece(x, c->xp, 6);
164}
165
166int
167where_is_corner(Corner k, Cube *c)
168{
169 return where_is_piece(k, c->cp, 8);
170}
171
172int
173where_is_edge(Edge e, Cube *c)
174{
175 return where_is_piece(e, c->ep, 12);
176}
177
178static int
179where_is_piece(int piece, int *arr, int n)
180{
181 int i;
182
183 for (i = 0; i < n; i++)
184 if (arr[i] == piece)
185 return i;
186
187 return -1;
188}

Generated with cgit - Back to sebastiano.tronto.net