Ejemplo n.º 1
0
        public int GetMove(TicTacToe.Game.TicTacToe game)
        {
            var state     = game.GetBoard();
            var gameState = state.Select(s => s == _playerId?1:(0)).Concat(state.Select(s => s == _playerId?0:(s == OtherPlayer?1:0))).Concat(state.Select(s => s == _playerId?0:(s == OtherPlayer?0:1))).ToArray();
            var result    = m_network.Calculate(gameState.Select(s => (double)s).ToArray());

            // Console.Error.WriteLine("Weights: " + string.Join(" ", result.Select(r => r.Value)));

            return(result.OrderByDescending(r => r.Value).First(r => game.IsPossible(r.Target)).Target);
        }
Ejemplo n.º 2
0
        public int Calculate(int a, int b, bool printDebug = false)
        {
            var result = m_network.Calculate(new double[] { a, b });

            if (printDebug)
            {
                Console.Error.WriteLine("Weights: " + string.Join(" ", result.Select(r => r.Value)));
            }

            return(result.OrderByDescending(r => r.Value).First().Target);
        }