Beispiel #1
0
    void Awake()
    {
        board = Board.STARTING_BOARD;
        //board = new Board();
        moveManager = GameObject.Find("MoveManager").GetComponent <MoveManager> ();
        // whitePlayer = board.whitePlayer;
        // blackPlayer = board.blackPlayer;
        // board.whitePlayer = whitePlayer;
        // board.blackPlayer = blackPlayer;
        squareSize = squarePrefab.GetComponent <SpriteRenderer> ().bounds.size;

        DrawBoard();

        //print(board.FindPieceOnBoard('A', '1').pieceName);

        foreach (Move m in board.legalMoves)
        {
            //   print(board.FindPieceOnBoard(m.colFrom, m.rowFrom).pieceName + " to " + m.colTo.ToString() + m.rowTo.ToString());
        }

        foreach (Square s in board.squares)
        {
            if (s.isOccupied())
            {
                //   print(s.col.ToString() + s.row.ToString() + " : " + s.GetOccupant().pieceName);
            }
        }

        foreach (Piece p in board.pieces)
        {
            //   print(p.pieceName + " at: " + p.col.ToString() + p.row.ToString());
        }
    }
Beispiel #2
0
        public static void Update()
        {
            KeyboardState currentState = Keyboard.GetState();
            MouseState    mouseState   = Mouse.GetState();

            /* End current player's turn after Space is pressed. */
            if (currentState.IsKeyDown(Keys.Space) && previousState.IsKeyUp(Keys.Space))
            {
                TurnManager.ChangeTurn();
            }

            /* Move current unit */
            if (currentState.IsKeyDown(Keys.M) && previousState.IsKeyUp(Keys.M))
            {
                Units.Unit currentUnit = UnitManager.GetCurrentUnit();
                if (currentUnit.State != Units.Unit.States.Moving)
                {
                    MoveManager.StartMove(currentUnit);
                }
                else if (currentUnit.State == Units.Unit.States.Moving)
                {
                    MoveManager.EndMove(currentUnit);
                }
            }

            previousState = currentState;
        }
