Inheritance: MonoBehaviour
コード例 #1
0
        public void User_is_allowed_to_enter_only_values_within_the_range()
        {
            var repository  = new InMemoryRepository();
            var guessnumber = new GuessNumber(repository);

            Action tryToGuess = () => guessnumber.Guess(outOfRangeAnswer);

            tryToGuess.Should().Throw <ArgumentOutOfRangeException>();
        }
コード例 #2
0
        public void When_user_provides_correct_value_then_game_is_won()
        {
            var repository  = new InMemoryRepository();
            var guessnumber = new GuessNumber(repository);

            var result = guessnumber.Guess(rightAnswer);

            result.Should().Be(GuessResult.Guessed);
        }
コード例 #3
0
        public void When_user_provides_not_correct_value_but_still_has_attempts_then_game_continues()
        {
            var repository  = new InMemoryRepository();
            var guessnumber = new GuessNumber(repository);

            var result = guessnumber.Guess(wrongAnswer);

            result.Should().Be(GuessResult.Wrong);
        }
コード例 #4
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            var repository = new Repository.Repository();
            var model      = new GuessNumber(repository);

            Application.Run(new MainForm(repository, model));
        }
コード例 #5
0
ファイル: GuessNumberTest.cs プロジェクト: p3b0/CSharp
        public void CorrectlyGuess42InThreeTries()
        {
            var sut = new GuessNumber();

            sut.Guess(10);
            Assert.AreEqual("Guess higher.", sut.Feedback);
            sut.Guess(55);
            Assert.AreEqual("Guess lower.", sut.Feedback);
            sut.Guess(42);
            Assert.AreEqual($"You made it in {sut.Tries} tries.", sut.Feedback);
        }
コード例 #6
0
        public void After_user_guesses_three_time_unluckly_then_game_is_over()
        {
            var repository  = new InMemoryRepository();
            var guessnumber = new GuessNumber(repository);

            guessnumber.Guess(wrongAnswer);
            guessnumber.Guess(wrongAnswer);
            guessnumber.Guess(wrongAnswer);
            var result = guessnumber.Guess(wrongAnswer);

            result.Should().Be(GuessResult.TooManyAttempts);
        }
コード例 #7
0
        public void GetGuessResult_LowerGuessReturnsHigher()
        {
            //arrange
            GuessNumber testNumber     = new GuessNumber(1, 101);
            int         randomNumber   = testNumber.GenerateNewNumber();
            int         lowerGuess     = new Random().Next(1, randomNumber);
            GuessResult expectedResult = GuessResult.Higher;

            //act
            GuessResult actualResult = testNumber.GetGuessResult(lowerGuess);

            //assert
            Assert.AreEqual(expectedResult, actualResult);
        }
コード例 #8
0
            public static void ToGame()
            {
                stopWatch = new Stopwatch();
                stopWatch.Start();
                ts = stopWatch.Elapsed;
                Console.WriteLine("                           __Game Guess the Number__");
                int num = rnd.Next(0, 11);

                Console.WriteLine("Guess the number from 0 to 10");
                int    answer = -1;
                string y_or_n = " ";

                GuessNumber.toGame(answer, num, y_or_n);
            }
コード例 #9
0
        private Activity GetImplementation()
        {
            var target = new Variable <int>();
            var guess  = new Variable <int>();

            return(new Sequence
            {
                Variables = { target, guess },
                Activities =
                {
                    new Assign <int>             {
                        To = new OutArgument <int>(target),
                        Value = new InArgument <int>(ctx => GuessNumber.Get(ctx))
                    },
                    new DoWhile                  {
                        Body = new Sequence      {
                            Activities =
                            {
                                new Prompt       {
                                    BookmarkName = "EnterGuess",
                                    Text = new InArgument <string>(ctx =>
                                                                   "Please enter your guess"),
                                    Result = new OutArgument <int>(guess)
                                },
                                new Assign <int> {
                                    To = new OutArgument <int>(ctx => Turns.Get(ctx)),
                                    Value = new InArgument <int>(ctx => Turns.Get(ctx) + 1)
                                },
                                new If           {
                                    Condition = new InArgument <bool>(ctx => guess.Get(ctx) != target.Get(ctx)),
                                    Then = new If{
                                        Condition = new InArgument <bool>(ctx => guess.Get(ctx) < target.Get(ctx)),
                                        Then = new WriteLine{
                                            Text = "Your guess is too low."
                                        },
                                        Else = new WriteLine{
                                            Text = "Your guess is too high."
                                        }
                                    }
                                }
                            }
                        },
                        Condition = new LambdaValue <bool>(ctx => guess.Get(ctx) != target.Get(ctx))
                    }
                }
            });
        }
コード例 #10
0
ファイル: GuessNumberTest.cs プロジェクト: p3b0/CSharp
        public void NewGameReturnCorrectFeedback()
        {
            var sut = new GuessNumber();

            Assert.AreEqual("Guess a number between 1 and 100.", sut.Feedback);
        }
コード例 #11
0
    public static void Main()
    {
        GuessNumber newGuessNumber = new GuessNumber();

        newGuessNumber.playGame();
    }
コード例 #12
0
        public IHttpActionResult Play(PlayRequestDataModel request)
        {
            var currentUserId = this.userIdProvider.GetUserId();

            if (request == null || !ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var gameId = request.GameId;

            var game = this.Data.Games.SearchFor(g => g.Id == gameId).FirstOrDefault();

            if (game == null)
            {
                return(this.BadRequest("Invalid game id!"));
            }

            if (game.FirstPlayerId != currentUserId &&
                game.SecondPlayerId != currentUserId)
            {
                return(this.BadRequest("This is not your game!"));
            }

            if (game.State != GameState.FirstPlayerTurn &&
                game.State != GameState.SecondPlayerTurn)
            {
                return(this.BadRequest("Invalid game state!"));
            }

            if ((game.State == GameState.FirstPlayerTurn &&
                 game.FirstPlayerId != currentUserId)
                ||
                (game.State == GameState.SecondPlayerTurn &&
                 game.SecondPlayerId != currentUserId))
            {
                return(this.BadRequest("It's not your turn!"));
            }

            // Update games state and adding new guess number
            var guessNumber = request.GuessNumber;

            var newGuessNumber = new GuessNumber
            {
                Number   = guessNumber,
                GameId   = gameId,
                PlayerId = currentUserId
            };

            this.Data.GuessNumbers.Add(newGuessNumber);

            game.State = game.State == GameState.FirstPlayerTurn ?
                         GameState.SecondPlayerTurn : GameState.FirstPlayerTurn;

            this.Data.SaveChanges();
            var guess = new Guess
            {
                GuessingUserId = currentUserId,
                GuessNumber    = guessNumber.ToString()
            };
            var guessResult = this.gameValidator.GetResult(guess, Data);

            switch (guessResult.GameResult)
            {
            case GameResult.NotFinished:
                break;

            case GameResult.WonByFirstPlayer:
                game.State   = GameState.WonByFirstPlayer;
                game.GameEnd = DateTime.Now;
                this.Data.SaveChanges();
                break;

            case GameResult.WonBySecondPlayer:
                game.State   = GameState.WonBySecondPlayer;
                game.GameEnd = DateTime.Now;
                this.Data.SaveChanges();
                break;

            default:
                break;
            }

            return(this.Ok(guessResult));
        }
コード例 #13
0
 public MainWindow()
 {
     InitializeComponent();
     game = new GuessNumber();
 }
コード例 #14
0
 static void Main(string[] args)
 {
     GuessNumber.ToGame();
 }