[net.sources.games] bug in empire

amg@masscomp.UUCP (Andy Groh) (12/19/86)

A couple of things I have run into.

1)
The paramter AREA to the function SET is declared as a Character but
pass in from gen as an integer.  This caused a problem with
my fortran compiler (AREA was always zero).  A fix for this
is to declare it as an INTEGER in SET and then convert it to a character
when you need to use it with the CHAR function in fortran.

2)
This program was written for BSD4.2 UNIX not ATT Unix.  For ATT Unix, one
change that you will have to make is the call to select in delay.


Andrew Groh

dk1z#@andrew.cmu.edu (David Kovar) (12/21/86)

ReSent-From: postman#@andrew.cmu.edu

ReSent-To:nntp-xmit#@andrew.cmu.edu

Return-path: <dk1z#@andrew.cmu.edu>

To: outnews#ext.nn.net.sources.games@andrew.cmu.edu (Outbound News)

In-Reply-To: <1317@masscomp.UUCP>



  When compiled and run on my Sun3, empire gets into 'makeland' and then
stays there, chewing up the entire CPU. I'm not terribly psyched to sit down
and figure out Fortran at the moment, so if anyone else has run into this and
knows of a fix, I'd appreciate hearing about it.

  'lo Andrew...

-David Kovar

mct@briar.UUCP (Mark C. Tucker) (12/30/86)

One problem with Empire on a Sun3 starts with the fact that 

    In the function SET(),  FORTRAN expects a character, but GEN passes
	an integer.  This works on a VAX, because the lowest byte is
	the least significant.  But the sun sees an integer 33 as a
	null-byte, and confuses set.

 I fixed this problem by changing the  AREA parameter to SET to
    iiAREA, (allowing the CHARACTER AREA declaration to serve to
	declare a local variable), then tossing in a simple
	    area = char(iiarea)
	to initialize the local CHAR to the given INTEGER.

But Empire still crashes after you make a move (segmentation violation).
I suspect more CHARACTER hackery.

-- Mark Tucker