SHARE
TWEET

Untitled

a guest Dec 6th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Drawing;
  7. using GDIDrawer;
  8.  
  9. namespace Lab4
  10. {
  11.     class Program
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             CDrawer Canvas = new CDrawer();
  16.  
  17.             do
  18.             {
  19.                 char guess;
  20.                 char[] charArray = null;
  21.                 char[] word = null;
  22.                 int correct;
  23.                 int failure = 0;
  24.                 bool win;
  25.                 int letter = 0;
  26.                 bool gameLost = false;
  27.  
  28.                 Console.Clear();
  29.                 Canvas.Clear();
  30.  
  31.                 //title
  32.                 Console.WriteLine("\t\t\tLab 4 Dale Chen-Song\n");
  33.  
  34.                
  35.                 DrawScreen(Canvas);
  36.                 GetWord(ref word, out charArray);
  37.                 do
  38.                 {
  39.                     //user input letter to guess
  40.                     GetGuess("Enter a letter to guess: ", charArray, out guess);
  41.  
  42.                     //check guessed letter
  43.                     CheckGuess(guess, ref charArray, ref word, out correct, out win, ref letter);
  44.  
  45.                     DrawScreen(Canvas, guess, charArray, correct, ref failure, ref gameLost);
  46.  
  47.                 } while (!gameLost || !win);
  48.                 Console.Write("Do you want to play again? ");
  49.             } while (Console.ReadLine().ToLower() == "yes");
  50.         }
  51.         static private void DrawScreen(CDrawer Canvas)
  52.         {
  53.             //draw gallows
  54.             Canvas.AddLine(350, 100, 350, 450, Color.SandyBrown, 3);
  55.             Canvas.AddLine(350, 120, 450, 120, Color.SandyBrown, 3);
  56.             Canvas.AddLine(350, 400, 500, 400, Color.SandyBrown, 3);
  57.             Canvas.AddLine(350, 410, 475, 445, Color.SandyBrown, 3);
  58.             Canvas.AddLine(350, 445, 475, 410, Color.SandyBrown, 3);
  59.             Canvas.AddLine(475, 400, 475, 450, Color.SandyBrown, 3);
  60.             Canvas.AddLine(350, 140, 370, 120, Color.SandyBrown, 3);
  61.             Canvas.AddLine(420, 120, 420, 150, Color.Red, 1);
  62.  
  63.             Canvas.AddText("Letters used: ", 20, 200, 25, 180, 50, Color.Blue);
  64.         }
  65.  
  66.         static private void GetWord(ref char[] array, out char[] newArray)
  67.         {
  68.             string secretWord = "kitten";
  69.             array = secretWord.ToCharArray();
  70.             newArray = new char[array.Length];
  71.  
  72.             for (int i = 0; i < newArray.Length; i++)
  73.             {
  74.                 newArray[i] = '-';
  75.             }
  76.         }
  77.         static private void DrawScreen(CDrawer Canvas, char input, char[] newArray, int success, ref int fail, ref bool lose)
  78.         {
  79.            
  80.             string correctGuess = new string(newArray);
  81.  
  82.             Canvas.AddText($"Letters used: {input}", 20, 200, 25, 180, 50, Color.Blue);
  83.             Canvas.AddText(correctGuess, 20, 200, 600, 200, 50, Color.Purple);
  84.  
  85.             if (success <= 0)
  86.             {
  87.                 fail++;
  88.                 if (fail == 1)
  89.                 {
  90.                     Canvas.AddCenteredEllipse(420, 155, 35, 35, Color.Beige);
  91.                 }
  92.                 if (fail == 2)
  93.                 {
  94.                     Canvas.AddCenteredEllipse(420, 200, 35, 60, Color.Beige);
  95.                 }
  96.                 if (fail == 3)
  97.                 {
  98.                     Canvas.AddLine(420, 170, 380, 210, Color.Beige, 3);
  99.                 }
  100.                 if (fail == 4)
  101.                 {
  102.                     Canvas.AddLine(420, 170, 460, 210, Color.Beige, 3);
  103.                 }
  104.                 if (fail == 5)
  105.                 {
  106.                     Canvas.AddLine(420, 220, 400, 270, Color.Beige, 3);
  107.                 }
  108.                 if (fail == 6)
  109.                 {
  110.                     Canvas.AddLine(420, 220, 440, 270, Color.Beige, 3);
  111.                     Canvas.AddText("You lose!", 80, Color.Purple);
  112.                     lose = true;
  113.                 }
  114.             }
  115.         }
  116.  
  117.         static private void GetGuess(string prompt, char[] array, out char input)
  118.         {
  119.             string guess;       //input guess string from user
  120.             input = ' ';
  121.             bool error = false;
  122.  
  123.             //repeat until input is right
  124.             do
  125.             {
  126.                 //might throw an exception
  127.                 try
  128.                 {
  129.                     //set error to be false
  130.                     error = false;
  131.  
  132.                     //user input value for letter
  133.                     Console.Write(prompt);
  134.                     guess = Console.ReadLine();
  135.                     input = Convert.ToChar(guess);
  136.  
  137.                     //check if the input is valid
  138.                     if (!Char.IsLetter(input))
  139.                     {
  140.                         //display error message if invalid input, prompt user to try again
  141.                         Console.WriteLine("An invalid character was entered, please try again.");
  142.                         error = true;
  143.                     }
  144.  
  145.                     for (int i = 0; i < array.Length; i++)
  146.                     {
  147.                         if (input == array[i])
  148.                         {
  149.                             //display error message if repeat input, prompt user to try again
  150.                             Console.WriteLine("You have already entered that letter, please try again.");
  151.                             error = true;
  152.                         }
  153.                     }
  154.                 }
  155.                 //catch any exception thrown
  156.                 catch (Exception ex)
  157.                 {
  158.                     //display error message, set error condition to true
  159.                     Console.WriteLine(ex.Message);
  160.                     error = true;
  161.                 }
  162.             }//continue looping until the input is correct
  163.             while (error);
  164.         }
  165.  
  166.         static private void CheckGuess(char input, ref char[] newArray, ref char[] answer, out int success, out bool gameWon, ref int letterGuessed)
  167.         {
  168.             success = 0;
  169.  
  170.             for (int i = 0; i < answer.Length; i++)
  171.             {
  172.                 if (input == answer[i])
  173.                 {
  174.                     newArray[i] = input;
  175.                     success++;
  176.                     letterGuessed++;
  177.                 }
  178.             }
  179.  
  180.             Console.WriteLine(newArray);
  181.             if (letterGuessed == answer.Length)
  182.             {
  183.                 gameWon = true;
  184.             }
  185.             else
  186.             {
  187.                 gameWon = false;
  188.             }
  189.             Console.WriteLine(gameWon);
  190.         }
  191.     }
  192. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top