home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programming Unleashed / Delphi_Programming_Unleashed_SAMS_Publishing_1995.iso / misc / objects / ttt / magic.pas < prev    next >
Pascal/Delphi Source File  |  1995-03-20  |  2KB  |  59 lines

  1. {$A+,B-,D-,F+,G+,I+,K+,L-,N-,P-,Q-,R-,S+,T+,V-,W+,X+,Y-}
  2. unit MAGIC;
  3.  
  4. { Program copyright (c) 1995 by Charles Calvert }
  5. { Project Name: TTT }
  6.  
  7.  
  8. { File: MAGIC.PAS
  9.   Author: Bob Swart (bobs@dragons.nest.nl)
  10.  
  11.   From the article entitled 'Tic-tac-toe, Borland Pascal, C++ and
  12.                                           Visual Basic make it so'
  13.   written by Bob Swart, Jeroen Pluimers and Hans van der Veeke to
  14.   appear in a future issue of Dr.Dobbs (Algorithm Alley column).
  15.   ----------------------------------------------------------------
  16.   This file contains the interface code to the MAGIC.DLL (with the
  17.   magic square tic-tac-toe algorithm).
  18. }
  19.  
  20. interface
  21.  
  22. const
  23.   NoneID = 0;
  24.   UserID = 1;
  25.   CompID = 2;
  26.  
  27. Type
  28.   TPlayer = NoneID..CompID;
  29.  
  30. Const
  31.   NilPlace   = 0; { move impossible }
  32.   FirstPlace = 1;
  33.   LastPlace  = 9;
  34.  
  35. Type
  36.   TPlace = FirstPlace..LastPlace;
  37.   TMove  = NilPlace..LastPlace;
  38.  
  39. Type
  40.   HGame = Word; { Handle to a game }
  41.  
  42.   function NewGame: HGame;
  43.   procedure EndGame(Game: HGame);
  44.   procedure MakeMove(Game: HGame; ID: TPlayer; Place: TPlace);
  45.   function NextMove(Game: HGame; ID: TPlayer): TMove;
  46.   function IsWinner(Game: HGame): TPlayer;
  47.   function GetValue(Game: HGame; Place: TPlace): TPlayer;
  48.  
  49. implementation
  50.  
  51.   function NewGame;   external 'MAGIC' index 1;
  52.   procedure EndGame;  external 'MAGIC' index 2;
  53.   procedure MakeMove; external 'MAGIC' index 3;
  54.   function NextMove;  external 'MAGIC' index 4;
  55.   function IsWinner;  external 'MAGIC' index 5;
  56.   function GetValue;  external 'MAGIC' index 6;
  57.  
  58. end.
  59.