예제 #1
0
        public void Teach(IBrain brain, int iterations)
        {
            var analyser = new Analyser(brain);

            var depth = 4;

            for (var i = 0; i < iterations; i++)
            {
                var stones   = _randomizer.Next(1, 48);
                var position = GetAwariPosition(stones);
                var p        = position.GetPits();

                if (p[0] > 0 || p[1] > 0 || p[2] > 0 || p[3] > 0 || p[4] > 0 || p[5] > 0)
                {
                    analyser.Start(i, p, 48 - stones);

                    var score = _evaluator.Evaluate(position, 5) + 48 - stones;
                    brain.Learn(p, 48 - stones, score);

                    analyser.Stop(score);
                }
            }

            analyser.Dispose();
        }