|
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 p
Length: 6618 (0x19da) Types: TextFile Names: »pcdisp.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Hotel/pcdisp.c«
/* * This program (called "Hotel") is copyright 1989 to Scott R. Turner, * in both source code and executable form. Permission is given to * copy both the source code and the executable under the following * conditions: * * COPYING POLICIES * * 1. You may copy and distribute verbatim copies of Hotel code as you * receive it, in any medium, provided that you conspicuously and * appropriately publish on each file a valid copyright notice such as * "Copyright (C) 1989 Scott R. Turner", and keep intact the copyright * and license notices on all files. You may charge a distribution fee for the * physical act of transferring a copy, but that fee may not exceed * your actual costs in creating and delivering the copy. * * 2. You may modify your copy or copies of Hotel or any portion of it, * and copy and distribute such modifications under the terms of * Paragraph 1 above, provided that you also do the following: * * a) cause the modified files to carry prominent notices stating * who last changed such files and the date of any change; and * * b) cause the whole of any work that you distribute or publish, * that in whole or in part contains or is a derivative of Hotel * or any part thereof, to be licensed at no charge to all third * parties on terms identical to those contained in this License * Agreement (except that you may choose to grant more extensive * warranty protection to third parties, at your option). * * 3. You may not copy, sublicense, distribute or transfer Hotel * except as expressly provided under this License Agreement. Any attempt * otherwise to copy, sublicense, distribute or transfer Hotel is void and * your rights to use Hotel under this License agreement shall be * automatically terminated. However, parties who have received computer * software programs from you with this License Agreement will not have * their licenses terminated so long as such parties remain in full compliance. * * 4. Under no circumstances may you charge for copies of Hotel, for copies * of any program containing code from Hotel in whole or in part, or for * any software package or collection of programs or code that contains Hotel * in whole or part. * */ /* * Wed Nov 2 11:28:34 1988 -- Scott R. Turner * display_utils.c (PC Version) * * This file contains utility functions for maintaining * the screen display. (Primarily print_board). * */ #include "defs.h" #ifdef TURBO #define DULCORNER 201 #define DURCORNER 187 #define DLRCORNER 188 #define DLLCORNER 200 #define DLINE 205 #define DVERTICAL 186 #define BLOCK 254 #define POINT 250 #define LINE 196 #define LINETEE 194 #define VERTICAL 179 #define ULCORNER 218 #define URCORNER 191 #define LRCORNER 217 #define LLCORNER 192 #define TRIPLELINE 240 #define LHORTEE 180 #define RHORTEE 195 #endif #ifdef UNIX #define DULCORNER '+' #define DURCORNER '+' #define DLRCORNER '+' #define DLLCORNER '+' #define DLINE '-' #define DVERTICAL '|' #define BLOCK '*' #define POINT '.' #define LINE '-' #define LINETEE '+' #define VERTICAL '|' #define ULCORNER '+' #define URCORNER '+' #define LRCORNER '+' #define LLCORNER '+' #define TRIPLELINE '*' #define LHORTEE '|' #define RHORTEE '|' #endif print_board(p) int p; { int i,j,tile,x,y; getyx(stdscr,y,x); tile = 1; move(2,3); addch(DULCORNER); for(i=1;i<=boardsize;i++) { move(2,(i-1)*2+4); /* addstr("MM"); */ addch(DLINE); addch(DLINE); } move(2,boardsize*2+4); addch(DLINE); addch(DURCORNER); /* addstr("M;"); */ for(i=1;i<=boardsize;i++) { move(i+2,3); /* addch(':'); */ addch(DVERTICAL); for(j=1;j<=boardsize;j++) { move(i+2,(2 * j)+3); if (board[i][j] == UNUSED) { /* addch('~'); */ addch(BLOCK); } else if (board[i][j] == 0) { /* addch('y'); */ addch(POINT); } else if (board[i][j] == -p) { standout(); addch('0' + tile++); standend(); } else if (board[i][j] == UNPLAYABLE && debug) { addch('*'); } else if (board[i][j] < 0) { /* addch('y'); */ addch(POINT); } else addch(board[i][j] + 'A' - 1); }; move(i+2,(boardsize*2+5)); /* addch(':'); */ addch(DVERTICAL); }; move(boardsize+3,3); /* addch('H'); */ addch(DLLCORNER); for(i=1;i<=boardsize;i++) { move(boardsize+3,(i-1)*2+4); /* addstr("MM"); */ addch(DLINE); addch(DLINE); } move(boardsize+3,boardsize*2+4); /* addstr("M<"); */ addch(DLINE); addch(DLRCORNER); /* Now do rhs info. */ move(2,(boardsize*2+8)); printw("Hotel Cost Yours Available"); move(3,(boardsize*2+8)); for (i=1;i<=6;i++) addch(LINE); addch(LINETEE); for (i=1;i<=8;i++) addch(LINE); addch(LINETEE); for (i=1;i<=7;i++) addch(LINE); addch(LINETEE); for (i=1;i<=10;i++) addch(LINE); /* printw("D D D D D D B D D D D D D D D B D D D D D D D B D D D D D D D D D D"); */ for(i=1;i<=numhotels;i++) { move(i+3,(boardsize*2+10)); clrtoeol(); addch(i+'A'-1); if(hotels[i].size > 0) { move(i+3,(boardsize*2+17)); printw("$%d",share_cost(i)); } else { move(i+3,(boardsize*2+16)); printw("($%d)",share_cost(i)); }; if (players[p].shares[i] > 0) { move(i+3,(boardsize*2+27)); printw("%d",players[p].shares[i]); }; move(i+3,(boardsize*2+36)); printw("%d",hotels[i].shares); move(i+3,(boardsize*2+14)); /* addch('3'); */ addch(VERTICAL); move(i+3,(boardsize*2+23)); /* addch('3'); */ addch(VERTICAL); move(i+3,(boardsize*2+31)); /* addch('3'); */ addch(VERTICAL); }; move(numhotels+6,(boardsize*2+18)); clrtoeol(); printw("Cash = $%d",players[p].cash); move(0,0); /* printw("ZDDDDDDDDDDDDDDDDDDDDDDDDD 4 pHpOpTpEpLp C D D D D D D D D D D D D D D D D D D D D D D D D ?"); */ addch(ULCORNER); for(i=1;i<=25;i++) addch(LINE); addch(LHORTEE); addch(' '); addch(TRIPLELINE); addch('H'); addch(TRIPLELINE); addch('O'); addch(TRIPLELINE); addch('T'); addch(TRIPLELINE); addch('E'); addch(TRIPLELINE); addch('L'); addch(' '); addch(RHORTEE); for(i=1;i<=25;i++) addch(LINE); addch(URCORNER); for(i=1;i<=(boardsize+3);i++) { move(i,0); /* addch('3'); */ addch(VERTICAL); move(i,65); /* addch('3'); */ addch(VERTICAL); }; move((boardsize + 4),0); /* printw("@DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDY"); */ addch(LLCORNER); for(i=1;i<=64;i++) addch(LINE); addch(LRCORNER); move(y,x); refresh(); };