Commit | Line | Data |
---|---|---|
480acfeb JB |
1 | /* |
2 | * ===================================================================================== | |
3 | * | |
4 | * Filename: ui.c | |
5 | * | |
6 | * Description: Routines to handle the user interface | |
7 | * | |
8 | * Version: 1.0 | |
9 | * Created: 24/04/2017 16:41:15 | |
10 | * Revision: none | |
11 | * Compiler: gcc | |
12 | * | |
13 | * Author: Jerome Benoit (fraggle), jerome.benoit@piment-noir.org | |
14 | * Organization: Piment Noir | |
15 | * | |
16 | * ===================================================================================== | |
17 | */ | |
18 | ||
19 | #include <ncurses.h> | |
20 | ||
21 | #include "ui.h" | |
22 | ||
23 | /* in all print routine, y and x are the coordinates of the first character of the shape | |
24 | * which can be a space ' ' */ | |
25 | ||
26 | /* FIXME: one can split this shape in building blocks and build it using them */ | |
27 | void print_board(int y, int x) { | |
28 | ||
4ddf6f1a JB |
29 | mvprintw(y, x, " A | B | C | D | E | F | G | H"); |
30 | mvprintw(y+1, x, " -----+----+----+----+----+----+----+-----"); | |
31 | mvprintw(y+2, x, "1| | | | | | | | |"); | |
32 | mvprintw(y+3, x, " | | | | | | | | |"); | |
33 | mvprintw(y+4, x, " +----+----+----+----+----+----+----+----+"); | |
34 | mvprintw(y+5, x, "2| | | | | | | | |"); | |
35 | mvprintw(y+6, x, " | | | | | | | | |"); | |
36 | mvprintw(y+7, x, " +----+----+----+----+----+----+----+----+"); | |
37 | mvprintw(y+8, x, "3| | | | | | | | |"); | |
38 | mvprintw(y+9, x, " | | | | | | | | |"); | |
39 | mvprintw(y+10, x, " +----+----+----+----+----+----+----+----+"); | |
40 | mvprintw(y+11, x, "4| | | | | | | | |"); | |
41 | mvprintw(y+12, x, " | | | | | | | | |"); | |
42 | mvprintw(y+13, x, " +----+----+----+----+----+----+----+----+"); | |
43 | mvprintw(y+14, x, "5| | | | | | | | |"); | |
44 | mvprintw(y+15, x, " | | | | | | | | |"); | |
45 | mvprintw(y+16, x, " +----+----+----+----+----+----+----+----+"); | |
46 | mvprintw(y+17, x, "7| | | | | | | | |"); | |
47 | mvprintw(y+18, x, " | | | | | | | | |"); | |
48 | mvprintw(y+19, x, " +----+----+----+----+----+----+----+----+"); | |
49 | mvprintw(y+20, x, "8| | | | | | | | |"); | |
50 | mvprintw(y+21, x, " | | | | | | | | |"); | |
51 | mvprintw(y+22, x, " -----+----+----+----+----+----+----+-----"); | |
480acfeb JB |
52 | } |
53 | ||
4ddf6f1a | 54 | static void print_o(int y, int x, int type) { |
480acfeb JB |
55 | |
56 | mvprintw(y, x, "/\\"); | |
57 | mvprintw(y+1, x, "\\/"); | |
58 | } | |
59 | ||
2e5c1894 JB |
60 | /* will be used for pawn placement hints */ |
61 | static void print_x(int y, int x, int type) { | |
62 | ||
63 | mvprintw(y, x, "\\/"); | |
64 | mvprintw(y+1, x,"/\\"); | |
65 | } | |
4ddf6f1a | 66 | |
2e5c1894 JB |
67 | /* y = 1: y -> 0 x = 1: 1 -> 1 |
68 | * y > 1: y -> y + 3 x > 1: x -> x + 5 */ | |
480acfeb JB |
69 | static int remap_y(int y) { |
70 | ||
71 | if (y == 1) { | |
72 | return 0; | |
4ddf6f1a | 73 | } else if (y > 1) { |
2e5c1894 | 74 | return (remap_y(y -1) + 3); |
480acfeb JB |
75 | } |
76 | } | |
77 | ||
78 | static int remap_x(int x) { | |
79 | ||
80 | if (x == 1) { | |
2e5c1894 JB |
81 | return x; |
82 | } else if (x > 1) { | |
83 | return (remap_x(x - 1) + 5); | |
84 | } | |
85 | } | |
86 | ||
87 | void print_pawns(int pawn_array[board_size][board_size]) { | |
88 | for (int i = 0; i < board_size; i++) { | |
89 | for (int j = 0; j < board_size; j++) { | |
90 | //mvprintw(i, j, "pawn[%d][%d] = %d\n", i, j, pawn_array[i][j]); | |
91 | } | |
480acfeb JB |
92 | } |
93 | } |