public GameState(ulong playerPieces, ulong opponentPieces) : this() { PlayerPieces = playerPieces; OpponentPieces = opponentPieces; NumberOfPlayerPieces = PlayerPieces.CountBits(); NumberOfOpponentPieces = OpponentPieces.CountBits(); var emptySquares = AllPieces ^ ulong.MaxValue; PlayerPlays = Play.ValidPlays(PlayerPieces, OpponentPieces, emptySquares); OpponentPlays = Play.ValidPlays(OpponentPieces, PlayerPieces, emptySquares); }