Как написать не-словесные символы в фрагменте javascript для словесной игры в стиле «MadLibs»? - PullRequest
0 голосов
/ 14 апреля 2019

Я нахожусь на FreeCodeCamp и мне нужно создать игру в стиле "Mad Libs" (назовем ее "Word Blanks". Мне нужно создать предложение в стиле "Fill in the Blanks".

В игре "Mad Libs" вам предлагаются предложения с пропущенными словами, такими как существительные, глаголы, прилагательные и наречия. Затем вы заполняете недостающие фрагменты словами по вашему выбору так, чтобы законченное предложение имело смысл.

Подумайте над этим предложением - «Это было действительно ____, а мы ____ сами ____». В этом предложении три пропущенных фрагмента - прилагательное, глагол и наречие, и мы можем добавить слова по своему выбору, чтобы завершить его. Затем мы можем назначить законченное предложение переменной следующим образом:

var предложение = "Это было действительно" + "горячо" + ", и мы" + "смеялись" + "мы сами" + "глупо";

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

Мне потребуется использовать оператор конкатенации строк + для построения новой строки, используя предоставленные переменные: myNoun, myAdjective, myVerb и myAdverb. Затем я назначу сформированную строку переменной результата.

Мне также нужно будет учитывать пробелы в моей строке, чтобы в последнем предложении были пробелы между всеми словами. Результатом должно быть законченное предложение.

Теперь я написал следующий код для выполнения упражнения выше:

function wordBlanks(myNoun, myAdjective, myVerb, myAdverb) {

  var myNoun = "___";
  var myAdjective = "___";
  var myVerb = "___";
  var myAdverb = "___";    

  var result = "my " + myAdjective + myNoun + "loves to " + myVerb + "very " 
  + myAdverb;

  return result;
}

wordBlanks("dog", "big", "ran", "quickly");
wordBlanks ();

Но я получаю следующие ошибки при запуске теста:

// запуск тестов wordBlanks ("собака", "большой", "бег", "быстро") должен содержит все переданные в словах, разделенных не-словами (и любые дополнительные слова в вашем madlib) . wordBlanks ("кот", "маленький", «хит», «медленно») должен содержать все пропущенные в словах разделенные несловесными символами (и любыми дополнительными словами в вашем madlib). // испытания завершены

Что "все переданные в словах, разделенные несловесными символами (и любые дополнительные слова в вашем madlib)" должны быть здесь?


EDIT

Я изменил код в соответствии со следующим и теперь работает . Тест не удался, потому что слова, содержащиеся в переменных, пришлось заменить другими, а также потому, что в результате var в функции отсутствовали дополнительные слова и пробелы --->

function wordBlanks(myNoun, myAdjective, myVerb, myAdverb) {
  // Your code below this line
  var result = "I have a " + myAdjective + " bed and the " + myNoun + " always " + myVerb + " very " + myAdverb;

  // Your code above this line
  return result;
}

// Change the words here to test your function
wordBlanks("cat", "little", "hit", "slowly");

Таким образом, отсутствующими "несловесными" символами были пробелы и дополнительные части предложения (я добавил следующее, наряду с предоставленными словами: "У меня есть", "кровать и", "всегда" и "очень").

Ответы [ 3 ]

1 голос
/ 14 апреля 2019

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

Это сбой, потому что вы перезаписываете каждый из входов следующим: "___". Таким образом, входные слова теряются и не входят в выходное предложение.

1 голос
/ 14 апреля 2019

Я думаю, что вы забыли добавить пробелы вокруг прилагательного, существительного и после глагола

1 голос
/ 14 апреля 2019

Вероятно, эта часть является проблемой: myAdjective + myNoun Обратите внимание, что между ними нет пробела.Попробуйте изменить на myAdjective + " " + myNoun и посмотреть, работает ли это.

...