Beispiel #1
0
        protected override int Find(ComputerBrain computerBrain, Layout currentGame)
        {
            var probabilityManager = new ProbabilityManager();

            var currentGameArray = currentGame.Positions.ToArray();

            var beforeEqualGames = computerBrain.Memory.Where(i => i.Positions.SequenceEqual(currentGame.Positions));

            var lostGames     = beforeEqualGames.Where(i => !i.ComputerWin);
            var failMoves     = GetNextTurnMoves(computerBrain, currentGame, lostGames);
            var lostPositions = GetPositionMoves(currentGameArray, failMoves);

            lostPositions.ForEach(position => probabilityManager.Increment(position, false));

            var winGames     = beforeEqualGames.Where(i => i.ComputerWin);
            var correctMoves = GetNextTurnMoves(computerBrain, currentGame, winGames);
            var winPositions = GetPositionMoves(currentGameArray, correctMoves);

            winPositions.ForEach(position => probabilityManager.Increment(position, true));

            var findedPosition = probabilityManager.BestPosition(probabilityManager.ShouldMoveToWin());

            if (currentGame.CanMove(findedPosition))
            {
                return(findedPosition);
            }

            return(AnyPosition(currentGame));
        }
Beispiel #2
0
 private void Start()
 {
     gameUI             = GameUI.Instance();
     playerControl      = PlayerControl.Instance();
     cameraManager      = CameraManager.Instance();
     mapManager         = MapManager.Instance();
     dataManager        = DataManager.Instance();
     probabilityManager = ProbabilityManager.Instance();
     allTime            = Constant.Instance().ALLTIME;
     nowTime            = allTime;
 }
Beispiel #3
0
 void Start()
 {
     mapWall        = Resources.Load("wall") as GameObject;
     mapTile        = Resources.Load("tile") as GameObject;
     mapCoin        = Resources.Load("coin") as GameObject;
     mapSkySpikes   = Resources.Load("skySpikes") as GameObject;
     mapSpikes      = Resources.Load("spikes") as GameObject;
     mapColor       = SceneTypeManager.Instance().SelectColor(SceneTypeManager.Instance().currentType);
     mapConstant    = Constant.Instance();
     mapProbability = ProbabilityManager.Instance();
     CreateMap();
     player = GameObject.Instantiate(Resources.Load(SceneTypeManager.Instance().playerName) as GameObject);
 }