ftp.nice.ch/pub/next/games/board/Othello.NIHS.bs.tar.gz#/Othello/Source/Othello.h

This is Othello.h in view mode; [Download] [Up]

/* #define section -- set up the macros and definitions that make the code
 *   marginally more readable.
 */

#define EMPTY 0
#define WHITE 1
#define BLACK 2
#define FIELD_WIDTH 8
#define FIELD_HEIGHT 8
#define NUM_SPACES (FIELD_WIDTH * FIELD_HEIGHT)
#define cell(x, y) (x + (y * FIELD_WIDTH))
#define x(num) (num % FIELD_WIDTH)
#define y(num) (num / FIELD_HEIGHT)

/* Generated by Interface Builder */

#import <objc/Object.h>
#import <appkit/Control.h>
#import <appkit/Button.h>
#import <appkit/Matrix.h>
#import <appkit/TextField.h>
#import <string.h>
#import <stdlib.h>
#import <streams/streams.h>
#import <appkit/OpenPanel.h>


@interface Othello:Object
{
    id	playField;
    id	black_time;
    id	white_time;
    id	white_number;
    id	black_number;
    id  status;
    id  savePanel;

    short theField[NUM_SPACES+1];
    short theBckField[NUM_SPACES+1];
    short theTurn;
}

- saveGame:sender;
- newGame:sender;
- openGame:sender;

- undo:sender;

- swap;
- backup;

- updateField:sender;
- updatePlace:(int) theCell forPlayer:(int) thePlayer;

- (BOOL) checkDirection:(int) xDelta:(int) yDelta fromCell:(int)theCell
             forPlayer:(int) thePlayer;
- (void) doDirection:(int) xDelta:(int) yDelta fromCell:(int)theCell
             forPlayer:(int) thePlayer;
- (BOOL) allDirectionsFromCell:(int)theCell flipPieces:(BOOL) move;
- (BOOL) allDirectionsFromCell:(int)theCell flipPieces:(BOOL) move
 forPlayer:(int) thePlayer;

- (BOOL) canPlay:(int) thePlayer;

- moveMade:sender;

- (char *) playerToString:(int) thePlayer;
- (char *) turnString;
  
- appDidInit:sender;
@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.