Пытаюсь написать мини игрушку, смысл которой угадывать слова - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день.

Правила игры.
  1. Дано несколько букв (8шт)
  2. Нажимая на эти буквы можно составить слово.
  3. После составления слова, если таковое имеется в БД (Вместо бд массив string[]), слово вставляется в соответсвтующее поле (в моем случае label)
Проблема. У меня получается, так что нужно писать очень много кода, скорее всего, есть другой вариант написания подобной программы, вот я и хочу поинтересоваться, может кто сможет мне помочь. Допустим, у меня есть код, который при нажатии на кнопку с буквой в нижнем ряду, переносит ее в свободное место в верхнем. Но для этого, мне приходится на каждую кнопку писать 8мь вариантов условия else if.
  public void CheckButton(string butt_click) //Проверка какая кнопка нажата
        {
            // кнопка 1
            if (button1_1.Text == "" & butt_click=="button1_click")
            {
                button1_1.Text = button1.Text;
                button1_1.Enabled = true;
                button1.Enabled = false;
                button1.Text = x;
                butt1 = 1;

            }
            else if (button2_2.Text == "" & butt_click == "button1_click")
            {
                button2_2.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;              
                button2_2.Enabled = true;
                butt1 = 2;
               
            }
            else if (button3_3.Text == "" & butt_click == "button1_click")
            {
                button3_3.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;           
                button3_3.Enabled = true;
                butt1 = 3;
               
            }
            else if (button4_4.Text == "" & butt_click == "button1_click")
            {
                button4_4.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;         
                button4_4.Enabled = true;
                butt1 = 4;
                
            }
            else if (button5_5.Text == "" & butt_click == "button1_click")
            {
                button5_5.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;            
                button5_5.Enabled = true;
                butt1 = 5;
                
            }
            else if (button6_6.Text == "" & butt_click == "button1_click")
            {
                button6_6.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;              
                button6_6.Enabled = true;
                butt1 = 6;
                
            }
            else if (button7_7.Text == "" & butt_click == "button1_click")
            {
                button7_7.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;           
                button7_7.Enabled = true;
                butt1 = 7;
               
            }
            else if (button8_8.Text == "" & butt_click == "button1_click")
            {
                button8_8.Text = button1.Text;
                button1.Enabled = false;
                button1.Text = x;            
                button8_8.Enabled = true;
                butt1 = 8;
                
            }
То есть я проверяю если в верхнем ряду, button.text=="", то можно вставить букву в эту кнопку, если !=, то проверяю следующую и т.д. Я вынес это в отдельную функцию. И передаю в нее еще и номер кнопки, реализованный параметром butt_click. (При нажатии на кнопку вызывается функция ChekButton, примерно таким кодом private void
button3_Click(object sender, EventArgs e)
        {
            CheckButton("button3_click");
        }
А когда допустим буква выбрана не правильно, то по щелчку на ней в верхнем ряду, она должна вернуться на свое место в нижний. Для этого еще более геморойный код функции ButtonReturn
public void ButtonReturn( string butt_click)
        {
            // кнопка 1_1
            if (butt_click == "button1_1_click" & butt1 == 1)
            {
                button1.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button1.Enabled = true;
                butt1 = 0;
               
            }
            else if (butt_click == "button1_1_click" & butt1 == 2)
            {
                button2.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button2.Enabled = true;
                butt1 = 0;
 
            }
            else if (butt_click == "button1_1_click" & butt1 == 3)
            {
                button3.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button3.Enabled = true;
                butt1 = 0;
            }
            else if (butt_click == "button1_1_click" & butt1 == 4)
            {
                button4.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button4.Enabled = true;
                butt1 = 0;
            }
            else if (butt_click == "button1_1_click" & butt1 == 5)
            {
                button5.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button5.Enabled = true;
                butt1 = 0;
            }
            else if (butt_click == "button1_1_click" & butt1 == 6)
            {
                button6.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button6.Enabled = true;
                butt1 = 0;
            }
            else if (butt_click == "button1_1_click" & butt1 == 7)
            {
                button7.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button7.Enabled = true;
                butt1 = 0;
            }
            else if (butt_click == "button1_1_click" & butt1 == 8)
            {
                button8.Text = button1_1.Text;
                button1_1.Text = x;
                button1_1.Enabled = false;
                button8.Enabled = true;
                butt1 = 0;
            }
Он проверяет какая кнопка в верхнем ряду нажата, и возвращает ее в соответствующую кнопку в нижнем ряду (узнает куда благодаря переменным butt1 - butt 8) Также если, не сложно, подскажите как можно реализовать механизм сложения нажатых букв в слово. Я думал использовать массив char[], но не знаю, как в него добавить элементы, то есть нажата любая кнопка нижнего ряда, и ее значение button.text заносится в char[i], где i первое свободно место, при этом, при нажатии кнопки в верхнем, из char, должно удалятся значение i, соответствующее порядковому номеру кнопки нажатой в верхнем ряду. И после всего этого, при нажатии кнопки "Проверка" циклом foreach я буду проверять наличие слова получившегося в char[], в массиве string[]. Исходняки, и скриншоты во вложениях.
Вообщем мне очень интересно увидеть другие решения поставленной мной задачи, буду очень признателен.

Решение задачи: «Пытаюсь написать мини игрушку, смысл которой угадывать слова»

textual
Листинг программы
public void Button_Click(object sender, EventArg e)
{
   var btn = (Button) sender;
   btn.Text = button1.Text;
   button1.Enabled = false;
   button1.Text = x;              
   btn.Enabled = true;
   butt1 = 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5
Похожие ответы