2017-01-08 5 views
1

Я программирую базовую игру, в которой программа получает случайное слово из словаря и отображает определенные буквы, чтобы игрок мог угадать.C# Сравнение текстовых полей

Это будет выглядеть примерно так: G_m_, пользователь вводит: Игра - Правильное

Однако то, что происходит в том, что ответ показывается только правильным, если пользователь вводит G_m_, которая точно так же, как и то, что показано ранее. Я знаю, что это имеет отношение к следующей части некорректного кода:

private void button2_Click(object sender, EventArgs e) 
    { 
     if (textBox4.Text == textBox3.Text) 
     { 
      timer1.Enabled = false;   
      timer1.Stop();     
      MessageBox.Show("You Guessed The Word !"); 

В textbox4 я храню то, что игрок вошел в textBox3 я храню случайное, частичное слово из словаря.

textBox3.Text = GetPartialWord(lines[new Random().Next(lines.Length)]); 

Любые идеи о том, как сравнить исходное слово в textBox3 и не частичное слово с этим из textBox4? Имея в виду, что я все еще хочу показать частичное слово в textBox3, чтобы пользователь мог угадать?

TextBox3: G_m_

TextBox4: Игра

Ответ: Правильно

Спасибо, R

+0

Если первое текстовое поле»Текст' G_m_', конечно, где-то в коде у вас есть ответ на вопрос? Вы можете сравнить с TextBox1.Text == TextBox2.Text'. – devRicher

+0

Я смущен. Здесь есть 3 строки ... ответ, подсказка и то, что пользователь догадывается, не так ли? И почему у вас есть ответ в текстовом поле? Кроме того, имейте в виду, что вам нужно будет использовать капитализацию и другие варианты обнаружения правильного предположения. –

+0

@ J.McCabe. Я еще не добавил подсказки к игре. Есть только ответ и то, что пользователь догадывается. Да, в отношении капитализации я удалю всю прописную букву, если только это слово не является именем или чем-то вроде этого. –

ответ

1

Вы должны хранить полное слово из словаря (не частично) и сравнить ввод данных пользователем с полным словом:

private string word; // assign it when you get word from the dictionary 

private void button2_Click(object sender, EventArgs e) 
{ 
    if (textBox4.Text == word) 
    { 
     timer1.Enabled = false;   
     timer1.Stop();     
     MessageBox.Show("You Guessed The Word !"); 
    } 
} 

Также сделайте textBox3 (одно с частичным словом) только для чтения или даже замените его меткой.

И используйте некоторые значащие имена для элементов управления. Например.

  • textBox4 =>answerTextBox
  • textBox3 =>hintTextBox
  • button2 =>answerButton
+0

Спасибо за ваше предложение! Я изменю, чтобы соответствовать моим целям. –

+0

@UnknownR прочитайте пожалуйста [прошу]. –

+0

@JeremyThompson, извините за любые недоразумения, и я буду иметь это в виду для дальнейших вопросов. Не могли бы вы посоветовать, что я мог бы улучшить в этом вопросе? –