/* in all print routine, y and x are the coordinates of the first character of the shape
* which can be a space ' ' */
+/* FIXME: one can split this shape in building blocks and build it using them */
void print_board(int y, int x) {
+
mvprintw(y, x, " | |");
mvprintw(y+1, x, " | |");
mvprintw(y+2, x, "----+----+----");
* The added (y, x) couple values can be {0, 3, 6}x{1, 6, 11}
*/
-void print_x(int y, int x) {
+static void print_x(int y, int x) {
+
mvprintw(y, x, "\\/");
mvprintw(y+1, x,"/\\");
}
-void print_o(int y, int x) {
+static void print_o(int y, int x) {
+
mvprintw(y, x, "/\\");
mvprintw(y+1, x, "\\/");
}
* 2 -> +3 2 -> +6
* 3 -> +6 3 -> +11 */
static int remap_y(int y) {
+
if (y == 1) {
return 0;
- } else if (y == 2) {
- return 3;
- } else {
+ } else if (y > 1 && y <= 3) {
+ return (remap_y(y - 1) + 3);
+ } else {
+ /* FIXME: return an error value like -1
+ * but for now there a bug somewhere */
return 6;
}
}
static int remap_x(int x) {
+
if (x == 1) {
return 1;
- } else if (x == 2) {
- return 6;
+ } else if (x > 1 && x <= 3) {
+ return (remap_x(x - 1) + 5);
} else {
+ /* FIXME: return an error value like -1
+ * but for now there a bug somewhere */
return 11;
}
}
void print_coordinates(coordinates_t coordinates_array[], int base_y, int base_x) {
unsigned i = 0;
+
while ((coordinates_array + i)->y != 0 && (coordinates_array + i)->x != 0) {
if ((coordinates_array + i)->type == 0) {
print_o(base_y + remap_y((coordinates_array + i)->y), base_x + remap_x((coordinates_array + i)->x));