猜单词游戏

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.IO;
 6 using System.Diagnostics;
 7 
 8 namespace GuessWord
 9 {
10     class Program
11     {
12         static int wrongGuess, lettersLeft;
13 
14         static void Main(string[] args)
15         {
16             string wordToGuess = GetWordToGuess();
17 
18             char[] maskedWord = GetHiddenLetters(wordToGuess, '-');
19 
20             lettersLeft = wordToGuess.Length;
21             char userGuess;
22 
23             wrongGuess = 3;//可错误三次
24 
25             while (wrongGuess > 0 && lettersLeft > 0)//错误次数没用完且还有未猜出次数
26             {
27                 DisplayCharacters(maskedWord);
28 
29                 Console.WriteLine("Enter a letter?");
30                 userGuess = char.Parse(Console.ReadLine());
31 
32                 maskedWord = CheckGuess(userGuess, wordToGuess, maskedWord);
33             }
34 
35             Console.WriteLine("Well done! Thanks for playing.");
36             Console.ReadLine();
37         }
38 
39         static string GetWordToGuess()
40         {
41             Random number = new Random();
42             int wordNumber = number.Next(0, 9);//产生0-9之间的随机数
43 
44             string[] words = { "picture", "chinese", "school", "question", "include", "simple", "difficult", "understand", "necessary", "support" };
45 
46             string selectWord = words[wordNumber];//被猜单词
47             return selectWord;
48         }
49 
50         static char[] GetHiddenLetters(string word, char mask)
51         {
52             char[] hidden = new char[word.Length];
53 
54             for (int i = 0; i < word.Length; i++)
55             {
56                 hidden[i] = mask;
57             }
58 
59             return hidden;
60         }
61 
62         static void DisplayCharacters(char[] characters)
63         {
64             foreach (char letter in characters)
65             {
66                 Console.Write(letter);
67             }
68             Console.WriteLine();
69         }
70 
71         static char[] CheckGuess(char letterToCheck, string word, char[] characters)
72         {
73             if (word.Contains(letterToCheck))    
74             {
75                 for (int i = 0; i < word.Length; i++)
76                 {
77                     if (word[i] == letterToCheck)
78                     {
79                         characters[i] = word[i];
80                         lettersLeft--;//猜对一个单词,空缺字母减一
81                     }
82                 }
83             }
84             else
85             {
86                 wrongGuess--;//错误一次,可错误次数减一
87             }
88 
89             return characters;
90         }
91     }
92 }
posted @ 2017-03-14 19:43  khun  阅读(131)  评论(0)    收藏  举报