File: CHANGES

package info (click to toggle)
3dchess 0.8.1-11
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 284 kB
  • ctags: 305
  • sloc: ansic: 3,033; makefile: 80
file content (211 lines) | stat: -rw-r--r-- 8,679 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
---- Version 0.8 -> 0.8.1
o Added reasonable intelligence based on
  - Finishing the game
  - Check
  - Capture
  - Castling and Promotion
  - Proximity to end of board.
  These are very basic and frequently wrong guesses, but they are
  better than previous versions.  All possible moves are checked.
  There is almost no lookahead but there is a little asynchronicity
  (stuff can happen while the computer is working).  It's very easy
  to win, but it does teach moves.  Watch out for the computer's
  cannons; it knows how to use them...

o Fixed problem concerning PieceThreatened and promoted pieces,
  simplified the routine hugely, and renamed it to SquareThreatened.

o Optimised TraverseDir by stopping checking in a direction if a piece
  is hit or the edge of the board is encountered.  Macroized many
  of the complexities of directions.

o Discovered that Solaris has function prototypes, so took that into
  consideration in mahine.h

o Moved back to X11R5 compatibility.  Using XlibSpecificationRelease
  to determine which version is being compiled.

o Fixed problem which allowed promotion if the pawn's king was in check.

o Fixed bug re: bishop, which allowed it to move diagonally in *any* two
  directions, even though it can actually move diagonally in only two
  way: strictly on the one board (a la chess) or like this and between
  boards.  That is, a move from Yc1 to Zc2 is illegal.  Additionally
  fixed bug which prevented it from changing levels.

o Fixed bug with knights which meant that the computer thought that it
  move them from row 7 to row 0 via an ABS() oversight.

o Arranged board windows so that they tend not to overlap at startup.

o Minor editing of the docs.

---- Version 0.7.6 -> 0.8
o No changes.  I just decided that enough was done in 0.7.6 (which was
  never released) to justify the version bump.

---- Version 0.7.5 -> 0.7.6

o Some minor new functionality; slightly more descriptive messages;
  beeps are less frequent.

o Reduced the size of xif.c by putting some code into callbaks.c and
  some into xnet.c.  Moved the X stuff in 3Dc.h into x3Dc.h

o Networking code is eliminated.  It was causing portability problems.
  "What!" I hear you exclaim---"No more network 3Dc?!"  Don't worry,
  I've merely realised what a plonker I really am and moved over to
  X; after all, it is a networking GUI so why not use it?  See the new
  "-ad" command-line option.

o All the AI code is now in ai.c; it has changed quite a bit.
  Several bugs in the AI code found and fixed.  The
  associated global variables (DontMove) are now module
  variables, local to their respective files.  Only Board and bwToMove
  are global now.

o Move some of the code from pieceThreatened and similar functions into
  the new function TraverseDir, added a DIR macro and added direction defines.
  This was primarily to reduce function sizes and reduce nesting.

o Added a make install (how did I miss putting this in ages ago?)
  Got rid of that dodgy make config code in favour of a user-modifyable
  Makefile.  Made an undo option configurable from the Makefile.

o Fixed a few bugs in engine.c and piece.c which allowed a few dodgy
  things when moving a king out of check and another bug in engine.c,
  which caused a seg fault if you moved into one of eight spaces on the
  top board.  At least one precompiler bug was found and fixed.

o Changed function names to all start with capital letters.  Variables
  still start with small letter.

---- Version 0.7.4 -> 0.7.5

Only few (tiny) changes this time

 o namelen in net.c is now set to sizeof(SOCKADDR) before calling accept.
   Thanks Robert.

 o string.h is now included by xif.c and main.c, and references to strdup
   and sprintf put into machine.h

---- Version 0.7.3 -> 0.7.4

