X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=TP_13%2Fexo2%2Flib%2Fdisplay.c;h=21d85bb84cbece58dff339b217de62212d6cfb3a;hb=811d4abe716c4d14629cee5beda1e1f3cff979bc;hp=22deb96a41a7e7a06ede4fb8462c2d98fecea892;hpb=7515f89753dd7d16c4f2a9b11003f67d8148eb09;p=TD_C.git diff --git a/TP_13/exo2/lib/display.c b/TP_13/exo2/lib/display.c index 22deb96..21d85bb 100644 --- a/TP_13/exo2/lib/display.c +++ b/TP_13/exo2/lib/display.c @@ -18,10 +18,13 @@ #include +#include "display.h" + /* in all print routine, y and x are the coordinates of the first character of the shape * which can be a space ' ' */ void print_board(int y, int x) { + mvprintw(y, x, " | |"); mvprintw(y+1, x, " | |"); mvprintw(y+2, x, "----+----+----"); @@ -42,15 +45,71 @@ void print_board(int y, int x) { * - base_y + 3, base_x + 11 * - base_y + 6, base_x + 6 * - base_y + 6, base_x + 11 - * The added y value can be {0, 3, 6} - * The added x value can be {1, 6, 11} */ + * The added (y, x) couple values can be {0, 3, 6}x{1, 6, 11} + */ + +static void print_x(int y, int x) { -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, "\\/"); } + +/* y: 1 -> +0 x: 1 -> +1 + * 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 { + return 6; + } +} + +static int remap_x(int x) { + + if (x == 1) { + return 1; + } else if (x == 2) { + return 6; + } else { + 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)); + } else { + print_x(base_y + remap_y((coordinates_array + i)->y), base_x + remap_x((coordinates_array + i)->x)); + } + i++; + } +} + +/* void printf_result(unsigned player, unsigned round) { + char* result_msg = ""; + + if (round < MAX_COORDINATES + 1) { + if (player == 0) { + result_msg = "Joueur 1"; + } else { + result_msg = "Joueur 2"; + } + printf("%s gagne !\n", result_msg); + } else { + printf("Egalite !\n"); + } +} */ +