head	1.44;
access;
symbols
	tonic_4:1.44
	tonic_3:1.44
	tonic_2:1.44
	demo:1.43.0.2
	design_report:1.42
	oral_presentation_freeze:1.27.0.2
	DAVEG_CDP:1.20.0.2
	template_integ:1.17.0.2;
locks; strict;
comment	@# @;


1.44
date	95.12.14.09.07.16;	author jered;	state Exp;
branches;
next	1.43;

1.43
date	95.12.12.23.29.30;	author hartmans;	state Exp;
branches;
next	1.42;

1.42
date	95.12.11.09.36.07;	author hartmans;	state Exp;
branches;
next	1.41;

1.41
date	95.12.11.09.24.03;	author hartmans;	state Exp;
branches;
next	1.40;

1.40
date	95.12.11.07.10.39;	author hartmans;	state Exp;
branches;
next	1.39;

1.39
date	95.12.10.05.16.12;	author hartmans;	state Exp;
branches;
next	1.38;

1.38
date	95.12.09.19.53.42;	author hartmans;	state Exp;
branches;
next	1.37;

1.37
date	95.12.08.04.21.57;	author hartmans;	state Exp;
branches;
next	1.36;

1.36
date	95.12.08.03.15.00;	author jered;	state Exp;
branches;
next	1.35;

1.35
date	95.12.04.06.04.26;	author jered;	state Exp;
branches;
next	1.34;

1.34
date	95.12.03.19.58.04;	author hartmans;	state Exp;
branches;
next	1.33;

1.33
date	95.12.03.05.00.41;	author hartmans;	state Exp;
branches;
next	1.32;

1.32
date	95.12.03.01.18.53;	author hartmans;	state Exp;
branches;
next	1.31;

1.31
date	95.12.02.12.03.23;	author daveg;	state Exp;
branches;
next	1.30;

1.30
date	95.12.02.09.46.09;	author hartmans;	state Exp;
branches;
next	1.29;

1.29
date	95.12.01.23.02.59;	author hartmans;	state Exp;
branches;
next	1.28;

1.28
date	95.12.01.04.19.47;	author hartmans;	state Exp;
branches;
next	1.27;

1.27
date	95.11.30.07.16.14;	author jered;	state Exp;
branches;
next	1.26;

1.26
date	95.11.30.06.32.10;	author hartmans;	state Exp;
branches;
next	1.25;

1.25
date	95.11.30.05.03.53;	author jered;	state Exp;
branches;
next	1.24;

1.24
date	95.11.30.04.30.30;	author hartmans;	state Exp;
branches;
next	1.23;

1.23
date	95.11.30.00.20.25;	author daveg;	state Exp;
branches;
next	1.22;

1.22
date	95.11.28.04.47.36;	author hartmans;	state Exp;
branches;
next	1.21;

1.21
date	95.11.28.03.31.22;	author hartmans;	state Exp;
branches;
next	1.20;

1.20
date	95.11.26.04.00.08;	author jered;	state Exp;
branches
	1.20.2.1;
next	1.19;

1.19
date	95.11.25.10.14.08;	author hartmans;	state Exp;
branches;
next	1.18;

1.18
date	95.11.24.17.07.06;	author hartmans;	state Exp;
branches;
next	1.17;

1.17
date	95.11.23.05.07.35;	author hartmans;	state Exp;
branches
	1.17.2.1;
next	1.16;

1.16
date	95.11.23.04.07.48;	author hartmans;	state Exp;
branches;
next	1.15;

1.15
date	95.11.21.07.38.43;	author jered;	state Exp;
branches;
next	1.14;

1.14
date	95.11.21.07.30.12;	author jered;	state Exp;
branches;
next	1.13;

1.13
date	95.11.21.06.09.30;	author jered;	state Exp;
branches;
next	1.12;

1.12
date	95.11.21.05.22.48;	author hartmans;	state Exp;
branches;
next	1.11;

1.11
date	95.11.21.03.46.44;	author jered;	state Exp;
branches;
next	1.10;

1.10
date	95.11.21.00.00.46;	author jered;	state Exp;
branches;
next	1.9;

1.9
date	95.11.20.20.57.05;	author daveg;	state Exp;
branches;
next	1.8;

1.8
date	95.11.20.20.04.23;	author jered;	state Exp;
branches;
next	1.7;

1.7
date	95.11.20.08.00.40;	author hartmans;	state Exp;
branches;
next	1.6;

1.6
date	95.11.20.06.21.54;	author hartmans;	state Exp;
branches;
next	1.5;

1.5
date	95.11.20.00.52.42;	author hartmans;	state Exp;
branches;
next	1.4;

1.4
date	95.11.19.21.56.24;	author hartmans;	state Exp;
branches;
next	1.3;

