예제 #1
0
    public void CheckPalindrome(PalindromeChecker game, string input, int distanceFromCenter)
    {
        bool isPalindrome = false;
        int  halfway      = input.Length / 2;

        if (input.Length % 2 == 0) //EVEN LENGTH
        {
            if (distanceFromCenter == halfway && distanceFromCenter != 0)
            {
                game.IsPalindrome = true;
            }
            else if (input[halfway + distanceFromCenter] == input[halfway - 1 - distanceFromCenter] && distanceFromCenter < halfway)
            {
                distanceFromCenter++;
                game.CheckPalindrome(game, input, distanceFromCenter);
            }
        }
        else if (input.Length % 2 == 1) //ODD LENGTH
        {
            if (input[halfway + distanceFromCenter] == input[halfway - distanceFromCenter] && distanceFromCenter < halfway)
            {
                distanceFromCenter++;
                game.CheckPalindrome(game, input, distanceFromCenter);
            }
            else if (distanceFromCenter == halfway && distanceFromCenter != 0)
            {
                game.IsPalindrome = true;
            }
        }
    }
예제 #2
0
    public static void Main()
    {
        PalindromeChecker game = new PalindromeChecker();

        Console.WriteLine("Welcome to the palindrome checker!");
        Console.WriteLine("Enter a phrase to check:");
        string input = Console.ReadLine();
        int    distanceFromCenter = 0;

        game.CheckPalindrome(game, input, distanceFromCenter);
        if (game.IsPalindrome)
        {
            Console.WriteLine("Your phrase is a palindrome!");
        }
        else
        {
            Console.WriteLine("Your phrase is not a palindrome.");
            Console.WriteLine("Want to check another phrase? (Enter Y / N)");
            string newGame = Console.ReadLine();
            if (newGame[0].ToString().ToUpper() == "Y")
            {
                Main();
            }
            else
            {
                Console.WriteLine("Goodbye.");
            }
        }
    }
예제 #3
0
        public void IsStarsPalindrome()
        {
            // Arrange
            var palindrome     = "stars";
            var expectedResult = false;
            var checkWord      = new PalindromeChecker();

            // Actual
            var actualResult = checkWord.CheckPalindrome(palindrome);

            // Assert
            Assert.Equal(expectedResult, actualResult);
        }
예제 #4
0
        public void IsPalindrome3()
        {
            // Arrange
            var palindrome     = "Some men interpret nine memos";
            var expectedResult = true;
            var checkWord      = new PalindromeChecker();

            // Actual
            var actualResult = checkWord.CheckPalindrome(palindrome);

            // Assert
            Assert.Equal(expectedResult, actualResult);
        }
예제 #5
0
        public void IsPalindrome2()
        {
            // Arrange
            var palindrome     = "O, a kak Uwakov lil vo kawu kakao!";
            var expectedResult = true;
            var checkWord      = new PalindromeChecker();

            // Actual
            var actualResult = checkWord.CheckPalindrome(palindrome);

            // Assert
            Assert.Equal(expectedResult, actualResult);
        }
예제 #6
0
    public static void Main()
    {
        PalindromeChecker game = new PalindromeChecker();

        Console.WriteLine("Enter a phrase to see if it's a palindrome:");
        string input = Console.ReadLine();
        int    distanceFromCenter = 0;

        game.CheckPalindrome(input, distanceFromCenter);
        if (game.GetIsPalindrome())
        {
            Console.WriteLine("Your phrase is a palindrome!");
            OfferNewGame();
        }
        else
        {
            Console.WriteLine("Your phrase is not a palindrome.");
            OfferNewGame();
        }
    }