/* * 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!"); }
public Face(IScreenRenderer renderer, IGetInput input) { _renderer = renderer; _input = input; }
/** * 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; }
public Solve(IGetInput getInput, IGetInstructions getInstructions, IFollowInstructions followInstructions) { _getInput = getInput; _getInstructions = getInstructions; _followInstructions = followInstructions; }