Beispiel #3
0
    private void MakeMove(GameObject enemy, MoveManager moveManager)
    {
        Move move = new RandomMove(enemy.transform, enemy.GetComponent <Animator>(), new IntValue(1));

        moveManager.Add(MoveState.Main, enemy, move);
        moveManager.Add(MoveState.Atack, enemy, move);
    }
        public void TakesOneFailValidOnNameValidationErrorOnFourthTile()
        {
            //Arrange
            var manager           = new MoveManager();
            var playerMoves       = new Dictionary <MoveType, IslandTile>();
            var canMoveValidation = new List <ICanMoveValidation>();

            playerMoves.Add(MoveType.FirstMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.SecondMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.ThirdMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.FourthMyPawnMoveTile, new IslandTile()
            {
                Name = ManagersTestConstants.ERROR_TILE_NAME
            });

            canMoveValidation.Add(new CanMove_ErrorOnName());

            //Act
            var result = manager.AreMovesValid(playerMoves, canMoveValidation, new Player());

            //Assert
            Assert.IsTrue(result.Any());
            Assert.AreEqual(result.Count, 1);
            Assert.AreEqual(result[0].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
        }
Beispiel #5
0
 public void MakeEnemy(Dictionary <Enemys, Value> enemylist, MoveManager moveManager)
 {
     foreach (KeyValuePair <Enemys, Value> enems in enemylist)
     {
         make(enems, moveManager);
     }
 }
        public void TakesTwoNotValidValidation()
        {
            //Arrange
            var manager           = new MoveManager();
            var playerMoves       = new Dictionary <MoveType, IslandTile>();
            var canMoveValidation = new List <ICanMoveValidation>();

            playerMoves.Add(MoveType.FirstMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.SecondMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.ThirdMyPawnMoveTile, new IslandTile());
            playerMoves.Add(MoveType.FourthMyPawnMoveTile, new IslandTile());

            canMoveValidation.Add(new CanMove_NotValid());
            canMoveValidation.Add(new CanMove_NotValid());

            //Act
            var result = manager.AreMovesValid(playerMoves, canMoveValidation, new Player());

            //Assert
            Assert.IsTrue(result.Any());
            Assert.AreEqual(result.Count, 6);
            Assert.AreEqual(result[0].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
            Assert.AreEqual(result[1].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
            Assert.AreEqual(result[2].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
            Assert.AreEqual(result[3].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
            Assert.AreEqual(result[4].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
            Assert.AreEqual(result[5].ErrorMessage, ManagersTestConstants.CAN_MOVE_ERROR);
        }
Beispiel #7
0
 protected void SetShipPosition()
 {
     if (shipPosition != null)
     {
         MoveManager.Add(ShipJourney.ShipTransform, shipPosition, 10, 10, 0.1f);
     }
 }
Beispiel #8
0
	void Start () {
		playerManager = GetComponent<MoveManager> ();
		
		playerManager.OnMoveMade += OnMoveMade;
		secondsRemainingWhite = clockTimeSeconds;
		secondsRemainingBlack = clockTimeSeconds;
	}
Beispiel #9
0
    void Awake()
    {
        instance = this;

        isStart.onValueChanged.AddListener((bool value) => OnStartGame(value));
        restartButton.onClick.AddListener(RestartGame);
    }
Beispiel #10
0
    // Minimax main function, should be the one to call in all cases
    // Essentialy the same as MinABPruning but store the actual move
    private (int, int) MiniMaxABPruning(int n)
    {
        (int, int)move = (-1, -1);

        int min = int.MaxValue;
        List <(int, int)> allPM = MoveManager.GetAllPossibleMoves(realBoard, false, false);

        foreach ((int, int)iMove in allPM)
        {
            PositionManager childBoard = new PositionManager(realBoard);
            childBoard.MovePiece(iMove.Item1, iMove.Item2);
            int score = MaxABPruning(childBoard, n, int.MinValue, int.MaxValue);
            if (score == min && (Random.Range(0, 2) == 0))  //add random to make the AI less predictable
            {
                move = iMove;
            }
            if (score < min)
            {
                min  = score;
                move = iMove;
            }
        }

        if (min > 300)
        {
            return(-1, -1);
        }

        return(move);
    }
        public void Undo_CanUndo_Kill_ShouldReturnTrue()
        {
            // arrange
            var moveManager = new MoveManager();

            moveManager.Move(new Position(1, 1), new Position(2, 1));
            moveManager.Move(new Position(6, 4), new Position(5, 4));
            Position from = new Position(7, 5);
            Position dest = new Position(2, 0);

            moveManager.Move(new Position(0, 2), dest);
            moveManager.Move(from, dest);

            // act
            bool before      = moveManager.CanMove(from, dest).Item1;
            bool result      = moveManager.Undo();
            bool after       = moveManager.CanMove(from, dest).Item1;
            bool afterKilled = moveManager.CanMove(dest, from).Item1;

            // assert
            Assert.False(before);
            Assert.True(result);
            Assert.True(after);
            Assert.True(afterKilled);
        }
        public void CanMove_MoveCauseCheck_ShouldReturnFalse()
        {
            // arrange
            var gameManger = new MoveManager();

            var whitePawnStart  = new Position(6, 4);
            var whitePawnEnd    = new Position(4, 4);
            var blackPawn2Start = new Position(1, 6);
            var blackPawn2End   = new Position(3, 6);
            var whiteQueenStart = new Position(7, 3);
            var whiteQueenEnd   = new Position(3, 7);

            gameManger.Move(whitePawnStart, whitePawnEnd);
            gameManger.Move(blackPawn2Start, blackPawn2End);
            gameManger.Move(whiteQueenStart, whiteQueenEnd);

            var blackPawn1Start = new Position(1, 5);
            var blackPawn1End   = new Position(2, 5);

            // act
            var result = gameManger.CanMove(blackPawn1Start, blackPawn1End);

            // assert
            Assert.False(result.Item1);
        }
Beispiel #13
0
    public void ActiveName(JourneyTargetText _journeyTargetText, TextData textData)
    {
        OnEndMove  = null;
        OnEndMove += () => { journeyPoint.ShowText(); };

        typeMessage       = textData.type;
        message           = textData.text;
        journeyTargetText = _journeyTargetText;
        journeyTargetText.SetText(message.GetColor(journeyTargetText.notSelectColor));
        Action Stop = () => {
            ShipCamera.moveTransform   = journeyPoint.cameraPosition;
            ShipCamera.rotateTransform = journeyPoint.cameraView;
            OnEndMove?.Invoke();
        };

        Action <string> Change = (str) => {
            journeyTargetText.SetText(message.GetColor(str, journeyTargetText.selectColor, journeyTargetText.notSelectColor));
        };

        Action Good = () => {
            journeyPoint.ShowData();
            EnterTextController.RemoveAll();
            MoveManager.Add(ShipJourney.ShipTransform, transformMain, 10, 10, 3f, Stop);
            OnStartMove?.Invoke();
        };

        Action Bed = () => {
            journeyTargetText.SetText(message.GetColor(journeyTargetText.notSelectColor));
        };

        //message = GameText.Get(typeMessage).text;
        message = textData.text;
        EnterTextController.Add(message, Change, Good, Bed);
    }
Beispiel #14
0
	void Start () {
		if (gameModeIndexSet) {
			gameMode = (GameMode)gameModeIndex;
		}
		if (gameMode == GameMode.Regular) {
			GetComponent<Clock>().StartClock();
		}

		Board.SetPositionFromFen (Definitions.gameStartFen,true);

		ZobristKey.Init ();
		Evaluation.Init ();
		if (regenerateOpeningBook) {
			OpeningBookGenerator.GenerateBook ();
		}
		if (useOpeningBook) {
			OpeningBookReader.Init ();
		}

		playerManager = GetComponent<MoveManager> ();

		playerManager.CreatePlayers ();

		Board.SetPositionFromFen (Definitions.gameStartFen,true);

	}
    private IEnumerator SendWaitingCarriers()
    {
        while (true)
        {
            if (_waitingCarriers.Count > 0 && road.roadLock.IsFree(Orientation.SOUTH))//TODO orientation
            {
                ResourceCarrier candidate      = _waitingCarriers.Dequeue();
                ResourceCarrier firstCandidate = candidate;
                bool            firstOk        = true;

                while (RoadsPathfinding.RouteStar(road, candidate.destination.freightAreaData.freightAreaIn.road, 10, Orientation.SOUTH) == null && firstCandidate != candidate)//TODO orientation (et attention avec in/out :/)
                {
                    firstOk = false;
                    _waitingCarriers.Enqueue(candidate);
                    candidate = _waitingCarriers.Dequeue();

                    yield return(new WaitForSeconds(0.1f));
                }//TODO ATTENTION: la boucle ci-dessus veut dire que si le joueur fait n'importe quoi et coupe des chemins partout, la taille de la file va augmenter alors que des transporteurs y restent coincés!!!! Du coup, au moins mettre un genre de message d'erreur pourrait être sympa.==> TODO attention aussi au cas des destruction: que deviennent les carriers qui devaient aller à un bâtiment qui n'existe plus ? Comparer avec null pour vérifier que pas détruits ??? OK sur les children ?

                if (firstOk || firstCandidate != candidate)//Donc, on a trouvé un transporteur à envoyer
                {
                    candidate.transform.position = new Vector3(road.transform.position.x, road.transform.position.y, candidate.transform.position.z);
                    MoveManager candidateMoveManager = candidate.GetComponent <MoveManager>();
                    candidateMoveManager.orientation = Orientation.SOUTH;//TODO orientation
                    candidate.GetComponent <RoadRouteManager>().occupiedRoad = road;
                    road.roadLock.LockFor(candidateMoveManager.orientation, candidate.gameObject);
                    candidate.GetComponent <Collider2D>().enabled = true;
                    candidate.GetComponent <RoadRouteManager>().MoveTo(candidate.destination.freightAreaData.freightAreaIn.road);
                }
            }

            yield return(new WaitForSeconds(0.5f));
        }
    }
Beispiel #16
0
    /// <summary>
    /// 为人工操作速度加速
    /// </summary>
    private IEnumerator AccelerateForSceconds(MoveManager targetMove, float amount)
    {
        targetMove.speed += amount;
        yield return(new WaitForSeconds(duaration));

        targetMove.speed -= amount;
    }
Beispiel #17
0
 public override void OnMoved(AGoose goose)
 {
     if (GameManager.Gooses[GameManager.CurrentGooseIndex] == goose)
     {
         MoveManager.MoveAfter(goose, goose.LastDiceResult.Total);
     }
 }
 void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Beispiel #19
0
 // Start is called before the first frame update
 void Start()
 {
     playerScript = FindObjectOfType <MoveManager>();
     player       = GameObject.FindGameObjectWithTag("Player").transform;
     controller   = GetComponent <NavMeshAgent>();
     controller.updateRotation = false;
 }
Beispiel #20
0
    // Min part of Minimax with AB pruning
    private int MiniABPruning(PositionManager board, int depth, int a, int b)
    {
        if (depth <= 0)
        {
            return(board.GetValueOfBoard());
        }

        int min = int.MaxValue;
        List <(int, int)> allPM = MoveManager.GetAllPossibleMoves(board, false, false);

        if (allPM.Count == 0)
        {
            return(board.GetValueOfBoard());
        }

        foreach ((int, int)iMove in allPM)
        {
            PositionManager childBoard = new PositionManager(board);
            childBoard.MovePiece(iMove.Item1, iMove.Item2);
            min = Math.Min(min, MaxABPruning(childBoard, depth - 1, a, b));
            b   = Math.Min(b, min);
            if (b <= a)
            {
                break;
            }
        }

        return(min);
    }
Beispiel #21
0
 void Awake()
 {
     trainerScriptHolder = GameObject.Find(trainerName);
     moveScript          = GetComponent <MoveManager>();
     trainerScript       = trainerScriptHolder.GetComponent <TrainerManager>();
     fightMenuScript     = GetComponent <FightMenuManager>();
 }
Beispiel #22
0
    //public GameObject desk;

    void Awake()
    {
        absolutelyAllItems = FindAllDirectChildren(GameObject.FindGameObjectWithTag("ItemsToManage"));
        List <BasicFurnitureScript> fntb = new List <BasicFurnitureScript>();

        for (int i = 0; i < absolutelyAllItems.Length; i++)
        {
            if (absolutelyAllItems[i].GetComponent <BasicFurnitureScript>() && absolutelyAllItems[i].GetComponent <BasicFurnitureScript>().isFlammable)
            {
                fntb.Add(absolutelyAllItems[i].GetComponent <BasicFurnitureScript>());
                furnitureNeededToBurn++;
            }
        }
        allFurnitureToBurn = fntb.ToArray();
        winScreen          = GameObject.FindGameObjectWithTag("WinScreen");
        wbScript           = GameObject.FindGameObjectWithTag("WaitButton").GetComponent <WaitButtonScript>();
        fMeterScript       = GameObject.FindGameObjectWithTag("FineOMeter").GetComponent <FineOMeterScript>();
        dog          = GameObject.FindGameObjectWithTag("Dog").GetComponent <DogScript>();
        fmScript     = GetComponent <FireManagerScript>();
        mmScript     = GetComponent <MoveManager>();
        gManager     = GameObject.FindGameObjectWithTag("GridManager").GetComponent <GridManager>();
        mText        = GameObject.FindGameObjectWithTag("MovesText").GetComponent <MovesText>();
        movesTextWin = FindGameObjectInChildWithTag(winScreen, "MovesTextWin").GetComponent <Text>();
        winScreen.GetComponent <RectTransform>().localPosition = new Vector3(-119, 52, 0.02f);
    }
Beispiel #23
0
    void Start()
    {
        if (gameModeIndexSet)
        {
            gameMode = (GameMode)gameModeIndex;
        }
        if (gameMode == GameMode.Regular)
        {
            // GetComponent<Clock>().StartClock();
        }

        Board.SetPositionFromFen(Definitions.gameStartFen, true);

        ZobristKey.Init();
        Evaluation.Init();
        if (regenerateOpeningBook)
        {
            OpeningBookGenerator.GenerateBook();
        }
        if (useOpeningBook)
        {
            OpeningBookReader.Init();
        }

        playerManager = GetComponent <MoveManager> ();

        playerManager.CreatePlayers();

        Board.SetPositionFromFen(Definitions.gameStartFen, true);
    }
Beispiel #24
0
    static GameManager()
    {
        ItemLibrary itemLibrary = new ItemLibrary();

        MoveManager move = new MoveManager();

        SpaceContoroler space = new SpaceContoroler();

        SkillControler skill = new SkillControler();

        PlayerObjectManager player = new PlayerObjectManager();

        EnemyManager enemy = new EnemyManager();
        MapManager   map   = new MapManager();

        ///////セットアップ
        SeanState.Add(States.MakePlayerObj, new MakePlayerObj(move, player));
        SeanState.Add(States.CameraSetUp, new CameraMoveSetState(move));
        SeanState.Add(States.SetEnemyLibrary, new SetEnemyLibrary(enemy));



        ////////メインシーン
        SeanState.Add(States.Main, new MainState(move, space));
        SeanState.Add(States.MapMove, new MapMoveState(move, enemy, map));
        SeanState.Add(States.AtackState, new AtackState(skill, player, move));
        SeanState.Add(States.EnemyDamage, new EnemyDamageState(skill, player));
        SeanState.Add(States.ChargeSet, new ChargeSetState(skill, player));
        SeanState.Add(States.PlayerFind, new PlayerFindState(move));
        SeanState.Add(States.DethCheck, new DethCheckState(move, enemy));
    }
Beispiel #25
0
    public void MoveByDice(DiceResult diceResult)
    {
        LastDiceResult = diceResult;

        //If the player is in the well
        if (TurnInfo.InWell)
        {
            if (!diceResult.HasDone(6))
            {
                GameManager.EndTurn(); return;
            }                                                          //Pass turn..
            TurnInfo = TurnInfo.Builder().Build();
        }

        //If the player is on begin cell
        if (TurnInfo.OnBeginCell)
        {
            //6 and 3
            if (diceResult.HasDone(6, 3))
            {
                MoveManager.MoveAt(this, 26, true);
                return;
            }

            //5 and 4
            if (diceResult.HasDone(5, 4))
            {
                MoveManager.MoveAt(this, 53, true);
                return;
            }
        }

        MoveManager.Move(this, diceResult.Total);
    }
Beispiel #26
0
        private void Awake()
        {
            var enemyPlacer = GetComponent <RandomEnemyPlacer>();

            enemyPlacer.PlaceRandomEnemies();

            _tileLayer = LayerMask.GetMask("Tiles");

            ReplayManager replayManager = new ReplayManager();

            _stateMachine = new StateMachine <GameStateBase>();

            var moveManager = new MoveManager <Piece>(Board);

            var playGameState = new PlayGameState(Board, moveManager);

            _stateMachine.RegisterState(GameStates.EnemyPhase1, new EnemyPhase1GameState(Board));
            _stateMachine.RegisterState(GameStates.EnemyPhase2, new EnemyPhase2GameState(Board));
            _stateMachine.RegisterState(GameStates.Play, playGameState);


            moveManager.Register(PlayerMoveCommandProvider.Name, new PlayerMoveCommandProvider(playGameState, replayManager));

            ConnectMoveCommandProviderView(moveManager);
            ConnectPieceViews(moveManager);
            ConnectTileViews(Board);
            ConnectBoardView(Board);

            _stateMachine.MoveTo(GameStates.EnemyPhase1);
        }
Beispiel #27
0
    private void UnapplyMoveShiftsOnObjectsForDiagonalSplit()
    {
        MoveManager mainOccupant = _diagShiftMainOccupant.GetComponent <MoveManager>();

        mainOccupant.ReleaseShift(_diagShiftMainOccupantOrientation);
        mainOccupant.ReleaseShift(Orientation.PerpendicularOrientation(_diagShiftMainOccupantOrientation));

        MoveManager secondOccupant;

        if (_doubleLockOccupant != null)
        {
            secondOccupant         = _doubleLockOccupant.GetComponent <MoveManager>();
            _doubleLockOccupant    = null;
            _doubleLockOrientation = null;
        }
        else
        {
            secondOccupant = GetOccupantDifferentFrom(_diagShiftMainOccupant).GetComponent <MoveManager>();
        }

        string mainOrientationOpposite = Orientation.OppositeOrientation(_diagShiftMainOccupantOrientation);

        secondOccupant.ReleaseShift(mainOrientationOpposite);
        secondOccupant.ReleaseShift(Orientation.PerpendicularOrientation(mainOrientationOpposite));

        _diagShiftMainOccupant            = null;
        _diagShiftMainOccupantOrientation = null;
    }
Beispiel #28
0
    // Use this for initialization
    void Awake()
    {
        moveManager = GetComponent <MoveManager>();
        mainCamera  = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <Camera>();

        SelectionEnabled = true;
    }
Beispiel #29
0
    private (int, int) PlayRandom()
    {
        List <(int, int)> allPM = MoveManager.GetAllPossibleMoves(realBoard, false, false);

        (int, int)move = allPM[Random.Range(0, allPM.Count)];
        realBoard.MovePiece(move.Item1, move.Item2);
        return(move);
    }
Beispiel #30
0
    void Start()
    {
        playerManager = GetComponent <MoveManager> ();

        playerManager.OnMoveMade += OnMoveMade;
        secondsRemainingWhite     = clockTimeSeconds;
        secondsRemainingBlack     = clockTimeSeconds;
    }
Beispiel #31
0
 public static MoveManager GetInstance()
 {
     if (_instance == null)
     {
         _instance = new MoveManager();
     }
     return(_instance);
 }
Beispiel #32
0
        public NavMeshAgent navMeshAgent;                      // AI导航

        /// <summary>
        /// 获取所有要用到的私有组件
        /// </summary>
        private void Awake()
        {
            tankMovement    = GetComponent <MoveManager>();
            tankAttack      = GetComponent <TankAttack>();
            tankHealth      = GetComponent <TankHealth>();
            stateController = GetComponent <StateController>();
            navMeshAgent    = GetComponent <NavMeshAgent>();
        }
    void Start()
    {
        this.move = GetComponentInParent<MoveManager>();

        _transform = transform;

        if (!currentCamera)
        {
            currentCamera = Camera.main;
        }
    }
Beispiel #34
0
	// Use this for initialization
	void Start () {
		nextIsCombo = false;

		float rightBarUnits = Mathf.Abs(barArea.transform.position.x - mark.transform.position.x);
		unitsPerSecond = rightBarUnits / barLengthSeconds;

		// Audio	
		aud = GetComponent<AudioSource> ();
		aud.Play ();

		beatVals = getBeatVals ();
		curBeats = new Queue<Beat> ();

		// Move manager
		moveManager = moveManagerObject.GetComponent<MoveManager>();
	}
Beispiel #35
0
 protected void Awake()
 {
     stateMan = (StateManager)GameObject.FindObjectOfType(typeof(StateManager));
     gameMan = (GameManager)GameObject.FindObjectOfType(typeof(GameManager));
     moveMan = (MoveManager)GameObject.FindObjectOfType(typeof(MoveManager));
 }
Beispiel #36
0
 // Initialisation functions
 public void Start()
 {
     movement = new MoveManager(transform);
     this.init ();
 }