games-request@tekred.TEK.COM (06/09/87)
Submitted by: cwruecmp!rsilvers@hawk.CS.Ulowell.Edu (Robert Silvers) Comp.sources.games: Volume 1, Issue 44 Archive-name: othello1/Part02 [As I said in Part01, I have no way to try this, so you're on your own. -br] #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 2 (of 2)." # Contents: InOutExtensions.def move.def othello.def regis.def # types.mod # Wrapped by billr@tekred on Mon Jun 8 13:58:02 1987 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f InOutExtensions.def -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"InOutExtensions.def\" else echo shar: Extracting \"InOutExtensions.def\" \(2406 characters\) sed "s/^X//" >InOutExtensions.def <<'END_OF_InOutExtensions.def' XDEFINITION MODULE InOutExtensions ; X X(* written by *) X(* Jesse M. Heines *) X(* University of Lowell *) X X(* Version 1.2 1/28/87 *) X X X XEXPORT QUALIFIED X GetEscapeSequence, GetOneChar, ReadLn, ReadLine, WriteFormattedReal ; X X X XPROCEDURE GetEscapeSequence X (VAR c : ARRAY OF CHAR ) ; (* characters read from the terminal *) X X(* This procedure is designed to read as escape sequnce from the terminal *) X(* without waiting for the user to press RETURN. It begins by reading a *) X(* single from the terminal. If the character read is ESCape, a second *) X(* character is read. If the second characters is '[', a third character *) X(* is read. Any characters not read are set to 0C. *) X X XPROCEDURE GetOneChar X (VAR c : CHAR ) ; (* character read from terminal *) X X(* This procedure gets a single character from the terminal without *) X(* waiting for the user to press RETURN. *) X X XPROCEDURE ReadLn ; X X(* This procedure reads data from the current input stream until an end *) X(* of line character (EOL), a null character (0C), or a CTRL/D character *) X(* (4C) is read. The data read is not saved. The purpose of this *) X(* procedure is to skip the rest of the current line to prepare for *) X(* reading the next line of input. *) X X XPROCEDURE ReadLine X (VAR line : ARRAY OF CHAR) ; (* the line read *) X X(* This procedure reads a line of data from the current input stream. *) X(* Reading is terminated when the end of line character (EOL) is reached, *) X(* the array into which characters are being read becomes full, a null *) X(* character is read, or a CTRL/D (4C) character (4C) is read. *) X X XPROCEDURE WriteFormattedReal X (r : REAL ; (* the real number to write *) X width : CARDINAL ; (* size of output field *) X ndecimalplaces : CARDINAL ) ; (* number of decimal places to write *) X X(* This procedure writes a real number to the output stream and places that *) X(* number in a field "width" spaces wide. The field will be filled with *) X(* blanks to pad it to the appropriate size. (The number is right justi- *) X(* fied in the field.) WriteFormattedReal will output numbers in standard *) X(* format with the specified number of decimal places. *) X X XEND InOutExtensions. END_OF_InOutExtensions.def if test 2406 -ne `wc -c <InOutExtensions.def`; then echo shar: \"InOutExtensions.def\" unpacked with wrong size! fi # end of overwriting check fi if test -f move.def -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"move.def\" else echo shar: Extracting \"move.def\" \(1734 characters\) sed "s/^X//" >move.def <<'END_OF_move.def' XDEFINITION MODULE move; X X(*************************************************************************) X(* *) X(* OTHELLO. (c) 1987 Robert Silvers. All rights reserved. *) X(* *) X(* This module handles most of the players moves. *) X(* *) X(*************************************************************************) X XFROM types IMPORT X PIECES, TEMP, BOARD; X XFROM othello IMPORT X ShowMoves, GameOver; X XEXPORT QUALIFIED X GetMove, Validate, Move, Count, HowMany, CanPass; X X XPROCEDURE Move (player: PIECES; VAR xcords, ycords: INTEGER); X XPROCEDURE FindBest (player: PIECES; VAR xcords, ycords: INTEGER); X XPROCEDURE GetMove (player: PIECES; VAR xcords, ycords: INTEGER); X XPROCEDURE Value (player: PIECES; x, y: INTEGER): INTEGER; X XPROCEDURE CanPass (player: PIECES ): BOOLEAN; X XPROCEDURE Corner (x, y: INTEGER): BOOLEAN; X XPROCEDURE Edge (x, y: INTEGER): BOOLEAN; X XPROCEDURE TwoAway (x, y: INTEGER): BOOLEAN; X XPROCEDURE NextToCorner (x, y: INTEGER): BOOLEAN; X XPROCEDURE Validate (player: PIECES; xcords, ycords: INTEGER): BOOLEAN; XPROCEDURE Check (player: PIECES; xcords, ycords, xdirection, ydirection: X INTEGER) : BOOLEAN; X XPROCEDURE Count (VAR White, Black: INTEGER); X XPROCEDURE HowMany(player : PIECES; xcords, ycords: INTEGER; VAR count, weight: X INTEGER); X XPROCEDURE NumFlips(player : PIECES; xcords, ycords, xdir, ydir: INTEGER; X VAR count, weight: INTEGER); X XPROCEDURE CopyToTemp; X XPROCEDURE CopyBack; X X XEND move. END_OF_move.def if test 1734 -ne `wc -c <move.def`; then echo shar: \"move.def\" unpacked with wrong size! fi # end of overwriting check fi if test -f othello.def -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"othello.def\" else echo shar: Extracting \"othello.def\" \(1031 characters\) sed "s/^X//" >othello.def <<'END_OF_othello.def' XDEFINITION MODULE othello; X X(*************************************************************************) X(* *) X(* OTHELLO. (c) 1987 Robert Silvers. All rights reserved. *) X(* *) X(* Handles most of the game routines. *) X(* *) X(*************************************************************************) X XFROM types IMPORT X PIECES, BOARD, TEMP; X XEXPORT QUALIFIED X InitBoard, DrawBoard, Flip, ReDraw, Menu, GameOver, ShowMoves; X X XPROCEDURE InitBoard; X XPROCEDURE Menu(VAR choice: CHAR); X XPROCEDURE DrawBoard; X XPROCEDURE GameOver(computer: BOOLEAN): BOOLEAN; X XPROCEDURE Flip (player: PIECES; xcords, ycords: INTEGER); X XPROCEDURE Flipper (player: PIECES; xcords, ycords, xdir, ydir: INTEGER); X XPROCEDURE ShowMoves (player: PIECES); X XPROCEDURE ReDraw (); X X XEND othello. X END_OF_othello.def if test 1031 -ne `wc -c <othello.def`; then echo shar: \"othello.def\" unpacked with wrong size! fi # end of overwriting check fi if test -f regis.def -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"regis.def\" else echo shar: Extracting \"regis.def\" \(1079 characters\) sed "s/^X//" >regis.def <<'END_OF_regis.def' XDEFINITION MODULE regis; X(* This module contains lo-level graphic commands. *) X X XEXPORT QUALIFIED XClearScreen, Reset, Position, Circle, Plot, DrawTo, WriteText, TextSize, XWriteNum, SetFill, UnsetFill, Box, Color, BGColor, Pattern, TextSlant, XWriteChr, Scroll, TextDirection, ExitGr; X X XTYPE X CoorinatePair= RECORD X x,y:INTEGER; X END; XTYPE X String= ARRAY [0..80] OF CHAR; X X XPROCEDURE Reset; X XPROCEDURE ExitGr; X XPROCEDURE Color(Color: CHAR); X XPROCEDURE BGColor(Color: CHAR); X XPROCEDURE Box(width, height: INTEGER); X XPROCEDURE Position(x,y:INTEGER); X XPROCEDURE Circle(x,y:INTEGER); X XPROCEDURE Plot(x,y:INTEGER); X XPROCEDURE DrawTo(x,y:INTEGER); X XPROCEDURE WriteText(message:String); X XPROCEDURE Pattern(p :String); X XPROCEDURE WriteNum(num: INTEGER); X XPROCEDURE WriteChr(chr: CHAR); X XPROCEDURE Scroll(dx, dy: INTEGER); X XPROCEDURE TextSize(size :INTEGER); X XPROCEDURE TextSlant(angle :INTEGER); X XPROCEDURE TextDirection(dir :INTEGER); X XPROCEDURE SetFill(y:INTEGER); X XPROCEDURE UnsetFill; X XPROCEDURE ClearScreen; X X XEND regis. X X END_OF_regis.def if test 1079 -ne `wc -c <regis.def`; then echo shar: \"regis.def\" unpacked with wrong size! fi # end of overwriting check fi if test -f types.mod -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"types.mod\" else echo shar: Extracting \"types.mod\" \(247 characters\) sed "s/^X//" >types.mod <<'END_OF_types.mod' XIMPLEMENTATION MODULE types; X(**************************************) X(* *) X(* Dummy module. *) X(* *) X(**************************************) X XEND types. X END_OF_types.mod if test 247 -ne `wc -c <types.mod`; then echo shar: \"types.mod\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of archive 2 \(of 2\). cp /dev/null ark2isdone MISSING="" for I in 1 2 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked both archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0