return j;
}
-void _element (board_t *board, int x, int y, int symb)
+void _element0 (board_t *board, int x, int y, int symb)
{
int element = ' ';
- switch (board->scale) {
- case 0:
+ switch (symb) {
+ case 'F':
+ case 'H':
+ case 'X':
+ element = ACS_DIAMOND;
+ break;
+ }
+ set_color (black);
+ switch (symb) {
+ case 'C':
+ set_color (bgreen);
+ break;
+ case 'F':
+ set_color (wgreen);
+ break;
+ case 'H':
+ set_color (red);
+ break;
+ case 'P':
+ set_color (byellow);
+ break;
+ case 'O':
+ set_color (white);
+ break;
+ case 'X':
+ set_color (white);
+ break;
+ case 'Z':
+ set_color (bblue);
+ break;
+ case ' ':
set_color (black);
- switch (symb) {
- case 'C':
- set_color (bgreen);
- break;
- case 'F':
- element = ACS_DIAMOND;
- set_color (wgreen);
- break;
- case 'H':
- element = ACS_DIAMOND;
- set_color (red);
- break;
- case 'P':
- element = ACS_DIAMOND;
- set_color (byellow);
- break;
- case 'O':
- set_color (white);
- break;
- case 'X':
- set_color (white);
- element = ACS_DIAMOND;
- break;
- case 'Z':
- set_color (bblue);
- break;
- case ' ':
- set_color (black);
- break;
- }
- mvaddch (board->yoffset + y, board->xoffset + x, element);
+ break;
+ }
+ mvaddch (board->yoffset + y, board->xoffset + x, element);
+ set_color (white);
+}
+
+void _element1 (board_t *board, int x, int y, int symb)
+{
+ int element0 = ' ';
+ int element1 = ' ';
+ switch (symb) {
+ case 'F':
+ case 'H':
+ case 'X':
+ element0 = ACS_LARROW;
+ element1 = ACS_RARROW;
+ break;
+ }
+ set_color (black);
+ switch (symb) {
+ case 'C':
+ set_color (bgreen);
+ break;
+ case 'F':
+ set_color (wgreen);
+ break;
+ case 'H':
+ set_color (red);
+ break;
+ case 'P':
+ set_color (byellow);
+ break;
+ case 'O':
+ set_color (white);
+ break;
+ case 'X':
+ set_color (white);
+ break;
+ case 'Z':
+ set_color (bblue);
+ break;
+ case ' ':
+ set_color (black);
+ break;
+ }
+ mvaddch (board->yoffset + y, board->xoffset + 2 * x, element0);
+ mvaddch (board->yoffset + y, board->xoffset + 2 * x + 1, element1);
+ set_color (white);
+}
+
+void _element2 (board_t *board, int x, int y, int symb)
+{
+ int element00 = ' ';
+ int element10 = ' ';
+ int element01 = ' ';
+ int element11 = ' ';
+ switch (symb) {
+ case 'F':
+ case 'H':
+ case 'X':
+ element00 = ACS_ULCORNER;
+ element01 = ACS_URCORNER;
+ element10 = ACS_LLCORNER;
+ element11 = ACS_LRCORNER;
+ break;
+ }
+ set_color (black);
+ switch (symb) {
+ case 'C':
+ set_color (bgreen);
+ break;
+ case 'F':
+ set_color (wgreen);
+ break;
+ case 'H':
+ set_color (red);
+ break;
+ case 'P':
+ set_color (byellow);
+ break;
+ case 'O':
+ set_color (white);
+ break;
+ case 'X':
set_color (white);
break;
+ case 'Z':
+ set_color (bblue);
+ break;
+ case ' ':
+ set_color (black);
+ break;
+ }
+ mvaddch (board->yoffset + 2 * y, board->xoffset + 2 * x, element00);
+ mvaddch (board->yoffset + 2 * y, board->xoffset + 2 * x + 1, element01);
+ mvaddch (board->yoffset + 2 * y + 1, board->xoffset + 2 * x, element10);
+ mvaddch (board->yoffset + 2 * y + 1, board->xoffset + 2 * x + 1, element11);
+ set_color (white);
+}
+
+void _element3 (board_t *board, int x, int y, int symb)
+{
+ int element00 = ' ';
+ int element10 = ' ';
+ int element01 = ' ';
+ int element11 = ' ';
+ int element02 = ' ';
+ int element12 = ' ';
+ switch (symb) {
+ case 'F':
+ case 'H':
+ case 'X':
+ element00 = ACS_ULCORNER;
+ element01 = ACS_HLINE;
+ element02 = ACS_URCORNER;
+ element10 = ACS_LLCORNER;
+ element11 = ACS_HLINE;
+ element12 = ACS_LRCORNER;
+ break;
+ }
+ set_color (black);
+ switch (symb) {
+ case 'C':
+ set_color (bgreen);
+ break;
+ case 'F':
+ set_color (wgreen);
+ break;
+ case 'H':
+ set_color (red);
+ break;
+ case 'P':
+ set_color (byellow);
+ break;
+ case 'O':
+ set_color (white);
+ break;
+ case 'X':
+ set_color (white);
+ break;
+ case 'Z':
+ set_color (bblue);
+ break;
+ case ' ':
+ set_color (black);
+ break;
+ }
+ mvaddch (board->yoffset + 2 * y, board->xoffset + 3 * x, element00);
+ mvaddch (board->yoffset + 2 * y, board->xoffset + 3 * x + 1, element01);
+ mvaddch (board->yoffset + 2 * y, board->xoffset + 3 * x + 2, element02);
+ mvaddch (board->yoffset + 2 * y + 1, board->xoffset + 3 * x, element10);
+ mvaddch (board->yoffset + 2 * y + 1, board->xoffset + 3 * x + 1, element11);
+ mvaddch (board->yoffset + 2 * y + 1, board->xoffset + 3 * x + 2, element12);
+ set_color (white);
+}
+
+void _element (board_t *board, int x, int y, int symb)
+{
+ switch (board->scale) {
+ case 0:
+ _element0 (board, x, y, symb);
+ break;
+ case 1:
+ _element1 (board, x, y, symb);
+ break;
+ case 2:
+ _element2 (board, x, y, symb);
+ break;
+ case 3:
+ _element3 (board, x, y, symb);
+ break;
}
}