1.3
date	95.11.19.17.22.00;	author hartmans;	state Exp;
branches;
next	1.2;

1.2
date	95.11.19.09.16.10;	author daveg;	state Exp;
branches;
next	1.1;

1.1
date	95.11.19.04.13.41;	author hartmans;	state Exp;
branches;
next	;

1.17.2.1
date	95.11.24.05.53.58;	author hartmans;	state Exp;
branches;
next	;

1.20.2.1
date	95.11.28.03.41.57;	author hartmans;	state Exp;
branches;
next	;


desc
@@


1.44
log
@top_node, chess_capture_move, etc fixes, machine_player speedups.
@
text
@Thu Dec 14 03:03:51 1995  Jered J Floyd  (jered@@vorlon)

	* chess_capture_move.h: const'ed the board into the 
	chesS_capture_move constructor.

Tue Dec 12 17:12:54 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* machine_player.h: In all player::display methods take a point of
        view

Mon Dec 11 03:41:05 1995  Sam Hartman  <hartmans@@bart-savagewood>

	* player.h: Have get_time return time correctly even if clock
        running.

	* chess_capture_move.h: Have copy return correct type.

	* antichess_board.h: Include chess_capture_move.h to make top_node happy; don't ask.

Sun Dec 10 05:51:50 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* chess_display_board.h: save should take a reference to ostream,
        not just an ostream.

Sat Dec  9 14:42:14 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* chess_display_board.h (stomove): Change prototype

	* player.h: Define units for set_time

Fri Dec  8 04:25:08 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* top_node.h: Define a struct open for info about open games;
        store game pointer and player number of detached player; delete
        games if they have multiple detached players.

Thu Dec  7 18:10:44 1995  Sam Hartman  <hartmans@@portnoy>

	* game.h: Clarify spec for uri_with_move()

Thu Dec  7 22:05:28 1995  Jered J Floyd  <jered@@bill-the-cat>

	* chess_display_board.h: Fixed row/column swap in parse_square.

Mon Dec  4 00:52:32 1995  Jered J Floyd  (jered@@vorlon)

	* game.h: Added prelim. implementation of game::display.

Sun Dec  3 13:45:36 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* chess_display_board.h (current_player): Implement a method to return the player whose turn it is.

	* chess_capture_move.h: Fix operator =.

Sat Dec  2 17:01:49 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* human_player.h: Fix meaning of attachment

	* player.h: Clarify as below, and fix same friendship declaration.

	* board.h: Clarify spec that subclasses can overide associate.
        Also, fix signature on game::game

	* top_node.h: Allocate space and take on constructor URI to images.


	* game.h: Specify image_base method that returns the URI component
        used to construct images.  Also, take a value for this in the
        constructor.

	* chess_display_board.h: Specify parse_square

Sat Dec  2 07:01:14 1995  David D Golombek  <daveg@@ringworld.MIT.EDU>

	* chess_display_board.h Added save and squaretoc methods

Sat Dec  2 04:12:34 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* chess_display_board.h: Change display to take a player number
	Indicate chess display board implements get.

Thu Nov 30 23:19:32 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* machine_player.h: Actually declare associate correctly

Thu Nov 30 00:34:38 1995  Jered J Floyd  (jered@@vorlon)

	* machine_player.h: Changed opponent_moved to take int.

Thu Nov 30 01:05:00 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* machine_player.h: Include player.h
	Also, fix ostream to be a reference

Wed Nov 29 21:33:41 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* player.h: Use timeval not time_t, remove penalty crud and set_name.

Wed Nov 29 20:50:10 1995  Jered J Floyd  (jered@@vorlon)

	* machine_player.h: Added in working tree.
	Pruned some uneeded fns.

Wed Nov 29 19:17:36 1995 David Golombek <daveg@@bill-the-cat.mit.edu>

	* antichess_board.h: Updated everything to match the changes
made in board.h

	* chess_display_board.h: Updated to match changes in
board.h, cleaned up unnecessary redeclarations.


Wed Nov 29 17:13:32 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* game.h: Rename p1_is_first because that's not what it did


Mon Nov 27 18:52:59 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

Mon Nov 27 18:52:59 1995  Sam Hartman  <hartmans@@tertius.mit.edu>



	* board.h :  Avoid dependence on player by using player indexes
	take player argument for display.
(get_game):  New method to get game this associated with
Specify clone method
Change valid_moves to return a move_generator

	* game.h: Use player numbers rather than index.  Also, add
        uri_with_move method to get the URI including the move number
        Also, display now takes a player so the display can be from the
        point of view of a particular player.

Sun Nov 26 02:28:16 1995  root  <root@@minbari>


	* game.h: Fixed. (0 <= foo < 10) does not do what you think it does.

Sat Nov 25 05:06:18 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* typeinfo.h (force_ptr):  Macro to make using force easier; use like
	move * m = something
