PuppyPunter / Hangman

This is my first independent C# project. Built using Visual Studio Code it is a very simple 2 player hangman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

using System; using System.Linq;

namespace MyApp { class Program { static void Main(string[] args) {

//____________________________________________________________________________________________________________________

    //Storing ASCII art in an array
    string[] listOfImages;
    listOfImages = new string[] {
    "________________\n | \n |\n |\n |\n |\n |\n |\n |\n================", 
    "_______________\n | \n | \n |    (0_0) \n | \n | \n | \n | \n | \n================",
    "_______________\n | \n | \n |  \\ (0_0) \n |   \\__| \n | \n | \n | \n | \n================",
    "_______________\n | \n | \n |  \\ (0_0) / \n |   \\__|__/ \n | \n | \n | \n | \n================",
    "_______________\n | \n | \n |  \\ (0_0) / \n |   \\__|__/ \n |      | \n |      | \n | \n | \n================",
    "_______________\n | \n | \n |  \\ (0_0) / \n |   \\__|__/ \n |      | \n |      | \n |     / \n |    / \n================",
    "_______________\n | \n | \n |  \\ (*_*) / \n |   \\__|__/ \n |      |      -+ GAME +- \n |      |      -+ OVER +- \n |     / \\ \n |    /   \\ \n================"
    };

//____________________________________________________________________________________________________________________

        //Prints out the game introduction
        Console.WriteLine("Welcome to Hangman, C# edition!");

        //Gets the first letter of the user's name and converts it to uppercase
        Console.WriteLine("P1, enter your name");
        string p1Name = Console.ReadLine();
        char p1firstLetter = (Char.ToUpper(p1Name[0]));

        //Gets the word for Hangman
        Console.WriteLine("Enter word");
        string p1Word = (Console.ReadLine()).ToLower();
        

        //Sets up the the possible guesses
        int numberOfLetters = p1Word.Length;
        string[] arrayOfLetters;
        arrayOfLetters = new string[numberOfLetters];
        
        //Creates the array where each letter of the response is stored
        char[] wordToGuess;
        wordToGuess = new char[numberOfLetters];

        //Creates an array to store correct guesses in
        int[] correctLetters;
        correctLetters = new int[numberOfLetters];
  
        //Puts each Char of the responses into its corresponding array slot
        for(int letters = 0; letters < numberOfLetters; letters++)
        {
            wordToGuess.SetValue(Convert.ToChar(p1Word[letters]), letters); 
        }

//____________________________________________________________________________________________________________________

        //Intro for P2
        Console.Clear(); 
        Console.WriteLine("Welcome Player 2! Enter in your name");
        string p2Name = Console.ReadLine();
        char p2FirstLetter = Char.ToUpper(p2Name[0]);

        Console.WriteLine($"The word you have to guess is {Convert.ToString(numberOfLetters)} letters long");
        Console.WriteLine(listOfImages[0]);

        //Sets up the guesses
        for(int guesses = 0; guesses <= 5;)
        {

            //Gets P2's first guess
            Console.WriteLine("Guess a letter in P1's word");
            char guess = Convert.ToChar(Console.ReadLine());

//__________________________________________________________________________________________________________________________

            //Checks if guess matches 
            if (Array.IndexOf(wordToGuess, guess) > -1)
            {
                Console.WriteLine("Congratulations!");
                Console.WriteLine($"\n {listOfImages[guesses]}");

                //Loop to manage the guesses
                Console.WriteLine("\n");
                for(int starting = 0; starting < numberOfLetters; starting++) 
                {

                    //Sets all correct guesses into an array
                    if (Array.IndexOf(wordToGuess, guess, starting, (numberOfLetters-starting)) > -1)
                    {
                        correctLetters.SetValue(1, Array.IndexOf(wordToGuess, guess, starting, (numberOfLetters-starting)));

                        //Checks if all the letters have been guessed
                        if(correctLetters.Contains(0) == false)
                        {
                            //Win code
                            Console.WriteLine(listOfImages[guesses]);
                            Console.WriteLine($"{p2Name} wins!!");
                            Console.WriteLine($"The word was +{p1Word}+");
                            return;
                        }

                    }

                }

            }

            //Executes if guess is incorrect    
            else
            {
                //Print out a message and increments guesses
                Console.WriteLine("Sorry thats not one of them");
                guesses++;
            }

            //Prints out the correct guesses
            for(int starting = 0; starting < numberOfLetters; starting ++)
            {

                //Prints correct letters
                if (correctLetters[starting] == 1)
                {
                    Console.Write(wordToGuess[starting]);
                }

                //Prints blanks
                else
                {
                    Console.Write("-");
                }
            }

            //Prints out the hangman and how many guesses are left
            Console.WriteLine($"\n {listOfImages[guesses]}");
            Console.WriteLine($"You have {6- guesses} guesses left");
            
            //If the word isn't guessed in time
            if(guesses == 6)
            {
                Console.WriteLine($"{p1Name} wins!");
            }

            }
        }
}

}

About

This is my first independent C# project. Built using Visual Studio Code it is a very simple 2 player hangman