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_x(int y, int x, int type) { |
480acfeb JB |
55 | |
56 | mvprintw(y, x, "\\/"); | |
57 | mvprintw(y+1, x,"/\\"); | |
58 | } | |
59 | ||
4ddf6f1a | 60 | static void print_o(int y, int x, int type) { |
480acfeb JB |
61 | |
62 | mvprintw(y, x, "/\\"); | |
63 | mvprintw(y+1, x, "\\/"); | |
64 | } | |
65 | ||
4ddf6f1a JB |
66 | /* y = 1: y -> 0 x = 1: 1 -> 1 |
67 | * y > 2: y -> y + 3 2 -> +6 */ | |
68 | ||
480acfeb JB |
69 | static int remap_y(int y) { |
70 | ||
71 | if (y == 1) { | |
72 | return 0; | |
4ddf6f1a JB |
73 | } else if (y > 1) { |
74 | return y + 3; | |
480acfeb JB |
75 | } |
76 | } | |
77 | ||
78 | static int remap_x(int x) { | |
79 | ||
80 | if (x == 1) { | |
81 | return 1; | |
4ddf6f1a JB |
82 | } else if (x > 2) { |
83 | return x + 5; | |
480acfeb JB |
84 | } |
85 | } |