chess_move *cm = force_ptr(*m, chess_move);


Fri Nov 24 00:05:07 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* move.h: Include ps5/web_node.h for extensions so display works

Wed Nov 22 22:55:03 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* board.h: Apply no longer modifies player;
attempting to create looser dependency on player.
Require explicit deallocation of valid moves generators.
Add const force method; this doesn't normally need to be overwritten.

Require that unapply work under certain conditions per discussion w/Jered.


	* Makefile.in (all): Restructure to actually grind stuff

Tue Nov 21 02:25:44 1995  Jered J Floyd  <jered@@geeko.mit.edu>

	* board.h (is_associated): Fixed fill and spacing.

	* move.h: Removed consts on methods.

Tue Nov 21 00:01:56 1995  Jered J Floyd  <jered@@spiffy.mit.edu>

	* chess_display_board.h: Fixed display to take an ostream
	reference, not a pointer.

Mon Nov 20 18:51:27 1995  Jered J Floyd  <jered@@spiffy.mit.edu>

	* move.h: Updated display() to the new spec.

	* board.h: Spelling, spacing, and conflict garbage cleaned up.
	Make the valid_move generator return move *'s, not move's.
	Renamed unapply_move to unapply for consistency.

	* player.h: Added association of player with a game.

Mon Nov 20 17:59:32 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* board.h: Added winner() method.

	* game.h: Call it apply not apply_move

	* player.h: Player should have a public section; fixed.

	* move.h: operater == should take two parameters.

	* game.h: Construct

Mon Nov 20 15:53:58 1995 David Golombe <daveg@@yaz-pistachio.mit.edu>

	* chess_display_board.h: Added checks clauses to several
	functions, added remove_piece, finished stuff I had planned
	to do the other night, but ran out of time.

Mon Nov 20 15:01:35 1995  Jered J Floyd  <jered@@zygorthian-space-raiders.MIT.EDU>

	* chess_display_board.h: renamed SQUARE to square. Fixed some
	  bogosity by removing operator[]. You can't do that.

Mon Nov 20 00:49:34 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* player.h: Add methods to deal with forfeits and game->player communication.

	* game.h: Add meta-support for multiple players.  We don't
        actually support this, but all external interfaces besides the
        constructor appear to support this; this will make it easier to do
        if we do multi-player games.  Also, add support for declaring a
        winner.
n Nov 19 11:49:50 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* move.h: Specify move_generator.


	* game.h: Add private section
	Also make it clear that move passed to apply is not retained.

	* board.h (web_node): add force mechanism
	(web_node): Less bogus force implementation.
	(web_node): Make game::game a friend so it can call board::associate; make board::associate protected.
	

	* player.h: Include ps5/web_node.h, don't take position in
        constructor call, add parameter to set_time.


	* board.h: Again, ps5/web_node.h.

	* game.h: Include ps5/web_node.h, not web_node.h.

Sat Nov 18 20:19:18 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* game.h: Mention game is a heap abstraction.  Also, add b
destructor spec.  Added player param to apply_move so it could be given to
board.

Sun Nov 19 03:36:22 1995  David Golombek <daveg@@pakse.mit.edu>

	*player.h: Changed constructor and several methods in response
to discussion on mailing list.  In particular, made it a web_node and
removed the make_move method.


@


1.43
log
@Change prototypes for player::display
@
text
@d1 5
@


1.42
log
@Handle time get_player
@
text
@d1 5
@


1.41
log
@bug fixes
@
text
@d3 3
@


1.40
log
@Update save method prototype.
Add method to game.
@
text
@d1 6
@


1.39
log
@Fix prototype sort of.
@
text
@d1 5
@


1.38
log
@Clear up some specs.  Add new struct for internal top_node use.
@
text
@d3 2
@


1.37
log
@Fix spec for uri_with_move
@
text
@d1 10
@


1.36
log
@Fixed row/col swaps a display off-by-ones
@
text
@d1 4
@


1.35
log
@Prelim. impl. of game::display.
@
text
@d1 4
@


1.34
log
@Rearrange constructors for chess_capture_move,
provide method to find out who has active turn
@
text
@d1 4
@


1.33
log
@Tidy up human_player,
implement machine_player::get

clarify associate specs.
@
text
@d1 6
@


1.32
log
@Include changes to support:
* New syntax for game::game
* New constructor for chess_capture_move that takes chess_display_board instead of piece_taken
* parse_square
@
text
@d3 10
@


1.31
log
@added save and squaretoc methods
@
text
@d1 8
@


1.30
log
@Indicate  that chess_display_board implements get
@
text
@d1 4
@


1.29
log
@Integrate Antichess boarrd from DAVEG_CPD
@
text
@d1 1
d3 3
@


1.28
log
@Fix typoi
@
text
@d1 1
d40 4
d57 1
@