o Investigated the use of pixmap cursors again, and came up with the following
  on the way:

  - Put in pixmap cursors (you can go back to using the cursor font by defining
    FONTCURSOR in xif.c).

  - Memory leak; only need to call XCreateFontCursor once (I don't call
    XFreeCursor, as it should be autofreed on quitting.  Bad practice, I
    know, but it means that I don't have to make cursor a global.  This
    bug doesn't apply to pixmap cursors, as I create the cursor each time,
    rather than maintain 22 cursors).

  - Fixed bug whereby the cursor would only be changed for the current board
    and any above it; boards below wouldn't have it changed (this one applies
    to both the new pixmap cursors and the older font cursors).

  - Fixed bug where the cursor would change even if nothing was picked up.
    This wasn't serious for FONTCURSOR, but segfaulted with pixmap cursors.

o Halved the number of masks required (thus saving the space required for
  11 32x32x1 pixmaps and the relevant pointers and IDs - talk about
  conscientious..)

o Fixed redrawing of muster window during restart (i.e. now it gets redrawn).

o Fixed a bug with undo - the undone piece thought that it was in both its
  original place and the place from which it was undone.

o Made the "Resign Game?" dialog pop up in a more sensible position.  It
  doesn't check to see if some of the dialog has gone missing off the edge of
  the screen, but I don't care - do you?

o Improved the net play a bit.  Now restart and resign work over the net.
  There's no verification by the other player, but the whole net stuff is
  hanging together by a thread anyway.  I'll totally rewrite it one year.

---- Version 0.7.2 -> 0.7.3

o Fixed the problem whereby the game would crash when trying to put up the
  promotion callback.  So now you can have 25 Queens..

o Taking En Passant would remove the piece from the board, but not from the
  game (this could be seen by examining the muster window while taking en
  passant - nothing would change).  This is now fixed.

o Fixed bug whereby a pawn taking a piece on the final rank would destroy
  the piece utterly, even unto undos.

o Removed some dependance on the shape of the boards; this will simplify
  extending the game to arbitrarily sized boards, with arbitrarily many
  players.

o Discovered that my fix to the makefile only works for GNU make; the real
  fix is to create an empty file .config, and to change the -f in the test
  to a -s; now it works.

---- Version 0.7.1 -> 0.7.2
Small changes, again.  The muster window got most of the attention.

o The following changes were made in the muster window:

  - The black royalty had the count of the black nobility, and vice versa.
  - The black royalty and nobility were too far to the left.
  - The Pawns' count vertical position was dependant on the width of the muster
    window - a silly mistake.

o Fixed memory leak in Err3Dc.

o Fixed bug with pawn allowing it to move 2 forward, 1 sideways (like a knight)
  on its first move.

o Got the make working properly, so that you don't have to make config first;
  now it'll do it for you automatically.

o Really got that truncated status line bug fixed.  It now auto-centres (sic)
  the status line, too.

---- Version 0.7 -> 0.7.1
Not too much, this time.

o Muster window added, showing how many pieces of each type and colour are
  still in play.

o Improved exposure-handling; now only exposed squares get drawn.  It's too
  complicated to draw just exposed pixels.  Also, it's not worth doing the
  same in the muster window; there's not much in there.

o Bug fixes, including truncated status line, and bad redrawing of enlarged
  boards (that one had me stumped for a while..)

---- Version 0.6 -> 0.7
Big changes this time, deserving the creation of this file.

o Changed from Xm to Xaw (with DrawingArea widget; see ACKNOWLEDGEMENTS),
  which involved a lot of necessary (and usually highly cool) changes:

  - Changed from one DrawnButton per square to one DrawingArea per level.
  - Can trap ButtonPress and ButtonRelease much easier, so implemented
    drag-and-drop moving instead of src-dest-ok clicking.
  - Removed the Source and Dest fields in the main window.
  - Reduced size of internal representations of the muster and graphics.

o Now change cursor while move is in progress (I'm working on changing
  the cursor to a pixmap of the piece being moved, but getting Xpm to
  generate monochrome pixmaps is harder than I thought..)

o Removed last message from message-box if it is no longer applicable.

o Got rid of that irritating beep all the time - now it only happens
  on the events which are both "interesting" and need your attention
  (such as your opponent moving).

o Added some measure of machine configuration and autodetection.

o Fixed an undo bug, a bug with kings and checking them, and one or two
  others.