WOLF 2018 Ответов: 1

Как проверить список на соответствие намберам


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

заранее спасибо.

Что я уже пробовал:

<pre>
            Num.Add(aa);
            Num.Add(bb);
            Num.Add(cc);
            Num.Add(dd);
            Num.Add(ee);
            won.Add(a);
            won.Add(b);
            won.Add(c);
            won.Add(d);
            won.Add(e);
            Check();
        }
        public static List<int> Num = new List<int>();
        public static List<int> won = new List<int>();

        private void Check()
        {
            int s = 0;
            int Q = 0;
            while(Q < 4)
            {
                while (s < 4)
                {
                    if (Num[Q] == won[s])
                    {
                        Match++;
                    }
                    else
                    {
                        s++;
                    }
                }
                s = 0;
                Q++;
            }
            CheckPay();
        }

Patrice T

Покажите код, который мы можем выполнить, фактический вывод и ожидаемый вывод.

WOLF 2018

это форма Windows, так что это очень много кода. поэтому я добавил всю необходимую информацию. просто составьте два списка и попробуйте поместить в них 5 чисел, а затем проверьте, соответствует ли любое из 5 чисел в списке 1 Списку 2. это все, что я пытаюсь сделать.

Patrice T

Сделайте небольшой фрагмент кода, который будет подавать правильные значения в массивы и сообщать ваш фактический результат и ожидаемые результаты.

1 Ответов

Рейтинг:
4

OriginalGriff

Компиляция не означает, что ваш код верен! :смеяться:
Подумайте о процессе разработки как о написании электронного письма: успешная компиляция означает, что вы написали письмо на правильном языке - например, на английском, а не на немецком, - а не то, что письмо содержало сообщение, которое вы хотели отправить.

Итак, теперь вы входите во вторую стадию разработки (на самом деле это четвертая или пятая, но вы перейдете к более ранним стадиям позже): тестирование и отладка.

Начните с рассмотрения того, что он делает, и как это отличается от того, что вы хотели. Это важно, потому что это дает вам информацию о том, почему он это делает. Например, если программа предназначена для того, чтобы позволить пользователю ввести число, а затем удвоить его и напечатать ответ, то если бы ввод / вывод был таким:

Input   Expected output    Actual output
  1            2                 1
  2            4                 4
  3            6                 9
  4            8                16
Тогда совершенно очевидно, что проблема заключается в бите, который удваивает его - он не прибавляет себя к себе или умножает его на 2, он умножает его на себя и возвращает квадрат входного сигнала.
Таким образом, вы можете посмотреть на код, и очевидно, что он находится где-то здесь:
private int Double(int value)
   {
   return value * value;
   }

Как только у вас появится идея, что может пойти не так, начните использовать отладчик, чтобы выяснить, почему. Поместите точку останова в первую строку метода и запустите приложение. Когда он достигнет точки останова, отладчик остановится и передаст управление вам. Теперь вы можете запускать свой код построчно (так называемый "одноступенчатый") и просматривать (или даже изменять) содержимое переменных по мере необходимости (черт возьми, вы даже можете изменить код и повторить попытку, если вам это нужно).
Подумайте о том, что должна делать каждая строка кода перед ее выполнением, и сравните это с тем, что она действительно делала, когда вы использовали кнопку "Step over" для выполнения каждой строки по очереди. Он сделал то, что вы ожидали? Если да, то переходите к следующей строке.
Если нет, то почему? Чем это отличается?
Надеюсь, это поможет вам определить, в какой части этого кода есть проблема и в чем она заключается.
Это навык, и его стоит развивать, поскольку он помогает вам как в реальном мире, так и в развитии. И, как и все навыки, он только улучшается при использовании!


BillWoodruff

еще один ответ, который я хотел бы, чтобы каждый, кто публикует здесь свой вопрос, прочитал !