Я с радостью помогу вам в этом, но сначала я должен сказать, что это сообщество не для обучения основам. Я предлагаю вам посетить этот сайт и следовать их инструкциям, чтобы узнать больше об обработке и программировании в целом.
Я настоятельно рекомендую.
Вот некоторые основные вещи, которые выможет или не может знать об обработке:
Обработка имеет 2 очень важных метода: setup()
и draw()
.
Когда вы запускаете вашу программу, Обработка сначала читает все глобальные переменные. Затем он читает setup()
, а затем draw()
. Последний является управляемым циклом, который выполняется фиксированное число раз в секунду. Именно здесь происходит большая часть магии.
setup()
в основном используется для «подготовки» всего, поэтому цикл draw()
готов к работе.
Я посмотрел код кодера,Он принимает входные данные (буквы, слова и т. Д.) И выдает выходные данные (код Морзе). Кодировщик должен быть наоборот: вы даете программе азбуку Морзе, и она дает вам перевод.
Теперь, к рассматриваемой проблеме:
Помните, когда я сказал "Не просто говорите, что вы получили ошибку, скажите нам, что говорит ошибка ". Это очень помогает. Я запустил ваш код в программе Processing, и это не было проблемой, хотя я был первым (ну, я думал, что это была проблема, но не та, которая вызвала ваш код в этот момент).
Здесьпроблемы, которые приводят к краху вашего кода, и способы их решения. Надеемся, что прочтение этого поможет вам узнать об обработке, но, на самом деле, изучите учебники.
Переменная TextInput
не существует. Вместо этого вы назвали его MorseCodeInput
, но не изменили его в коде. Существует 2 различных простых исправления, выберите одно из них:
- Вы можете переименовать переменную
MorseCodeInput
как TextInput
. - Вы можете переименовать каждый экземпляр
TextInput
какMorseCodeInput
в методе decodeMorseCode
.
Где вы должны использовать TextOutput
, вместо этого вы использовали MorseCode
. Вы должны переименовать их как TextOutput
в этих двух местах:
MorseCode += MorseCodeArray[j] + " " ;
=> TextOutput += MorseCodeArray[j] + " " ;
return MorseCode;
=> return TextOutput;
В методе setup()
инициализируйте ввод для некоторого фактического кода Морзе.
textInput = "_._. ___ _. __. ._. ._ _ .._ ._.. ._ _ .. ___ _. ...";
должен сделать это.
Переменная textOutput должна быть результатом перевода. В методе setup()
используйте его следующим образом:
textOutput = decodeMorseCode(textInput);
Yay! Без падений! Но выхода тоже нет? Почему? Есть две причины:
- Во-первых, потому что алгоритм ищет буквы, и мы дали ему точки и строки.
- Во-вторых, потому что он делает это по одному символу за раз, что не делаетсмысл для азбуки Морзе, где буква состоит из нескольких точек и линий (по одному символу в каждой).
Итак ... Вот где вы стоите. Код выполняется, но вам все еще нужно решить несколько проблем. Я дам вам один из них, потому что это будет довольно сложно понять новичку.
Вот как получить массив строк для вашего азбуки Морзе. В функции decodeMorseCode()
инициализируйте переменную TextInput
следующим образом:
String[] TextInput = split(in_string, ' ');
А также эти строки:
for (int i=0; i<TextInput.length; i++) {
// ...
if (String.valueOf(TextInput[i]).equals(AlphabetArray[j])) {
У вас все еще не будет вывода, но теперь вы толькоНужно выяснить, как сравнить код Морзе с массивом кода Морзе, чтобы получить соответствующую букву, а не наоборот. Дайте мне знать, если вы попытаетесь потерпеть неудачу, и я помогу вам.
Веселитесь.