|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 2793 (0xae9) Types: TextFile Names: »output.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Kriegspiel/output.c«
/* output.c */ #include "externs.h" #include <strings.h> redraw () { int i; if (vtterm) { /* make characters double-width on a vt100 type terminal */ overwrite (stdscr, backupscreen); overwrite (blankscreen, stdscr); refresh (); printf("\0337\033[0;0H\033#6"); /* save cursor, home, and widen first line */ for (i = 1; i <= LINES - 1; i++) printf("\n\033#6"); /* wide next line */ printf("\0338"); /* restore cursor */ overwrite (backupscreen, stdscr); refresh(); } else wrefresh(curscr); } reportchecks (checkdirs, kingloc) LIST checkdirs; int kingloc; { LIST l, lmember (); int quadrant, n; char str [2] [40]; n = 0; quadrant = ((kingloc % 10 > 4) == (kingloc/10 < 5)); if (lmember (-9, checkdirs) || lmember (9, checkdirs)) if (quadrant == 1) strcpy (str[n++], "long diagonal\n"); else strcpy (str[n++], "short diagonal\n"); if (lmember (-11, checkdirs) || lmember (11, checkdirs)) if (quadrant == 0) strcpy (str[n++], "long diagonal\n"); else strcpy (str[n++], "short diagonal\n"); if (lmember (-10, checkdirs) || lmember (10, checkdirs)) strcpy (str[n++], "file\n"); if (lmember (-1, checkdirs) || lmember (1, checkdirs)) strcpy (str[n++], "rank\n"); l = dirlist [KNIGHT]; while (l != NIL) { if (lmember (l->i, checkdirs)) strcpy (str[n++], "knight\n"); l = l->n; } if (n > 0) { waddstr (win [CHECK], "check by the\n"); waddstr (win [CHECK], str[0]); } if (n == 2) { waddstr (win [CHECK], "and "); waddstr (win [CHECK], str[1]); } refresh(); } illegal (why, color) int color, why; { wclear (win [LEGAL]); if (why == ILLEGAL) waddstr (win [LEGAL], "illegal"); else if (color == ourcolor) switch (why) { case ILLEGAL_PIECE: waddstr (win [LEGAL], "illegal piece"); break; case ILLEGAL_FORMAT: waddstr (win [LEGAL], "illegal format"); wclear (win [MESSAGE]); waddstr (win [MESSAGE], "(type help)\n"); break; case AMBIGUOUS_TO: waddstr (win [LEGAL], "to which square?"); break; case AMBIGUOUS_FROM: waddstr (win [LEGAL], "from which?"); break; case AMBIGUOUS: waddstr (win [LEGAL], "ambiguous"); break; case NOPAWNTRIES: waddstr (win [LEGAL], "no pawntries"); break; case NOMOREPAWNTRIES: waddstr (win [LEGAL], "3 pawns tried"); break; case BADPAWNPUSH: case NO_FROM: waddstr (win [LEGAL], "from where?"); break; case NO_MOVE: waddstr (win [LEGAL], "how?"); break; case KING_MOVED: waddstr (win [LEGAL], "king has moved"); break; case ROOK_MOVED: waddstr (win [LEGAL], "rook has moved"); break; case PIECE_IN_WAY: waddstr (win [LEGAL], "piece in way"); break; case NO_PIECE: waddstr (win [LEGAL], "no piece there"); break; } else waddstr (win [LEGAL], "nope"); }