1.27
log
@Did enough that tic_board should work now.
@
text
@d1 4
@


1.26
log
@Fix bugs so it builds
@
text
@d1 4
@


1.25
log
@Added machine_player.{h,C}. Other minor things.
@
text
@d1 5
@


1.24
log
@player:  Deal with clock stuff
game: fix argument bogosity
Also remove penalty stuff, add player::get_game
@
text
@d5 5
a14 2


a22 3
Tue Nov 28 00:07:10 1995  Sam Hartman  <hartmans@@tertius.mit.edu>


d37 1
a37 2
Sun Nov 26 02:28:16 1995  root  <root@@minbari
>
@


1.23
log
@antichess and chess_display changes
@
text
@d1 23
a150 8
Wed Nov 29 19:17:36 1995 David Golombek <daveg@@bill-the-cat.mit.edu>

	* antichess_board.h: Updated everything to match the changes
made in board.h

	* chess_display_board.h: Updated to match changes in
board.h, cleaned up unnecessary redeclarations.

@


1.22
log
@Integrate move_generator
@
text
@d128 1
d130 5
@


1.21
log
@Change players to be indexes, add a few new methods.
@
text
@d7 1
@


1.20
log
@Fixed a bogosity.
@
text
@d1 1
a1 1
Sun Nov 26 02:28:16 1995  root  <root@@minbari>
d3 13
@


1.20.2.1
log
@Merge in most of my changes so diff is cleaner
@
text
@d1 1
a1 1
Mon Nov 27 18:52:59 1995  Sam Hartman  <hartmans@@tertius.mit.edu>
a2 13
	* board.h :  Avoid dependence on player by using player indexes
	take player argument for display.
(get_game):  New method to get game this associated with
Specify clone method

	* game.h: Use player numbers rather than index.  Also, add
        uri_with_move method to get the URI including the move number
        Also, display now takes a player so the display can be from the
        point of view of a particular player.

Sun Nov 26 02:28:16 1995  root  <root@@minbari
>

@


1.19
log
@Provide easier mechanism for using force per
discussion with daveg.
@
text
@d1 4
@


1.18
log
@Add prototype for const force method to board,
fix bug in move.h.

(These are the changes I accidentally checked on on template_inetg)
@
text
@d1 7
@


1.17
log
@Lots of changes as per our discussions.
@
text
@d1 4
@


1.17.2.1
log
@Add support for no-implicit-templates
and build ../lib/libbase.a
@
text
@a0 4
Fri Nov 24 00:05:07 1995  Sam Hartman  <hartmans@@tertius.mit.edu>

	* move.h: Include ps5/web_node.h for extensions so display works

@


1.16
log
@Support automagic grinding of include files
@
text
@d3 8
@


1.15
log
@Fixed some fill and spacing stuff, other minor things in board, test_board.
@
text
@d1 4
@


1.14
log
@test_board stuff now builds. (Deconst'ed move.)
@
text
@d3 2
@


1.13
log
@Added test_board.C, and Changelog, Updated TODO.
Modified game.C.
@
text
@d1 4
@


1.12
log
@Lots of fixes to make stuff compile
@
text
@d1 15
a26 10


Mon Nov 20 18:51:27 1995  Jered J Floyd  <jered@@spiffy.mit.edu>

	* board.h: Spelling, spacing, and conflict garbage cleaned up.
	Make the valid_move generator return move *'s, not move's.
	Renamed unapply_move to unapply for consistency.

	* player.h: Added association of player with a game.

@


1.11
log
@Changed board unapply_move to unapply,
added test directory for test game.
@
text
@d1 13
d22 1
@


1.10
log
@Revised player to associate with a board, other piddly changes.
@
text
@d4 2
@


1.9
log
@chess_display_board.h mods
@
text
@d1 6
@


1.8
log
@Renamed SQUARE to square (it's not a macro...), and fixed some bogosities
with things that are not possible to do.
@
text
@d1 6
@


1.7
log
@Added methods to deal with forfeiting to player,
virtualized methods the machine might wish to overide.
@
text
@d1 5
@


1.6
log
@Change game to potentially support more than two players.
@
text
@d3 2
@


1.5
log
@Support and changes for game
@
text
@d1 8
a8 1
Sun Nov 19 11:49:50 1995  Sam Hartman  <hartmans@@tertius.mit.edu>
@


1.4
log
@Add move.h and move board::associate as protected
@
text
@d3 6
@


1.3
log
@player.h: random cleanup, optionalize postion, take time arugment to set_time
board.h: add force method, random cleanup
@
text
@d4 3
@


1.2
log
@Entered revisions to player.h
@
text
@d1 12
d25 1
@


1.1
log
@Add preliminary board abstraction.
Update game to work with board.
@
text
@d6 9
@
