// Copyright 1992 by Jon Dart.  All Rights Reserved.

#ifndef _BOARD_HASH_H
#define _BOARD_HASH_H

#include "board.h"
#include "emove.h"

class Board_Hash
{
	public:
		
	static void free();
	
	static hash_t HashCode( const Board &ABoard );
	
	static hash_t HashCode2( const Board & b);
	// another hash code, more or less uncorrelated with HashCode

	static void UpdateHash( const Board &ABoard, 
		const ExtendedMove &emove, 
		const hash_t OldHash, hash_t &NewHash);

};

#endif

