DanDelatt

Hangman1

Dec 29th, 2018
625
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace Hangman
  4. {
  5.     class Program
  6.     {
  7.  
  8.         static string[] mistakesChar = new string[7];
  9.        
  10.         static string head = "O";
  11.         static string neck = "|";
  12.         static string arm1 = "/";
  13.         static string arm2 = "\\";
  14.         static string body = "|";
  15.         static string leg1 = "/";
  16.         static string leg2 = "\\";
  17.  
  18.         static int currentMistakes = 0;
  19.         static string[] words = new string[] { "about", "above", "across", "act", "active", "activity", "add", "afraid", "after", "again", "age", "ago", "agree", "air", "all", "alone", "along", "already", "always", "am", "amount", "an", "and", "angry", "another", "answer", "any", "anyone", "anything", "anytime", "appear", "apple", "are", "area", "arm", "army", "around", "arrive", "art", "as", "ask", "at", "attack", "aunt", "autumn", "away", "baby", "base", "back", "bad", "bag", "ball", "bank", "basket", "bath", "be", "bean", "bear", "beautiful", "beer", "bed", "bedroom", "behave", "before", "begin", "behind", "bell", "below", "besides", "best", "better", "between", "big", "bird", "birth", "birthday", "bit", "bite", "black", "bleed", "block", "blood", "blow", "blue", "board", "boat", "body", "boil", "bone", "book", "border", "born", "borrow", "both", "bottle", "bottom", "bowl", "box", "boy", "branch", "brave", "bread", "break", "breakfast", "breathe", "bridge", "bright", "bring", "brother", "brown", "brush", "build", "burn", "business", "bus", "busy", "but", "buy", "by", "cake", "call", "can", "candle", "cap", "car", "card", "care", "careful", "careless", "carry", "case", "cat", "catch", "central", "century", "certain", "chair", "chance", "change", "chase", "cheap", "cheese", "chicken", "child", "children", "chocolate", "choice", "choose", "circle", "city", "class", "clever", "clean", "clear", "climb", "clock", "cloth", "clothes", "cloud", "cloudy", "close", "coffee", "coat", "coin", "cold", "collect", "colour", "comb", "come", "comfortable", "common", "compare", "complete", "computer", "condition", "continue", "control", "cook", "cool", "copper", "corn", "corner", "correct", "cost", "contain", "count", "country", "course", "cover", "crash", "cross", "cry", "cup", "cupboard", "cut", "dance", "dangerous", "dark", "daughter", "day", "dead", "decide", "decrease", "deep", "deer", "depend", "desk", "destroy", "develop", "die", "different", "difficult", "dinner", "direction", "dirty", "discover", "dish", "do", "dog", "door", "double", "down", "draw", "dream", "dress", "drink", "drive", "drop", "dry", "duck", "dust", "duty", "each", "ear", "early", "earn", "earth", "east", "easy", "eat", "education", "effect", "egg", "eight", "either", "electric", "elephant", "else", "empty", "end", "enemy", "enjoy", "enough", "enter", "equal", "entrance", "escape", "even", "evening", "event", "ever", "every", "everyone", "exact", "everybody", "examination", "example", "except", "excited", "exercise", "expect", "expensive", "explain", "extremely", "eye", "face", "fact", "fail", "fall", "false", "family", "famous", "far", "farm", "father", "fast", "fat", "fault", "fear", "feed", "feel", "female", "fever", "few", "fight", "fill", "film", "find", "fine", "finger", "finish", "fire", "first", "fit", "five", "fix", "flag", "flat", "float", "floor", "flour", "flower", "fly", "fold", "food", "fool", "foot", "football", "for", "force", "foreign", "forest", "forget", "forgive", "fork", "form", "fox", "four", "free", "freedom", "freeze", "fresh", "friend", "friendly", "from", "front", "fruit", "full", "fun", "funny", "furniture", "further", "future", "game", "garden", "gate", "general", "gentleman", "get", "gift", "give", "glad", "glass", "go", "goat", "god", "gold", "good", "goodbye", "grandfather", "grandmother", "grass", "grave", "great", "green", "grey", "ground", "group", "grow", "gun", "hair", "half", "hall", "hammer", "hand", "happen", "happy", "hard", "hat", "hate", "have", "he", "head", "healthy", "hear", "heavy", "hello", "help", "heart", "heaven", "height", "hen", "her", "here", "hers", "hide", "high", "hill", "him", "his", "hit", "hobby", "hold", "hole", "holiday", "home", "hope", "horse", "hospital", "hot", "hotel", "house", "how", "hundred", "hungry", "hour", "hurry", "husband", "hurt", "ice", "idea", "important", "increase", "inside", "into", "introduce", "invent", "iron", "invite", "is", "island", "jelly", "job", "join", "juice", "jump", "just", "keep", "key", "kill", "kind", "king", "kitchen", "knee", "knife", "knock", "know", "ladder", "lady", "lamp", "land", "large", "last", "late", "lately", "laugh", "lazy", "lead", "leaf", "learn", "leave", "leg", "left", "lend", "length", "less", "lesson", "let", "letter", "library", "lie", "life", "light", "like", "lion", "lip", "list", "listen", "little", "live", "lock", "lonely", "long", "look", "lose", "lot", "love", "low", "lower", "luck", "machine", "main", "make", "male", "man", "many", "map", "mark", "market", "marry", "matter", "may", "me", "meal", "mean", "measure", "meat", "medicine", "meet", "member", "mention", "method", "middle", "milk", "million", "mind", "minute", "miss", "mistake", "mix", "model", "modern", "moment", "money", "monkey", "month", "moon", "more", "morning", "most", "mother", "mountain", "mouth", "move", "much", "music", "must", "my", "name", "narrow", "nation", "nature", "near", "nearly", "neck", "need", "needle", "neighbour", "neither", "net", "never", "new", "news", "newspaper", "next", "nice", "night", "nine", "no", "noble", "noise", "none", "nor", "north", "nose", "not", "nothing", "notice", "now", "number", "obey", "object", "ocean", "of", "off", "offer", "office", "often", "oil", "old", "on", "one", "only", "open", "opposite", "or", "orange", "order", "other", "our", "out", "outside", "over", "own", "page", "pain", "paint", "pair", "pan", "paper", "parent", "park", "part", "partner", "party", "pass", "past", "path", "pay", "peace", "pen", "pencil", "people", "pepper", "per", "perfect", "period", "person", "petrol", "photograph", "piano", "pick", "picture", "piece", "pig", "pin", "pink", "place", "plane", "plant", "plastic", "plate", "play", "please", "pleased", "plenty", "pocket", "point", "poison", "police", "polite", "pool", "poor", "popular", "position", "possible", "potato", "pour", "power", "present", "press", "pretty", "prevent", "price", "prince", "prison", "private", "prize", "probably", "problem", "produce", "promise", "proper", "protect", "provide", "public", "pull", "punish", "pupil", "push", "put", "queen", "question", "quick", "quiet", "quite", "radio", "rain", "rainy", "raise", "reach", "read", "ready", "real", "really", "receive", "record", "red", "remember", "remind", "remove", "rent", "repair", "repeat", "reply", "report", "rest", "restaurant", "result", "return", "rice", "rich", "ride", "right", "ring", "rise", "road", "rob", "rock", "room", "round", "rubber", "rude", "rule", "ruler", "run", "rush", "sad", "safe", "sail", "salt", "same", "sand", "save", "say", "school", "science", "scissors", "search", "seat", "second", "see", "seem", "sell", "send", "sentence", "serve", "seven", "several", "sex", "shade", "shadow", "shake", "shape", "share", "sharp", "she", "sheep", "sheet", "shelf", "shine", "ship", "shirt", "shoe", "shoot", "shop", "short", "should", "shoulder", "shout", "show", "sick", "side", "signal", "silence", "silly", "silver", "similar", "simple", "single", "since", "sing", "sink", "sister", "sit", "six", "size", "skill", "skin", "skirt", "sky", "sleep", "slip", "slow", "small", "smell", "smile", "smoke", "snow", "so", "soap", "sock", "soft", "some", "someone", "something", "sometimes", "son", "soon", "sorry", "sound", "soup", "south", "space", "speak", "special", "speed", "spell", "spend", "spoon", "sport", "spread", "spring", "square", "stamp", "stand", "star", "start", "station", "stay", "steal", "steam", "step", "still", "stomach", "stone", "stop", "store", "storm", "story", "strange", "street", "strong", "structure", "student", "study", "stupid", "subject", "substance", "successful", "such", "sudden", "sugar", "suitable", "summer", "sun", "sunny", "support", "sure", "surprise", "sweet", "swim", "sword", "table", "take", "talk", "tall", "taste", "taxi", "tea", "teach", "team", "tear", "telephone", "television", "tell", "ten", "tennis", "terrible", "test", "than", "that", "the", "their", "then", "there", "therefore", "these", "thick", "thin", "thing", "think", "third", "this", "though", "threat", "three", "tidy", "tie", "title", "to", "today", "toe", "together", "tomorrow", "tonight", "too", "tool", "tooth", "top", "total", "touch", "town", "train", "tram", "travel", "tree", "trouble", "true", "trust", "twice", "try", "turn", "type", "uncle", "under", "understand", "unit", "until", "up", "use", "useful", "usual", "usually", "vegetable", "very", "village", "voice", "visit", "wait", "wake", "walk", "want", "warm", "wash", "waste", "watch", "water", "way", "we", "weak", "wear", "weather", "wedding", "week", "weight", "welcome", "well", "west", "wet", "what", "wheel", "when", "where", "which", "while", "white", "who", "why", "wide", "wife", "wild", "will", "win", "wind", "window", "wine", "winter", "wire", "wise", "wish", "with", "without", "woman", "wonder", "word", "work", "world", "worry", "worst", "write", "wrong", "year", "yes", "yesterday", "yet", "you", "young", "your", "zero", "zoo", };
  20.         static string currentWord;
  21.         static char[] charWord;
  22.         static char[] guessedLettersWrong = new char[] { };
  23.  
  24.         static void Main(string[] args)
  25.         {
  26.             Console.ForegroundColor = ConsoleColor.White;
  27.             PickWord();
  28.             Array.Resize(ref charWord, currentWord.Length);
  29.             for (int i = 0; i < charWord.Length; i++) charWord[i] = '-';
  30.  
  31.             DrawHangman(currentMistakes);
  32.  
  33.             while (true)
  34.             {
  35.                 char currentChar = ' ';
  36.                 bool correctChar = false;
  37.                 while (!correctChar)
  38.                 {
  39.                     try
  40.                     {
  41.                         currentChar = Console.ReadLine()[0];
  42.                     }
  43.                     catch
  44.                     {
  45.                         Console.WriteLine("Invalid letter!");
  46.                         System.Threading.Thread.Sleep(1000);
  47.                         currentMistakes -= 1;
  48.                     }
  49.                     correctChar = true;
  50.                 }
  51.  
  52.                 bool letterRight = false;
  53.                 for (int i = 0; i < currentWord.Length; i++)
  54.                 {
  55.                     if (currentChar == currentWord[i])
  56.                     {
  57.                         letterRight = true;
  58.                         charWord[i] = currentChar;
  59.                     }
  60.                 }
  61.                 if (!letterRight)
  62.                 {
  63.                     currentMistakes += 1;
  64.                     Array.Resize(ref guessedLettersWrong, guessedLettersWrong.Length + 1);
  65.                     guessedLettersWrong[guessedLettersWrong.Length - 1] = currentChar;
  66.                 }
  67.                 DrawHangman(currentMistakes);
  68.                 bool solved = true;
  69.                 for (int i = 0; i < charWord.Length; i++)
  70.                 {
  71.                     if (charWord[i] == '-')
  72.                     {
  73.                         solved = false;
  74.                     }
  75.                 }
  76.                 if (solved == true)
  77.                 {
  78.                     Console.ForegroundColor = ConsoleColor.Green;
  79.                     Console.WriteLine("You win!");
  80.                     Console.ForegroundColor = ConsoleColor.White;
  81.                     break;
  82.                 }
  83.                 if (currentMistakes >= 7)
  84.                 {
  85.                     Console.ForegroundColor = ConsoleColor.Red;
  86.                     Console.WriteLine("You lost!");
  87.                     Console.ForegroundColor = ConsoleColor.White;
  88.                     Console.WriteLine("The word was: {0}", currentWord);
  89.                     break;
  90.                 }
  91.             }
  92.             Console.WriteLine("vk.com/dandelay");
  93.             Console.ReadLine();
  94.         }
  95.  
  96.         static void PickWord()
  97.         {
  98.             Random rnd = new Random();
  99.             int word = rnd.Next(0, words.Length - 1);
  100.             currentWord = words[word];
  101.         }
  102.  
  103.         static void DrawHangman(int mistakes)
  104.         {
  105.             Console.Clear();
  106.             for (int i = 0; i < mistakesChar.Length; i++)
  107.                 mistakesChar[i] = " ";
  108.             if (mistakes > 0)
  109.                 mistakesChar[0] = head;
  110.             if (mistakes > 1)
  111.                 mistakesChar[1] = neck;
  112.             if (mistakes > 2)
  113.                 mistakesChar[2] = arm1;
  114.             if (mistakes > 3)
  115.                 mistakesChar[3] = arm2;
  116.             if (mistakes > 4)
  117.                 mistakesChar[4] = body;
  118.             if (mistakes > 5)
  119.                 mistakesChar[5] = leg1;
  120.             if (mistakes > 6)
  121.                 mistakesChar[6] = leg2;
  122.             Console.WriteLine();
  123.             Console.WriteLine(" ######");
  124.             Console.WriteLine(" #    " + mistakesChar[0]);
  125.             Console.WriteLine(" #   {0}{1}{2}", mistakesChar[2], mistakesChar[1], mistakesChar[3]);
  126.             Console.WriteLine(" #    {0}", mistakesChar[4]);
  127.             Console.WriteLine(" #   {0} {1}", mistakesChar[5], mistakesChar[6]);
  128.             Console.WriteLine(" #");
  129.             Console.WriteLine("####");
  130.  
  131.             Console.WriteLine();
  132.             Console.Write("You guessed: ");
  133.             for (int i = 0; i < charWord.Length; i++) Console.Write(charWord[i]);
  134.             Console.WriteLine();
  135.             try
  136.             {
  137.                 Console.Write("You didnt guess: ");
  138.                 for (int i = 0; i < guessedLettersWrong.Length; i++) Console.Write(guessedLettersWrong[i] + " ");
  139.                 Console.WriteLine();
  140.             }
  141.             catch
  142.             {
  143.                 return;
  144.             }
  145.         }
  146.     }
  147. }
RAW Paste Data