/*
  * Represents the AI.
  * @constructor
  * @param {IGetInput<char[,]>} iGetInput - Gets the ComputerInput.
  */
 public ComputerPlayer(IGetInput <char[, ]> iGetInput)
 {
     mark       = Marks.Nought;
     _iGetInput = iGetInput;
     miniMax    = new MiniMaxAlgo();
     board      = _iGetInput.GetGameBoardSquare();
 }
 public static IGetInput GetPreferredInput()
 {
     if (null == _input)
     {
         //_input = new ConsoleInput();
         _input = new LeapInput();
         _input.Init();
     }
     return _input;
 }
        public void GetUserNumericalInputReturnsIntegerWhenInputIsInteger()
        {
            // Arrange
            IGetInput InputMock = Substitute.For <IGetInput>();

            InputMock.GetUserInput().Returns(x => "5");
            int expected = 5;

            Target.Input = InputMock;

            // Act
            var result = RunHelper.RunStaticMethod(typeof(CalcConsoleClient), "GetUserNumericalInput", null);

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void GetUserNumericalInputPrintsErrorMessageWhenInputIsOtherThanInteger()
        {
            // Arrange
            IGetInput    InputMock  = Substitute.For <IGetInput>();
            IPrintOutput OutputMock = Substitute.For <IPrintOutput>();

            // As the console stays in a loop if an invallid call is received, we are forcing a return with a second valid call
            InputMock.GetUserInput().Returns("h", "3");

            Target.Input  = InputMock;
            Target.Output = OutputMock;

            // Act
            var result = RunHelper.RunStaticMethod(typeof(CalcConsoleClient), "GetUserNumericalInput", null);

            // Assert
            OutputMock.Received().PrintUserOutput("Please Enter a valid numerical value!");
        }
        public void GetUserOperationInputOnlyAcceptsValidOperations()
        {
            // Arrange
            IGetInput    InputMock  = Substitute.For <IGetInput>();
            IPrintOutput OutputMock = Substitute.For <IPrintOutput>();

            // As the console stays in a loop if an invallid call is received, we are forcing a return with a second valid call
            InputMock.GetUserInput().Returns("hello", "add");

            Target.Input  = InputMock;
            Target.Output = OutputMock;

            // Act
            var result = RunHelper.RunStaticMethod(typeof(CalcConsoleClient), "GetUserOperationInput", null);

            // Assert
            // Failed 4 times, one per invalid input
            OutputMock.Received(1);
            OutputMock.Received().PrintUserOutput("Please Enter a valid operation!");
        }
        public void GetUserNumericalInputPrintsErrorIfIntIsOutOfRange()
        {
            // Arrange
            IGetInput    InputMock  = Substitute.For <IGetInput>();
            IPrintOutput OutputMock = Substitute.For <IPrintOutput>();

            // As the console stays in a loop if an invalid call is received, we are forcing a return with a second valid call
            InputMock.GetUserInput().Returns("2147483999", "4");

            Target.Input  = InputMock;
            Target.Output = OutputMock;

            // Act
            var result = RunHelper.RunStaticMethod(typeof(CalcConsoleClient), "GetUserNumericalInput", null);

            // Assert
            // Failed 4 times, one per invalid input
            OutputMock.Received(1);
            OutputMock.Received().PrintUserOutput("Please Enter a valid numerical value!");
        }
        public void GetUserNumericalInputBlocksExecutionUntilValidValueIsFound()
        {
            // Arrange
            IGetInput    InputMock  = Substitute.For <IGetInput>();
            IPrintOutput OutputMock = Substitute.For <IPrintOutput>();

            // As the console stays in a loop if an invallid call is received, we are forcing a return with a second valid call
            InputMock.GetUserInput().Returns("a", "b", "c", "&", "3");

            Target.Input  = InputMock;
            Target.Output = OutputMock;

            // Act
            var result = RunHelper.RunStaticMethod(typeof(CalcConsoleClient), "GetUserNumericalInput", null);

            // Assert
            // Failed 4 times, one per invalid input
            OutputMock.Received(4);
            OutputMock.Received().PrintUserOutput("Please Enter a valid numerical value!");
        }
Exemple #8
0
 public Face(IScreenRenderer renderer, IGetInput input)
 {
     _renderer = renderer;
     _input    = input;
 }
Exemple #9
0
 /**
  * Represents the human player.
  * @constructor
  * @param {IGetInput<int>} iGetInput - Gets HumanInput.
  */
 public HumanPlayer(IGetInput <int> iGetInput)
 {
     mark       = Marks.Cross;
     _iGetInput = iGetInput;
     converter  = new DualConverter();
 }
    //*********************************
    // VVVVV MONOBEHAVIOUR EVENTS VVVVV
    //*********************************
    void Start()
    {
        rigidbody = GetComponent<Rigidbody2D>();
        animator = GetComponent<Animator>();

        upAttackTrigger = Animator.StringToHash("UpAttack");
        sideUpAttackTrigger = Animator.StringToHash("SideUpAttack");
        sideAttackTrigger = Animator.StringToHash("SideAttack");
        sideDownAttackTrigger = Animator.StringToHash("SideDownAttack");
        downAttackTrigger = Animator.StringToHash("DownAttack");
        airJumpTrigger = Animator.StringToHash("AirJump");
        groundedHash = Animator.StringToHash("Grounded");
        walkingHash = Animator.StringToHash("Walking");
        stunnedHash = Animator.StringToHash("Stunned");

        startXScale = transform.localScale.x;

        attacks = new Dictionary<Direction, Attack>();
        attacks.Add(Direction.Up, upAttack);
        attacks.Add(Direction.RightUp, sideUpAttack);
        attacks.Add(Direction.Right, sideAttack);
        attacks.Add(Direction.RightDown, sideDownAttack);
        attacks.Add(Direction.Down, downAttack);
        attacks.Add(Direction.LeftDown, sideDownAttack);
        attacks.Add(Direction.Left, sideAttack);
        attacks.Add(Direction.LeftUp, sideUpAttack);

        currentState = new Idle();
        currentState.OnEnter(this);
        inputComponent = GetComponent(typeof(IGetInput)) as IGetInput;
        instructions = new CharacterInstructions();
        instructionsBuffer = new LinkedList<CharacterInstructions>();

        for(int i = 0; i < inputBufferLength; i++)
        {
            instructionsBuffer.AddFirst(new CharacterInstructions());
        }

        grounded = false;
        stunned = false;
        rigidbody.gravityScale = gravityScale;
    }
Exemple #11
0
 public Face(IScreenRenderer renderer, IGetInput input)
 {
     _renderer = renderer;
     _input = input;
 }
Exemple #12
0
 public Solve(IGetInput getInput, IGetInstructions getInstructions, IFollowInstructions followInstructions)
 {
     _getInput           = getInput;
     _getInstructions    = getInstructions;
     _followInstructions = followInstructions;
 }