home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume13 / okbridge / part07 / display.h < prev    next >
C/C++ Source or Header  |  1992-01-12  |  6KB  |  165 lines

  1. /* display.h
  2.  ! 
  3.  ! Copyright (C) 1990,1991 by Matthew Clegg
  4.  ! 
  5.  ! This program may be copied and distributed freely.  Please do not
  6.  ! charge money for this program or for any program derived from it.
  7.  ! If you modify this program, then include a notice stating plainly
  8.  ! that your program is derived from the okbridge program and is not
  9.  ! the same as the official okbridge program.
  10.  !
  11.  ! I welcome any suggestions for improvement to okbridge, and 
  12.  ! I would be especially happy to receive improved source code.
  13.  ! If you have comments or suggestions, or if you would like to
  14.  ! join the okbridge mailing list, then write to
  15.  !
  16.  !   mclegg@cs.ucsd.edu
  17.  !
  18.  *
  19.  * The DISPLAY module for the bridge program is responsible for
  20.  * presenting the information regarding various aspects of the
  21.  * game to the screen.  The organization of the screen is embedded
  22.  * within this module, and there are entry points for giving
  23.  * updates to the screen at each step of the game.
  24.  *
  25.  * This module does not make any calls to the operating system
  26.  * directly.  Instead, all of its output functions are channeled
  27.  * through the TERMINAL module.
  28.  *
  29.  */
  30.  
  31. extern Initialize_Display ();
  32. /* Should be called once when the program starts up. */
  33.  
  34. extern Reset_Display ();
  35. /* Redraws the main features of the screen.  Used in the process
  36.    of doing a 'refresh'. */
  37.  
  38. extern Refresh_Display ();
  39. /* Updates the entire screen. */
  40.  
  41.  
  42. /* The scoring display gives information about the following attributes
  43.  * for each side:
  44.  *
  45.  * -- The number of tricks taken in the current hand.
  46.  * -- The current 'above the line' score.
  47.  * -- The current 'below the line' score.
  48.  * -- The vulnerabilities of each side.
  49.  *
  50.  * Nov. 3, 1990: The scoring display routines have now been revised to
  51.  *  present the display in the Chicago-scoring format as well as in the
  52.  *  rubber-scoring format.  The decision is made by inspecting the
  53.  *  variable rubber_scoring defined in globals.h.
  54.  */
  55.  
  56. extern Display_Tricks_Taken      ();
  57. extern Display_Above_Line_Points ();
  58. extern Display_Below_Line_Points ();
  59. extern Display_Vulnerabilities   ();
  60.  
  61.  
  62. /* The bidding display is given as four columns, similar to that found
  63.  * in many bridge books.  At the top of each column is printed the
  64.  * corresponding input parameter string to identify the bidder.
  65.  *
  66.  * Before bidding can begin, the bidding display must be initialized.
  67.  * Then, for each bid, that bid must be shown on the display.  And after
  68.  * the bids have been made, the contract must be displayed.  Thus,
  69.  * we have the following procedures:
  70.  *
  71.  * Display_Bidding_Board:  Called to initialize the bidding display.
  72.  *   This procedure should be called once at the beginning of the bidding.
  73.  *
  74.  * Display_Hand_for_Bidding: Called to show what the local player is
  75.  *   holding.  This procedure should be called once after the call to
  76.  *   Display_Bidding_Board.
  77.  *
  78.  * Display_Bidder:  Called to show whose turn it is to bid now.
  79.  *
  80.  * Display_Bid:  Called to show a player's bid.  The current round of
  81.  *   bidding and the player who has bid are passed as input parameters,
  82.  *   but the actual bid is read from the global variable 'bids'.
  83.  *
  84.  * Clear_Bidding_Board:  Called to erase the bidding display.  This should
  85.  *   be called once after the auction has concluded.
  86.  *
  87.  * Display_Contract:  To be called after the auction is over.  This
  88.  *   procedure displays the contract which has been determined by the
  89.  *   bidding.
  90.  */
  91.  
  92. extern Display_Bidding_Board ();
  93. extern Display_Hand_for_Bidding ();
  94. extern Display_Bidder ();
  95. extern Display_Bid ();
  96. extern Clear_Bidding_Board ();
  97. extern Display_Contract ();
  98.  
  99.  
  100. /* The playing board is a separate display which runs during the play
  101.  * of the hands.  In the center of the screen is displayed a large square
  102.  * which is supposed to represent the tabletop, and the cards which are
  103.  * played are shown on this table top.
  104.  *
  105.  * The playing proceeds also in a series of stages.  First, there is an
  106.  * initial call to draw the playing board.  Then, in each trick there are
  107.  * calls to show the cards which have been played.  At the end of each
  108.  * trick, there is a final call to clear the cards from the playing board.
  109.  * And after all of the tricks have been played, the playing board is
  110.  * cleared.  Thus, we have the following procedures:
  111.  *
  112.  * Display_Playing_Board:  called initially to draw the playing board.
  113.  *
  114.  * Display_Hand:  called at the beginning of each trick to display the
  115.  *   contents of the (local) player's hand.  The player whose hand is to
  116.  *   be displayed is passed as input, mainly as an aid to debugging.
  117.  *
  118.  * Display_Player: called before each card is played to display whose
  119.  *   it is to play next.
  120.  *
  121.  * Display_Play:  called after each card has been played to display the
  122.  *   card on the tabletop.  The player and the card are passed as input.
  123.  *
  124.  * Clear_Hand:  called intermittently to erase a player's hand from
  125.  *   the display.
  126.  *
  127.  * Clear_Plays:  called at the end of each trick to clear the cards from
  128.  *   the tabletop.
  129.  *
  130.  * Clear_Playing_Board:  called after all of the tricks have been played
  131.  *   to clear the 'playing board' from the screen.
  132.  *
  133.  */
  134.  
  135. extern Display_Playing_Board ();
  136. extern Display_Hand ();
  137. extern Display_Player ();
  138. extern Display_Play ();
  139. extern Clear_Plays  ();
  140. extern Clear_Hand ();
  141. extern Clear_Playing_Board ();
  142.  
  143.  
  144. /* One line of the display is reserved for displaying special messages about
  145.  * the status of the game.  The following two procedures are given for
  146.  * manipulating this display.
  147.  */
  148.  
  149. extern Display_Status ();
  150. extern Clear_Status_Display ();
  151.  
  152.  
  153. /* The bottom part of the screen is used for the exchange of comments
  154.  * between the players.  The following procedures are used for managing
  155.  * this part of the display.
  156.  */
  157.  
  158. extern Refresh_Player_Comments ();
  159. extern Initialize_Player_Comments ();
  160. extern Display_Player_Comment ();
  161.  
  162. extern Suspend_Comment_Display ();
  163. extern Continue_Comment_Display ();
  164.  
  165.