Древесные слова, жестяные слова


35

Примечание: в этом вопросе есть несколько грубых слов.

В этом классическом наброске Monty Python есть неявная головоломка (вы также можете подготовить сценарий онлайн).

Различные фразы описаны как «древесные» или «жестяные», а одна - как «ПВХ».

Для данной фразы ответьте ее типом в соответствии со следующими списками:

woody:

gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling

tinny:

litter bin
newspaper
antelope
recidivist
tit
simpkins

PVC:

leap

правила

  • Если входные данные принадлежат одному из перечисленных выше списков, выходные данные должны быть woody, tinnyили PVC, соответственно.
  • Все входные данные строчные.
  • Любое поведение приемлемо для фраз, которые не перечислены выше.
  • Наименьшее количество байтов в ответе выигрывает.

@AJFaraday Я бы порекомендовал потратить некоторое время на сайт и ответить на некоторые вопросы, прежде чем приступить к трудной задаче написания задач. Когда вы почувствуете себя готовым, используйте «песочницу» , по крайней мере, для первых нескольких испытаний и для любых нетривиальных задач.
Адам

27
Мне вообще не нравится эта рекомендация! Пожалуйста, продолжайте публиковать задания, даже если вам не нравится отвечать. Конечно, приятно взглянуть на другие проблемы, чтобы почувствовать сайт, и я тоже рекомендую Песочницу, но, пожалуйста, продолжайте писать задачи! :)
Стьюи Гриффин

5
Итак, мы должны применить логику к эскизу Монти Пайтона? ...превосходно!
Брюс Уэйн

@BruceWayne, это именно то, что мы делаем.
AJFaraday

You may choose how to deal (or ignore) with casing in input and output.Чтобы уточнить, означает ли это, что мы можем ожидать ввода в верхнем регистре?
Οurous

Ответы:


4

Stax , 30 25 байт

ï═H♣║GÇX→ΩM+@╢^j╬♪►╨╝ô╤c\

Запустите и отладьте его

Комментируемое представление ascii таково. Я не изобрел этот алгоритм. Это бесстыдно сорвало решение Питона Джонатана Аллена .

9@                  10th character, modularly indexed
`#!z"pi0$L+%v9`X    store "tinny pvc woody" in the x register
3(                  keep only the first 3 characters ("tin")
#                   how many times the 10th char occurs in tin? (a)
y.eaI               index of "ea" in the input or -1 (b)
+                   a + b (one of -1, 0, or 1)
xj@                 modularly indexed word in x

Запустите этот


Этот ответ в порядке, но строковый литеральный компрессор содержит ошибки, иногда он дает 5-символьный результат (если вы включаете `, 7) для 4-символьных длинных строк.
Вейцзюнь Чжоу

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

Я думал, что это похоже на Jelly's, который всегда находит самое короткое представление (может быть, тогда описание следует перефразировать?)
Weijun Zhou

Не берите в голову. Я думаю, что высказывание can help youнемного запутанно, но логично.
Вейцзюнь Чжоу

Хм, да, эта формулировка вводит в заблуждение.
рекурсивный

35

Python 2 , 99 73 65 64 63 байта

lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[-2:]in'instperit'::2]

Попробуйте онлайн!

Альтернативы также с 63 байтами:

lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[-6::5]in'dtenmsr'::2]
lambda s:'PVC'*('ea'in s)or'wtoiondnyy'[s[::5]in'lrinaosit'::2]

23
Проголосовал за использование python для решения задачи monty python.
Brain Guider

10
@AnderBiguri, пожалуйста, проголосуйте на основе самого решения, а не на используемом языке.
Лохматый

24
@ Shaggy AFAIK выбор языка является одной из самых интересных частей PPCG! Мне нравится решение, потому что его в Python . У нас уже есть байты, чтобы увидеть, кто из них «выигрывает»
Brain Guider

2
Да, голоса в Codegolf должны быть только за подход, который считается лучшим или наиболее креативным, поскольку победитель определяется иным образом. Также было бы скучно, если бы все просто использовали специальные языки Codegolf вместо творчества с более распространенными
Gimli

5
Я согласен, может быть много причин, чтобы понравиться конкретный ответ. Но даже если люди так взволнованы каламбуром "Python for Monty Python", все равно грустно видеть, что новички не удосуживаются прокрутить немного вниз и выразить некоторую признательность другому ответу Python, который на самом деле более нетрадиционный и даже необычный. немного короче ...
Кирилл Л.

15

Python 2 , 62 байта

lambda n:'wtPoiVonCdn yy'[hash(n)%97%78%28%15%2+('ea'in n)::3]

Попробуйте онлайн!

Как?

В этом представлении используется тот факт, что hashфункция стабильна для строк в Python 2. Каждый допустимый ввод имеет действительный вывод. Грубое повторение по модулю %97%78%28%15%2возвращается 1для всех жестяных и ПВХ- слов, а также 0для древесных слов. Добавляя значение ('ea' in n)к нему, мы получаем 2вместо 1ввода «скачок». Вот таблица всех значений:

+----------------+----------------------+----------------+-------------+-------+
| word           | hash                 | %97%78%28%15%2 | +('ea'in n) | type  |
+----------------+----------------------+----------------+-------------+-------+
| leap           | 5971033325577305778  | 1              | 2           | PVC   |
+----------------+----------------------+----------------+-------------+-------+
| litter bin     | 2393495108601941061  | 1              | 1           | tinny |
| newspaper      | 1961680444266253688  | 1              | 1           | tinny |
| antelope       | -2930683648135325182 | 1              | 1           | tinny |
| recidivist     | -1480015990384891890 | 1              | 1           | tinny |
| tit            | -1495230934635649112 | 1              | 1           | tinny |
| simpkins       | 672871834662484926   | 1              | 1           | tinny |
+----------------+----------------------+----------------+-------------+-------+
| gone           | 3644900746337488769  | 0              | 0           | woody |
| sausage        | 4880706293475915938  | 0              | 0           | woody |
| seemly         | -8112698809316686755 | 0              | 0           | woody |
| prodding       | 7325980211772477495  | 0              | 0           | woody |
| vacuum         | -5283515051184812457 | 0              | 0           | woody |
| bound          | -6522768127315073267 | 0              | 0           | woody |
| vole           | -7823607590901614336 | 0              | 0           | woody |
| caribou        | -3644594841083815940 | 0              | 0           | woody |
| intercourse    | 2499732157679168166  | 0              | 0           | woody |
| pert           | 4142553773863848247  | 0              | 0           | woody |
| thighs         | -3490317966011085195 | 0              | 0           | woody |
| botty          | -6522767127163072681 | 0              | 0           | woody |
| erogenous zone | 7046120593231489339  | 0              | 0           | woody |
| ocelot         | -6961879712146820842 | 0              | 0           | woody |
| wasp           | -3668927459619339511 | 0              | 0           | woody |
| yowling        | 6823632481520320220  | 0              | 0           | woody |
+----------------+----------------------+----------------+-------------+-------+

Возвращаемый тип теперь извлекается из строки 'wtPoiVonCdn yy', беря каждый третий символ, начиная с вычисленного индекса.


10

JavaScript (ES6), Chrome / Edge, 54 байта

Поскольку поведение parseInt()больших входов с основанием 36 зависит от реализации , этот не работает с SpiderMonkey (Firefox).

s=>[,'PVC',,'Tinny'][parseInt(s+383,36)%69%7]||'Woody'

Попробуйте онлайн!

Как?

Хэш-функция возвращает 3 для слов Тинни, 1 для ПВХ и 0 , 4 , 5 или 6 для слов Вуди. Слова, помеченные звездочкой, неявно усекаются, поскольку parseInt () считает пробел недопустимым символом .

word           | +383           | base 36 -> decimal    | mod 69 | mod 7
---------------+----------------+-----------------------+--------+------
gone           | gone383        |           36318994131 |   54   |   5
sausage        | sausage383     |      2874302392811475 |   42   |   0
seemly         | seemly383      |        80120017777107 |    6   |   6
prodding       | prodding383    |     94214834629477200 |   12   |   5
vacuum         | vacuum383      |        88266035564499 |   60   |   4
bound          | bound383       |          916101808275 |    6   |   6
vole           | vole383        |           68967369939 |   39   |   4
caribou        | caribou383     |      1249086300450771 |   63   |   0
intercourse    | intercourse383 | 3.183324871563264e+21 |   11   |   4
pert           | pert383        |           55312791699 |   21   |   0
thighs         | thighs383      |        83184557510739 |    6   |   6
botty          | botty383       |          916052399571 |   63   |   0
erogenous zone | erogenous (*)  |        41664605989780 |    7   |   0
ocelot         | ocelot383      |        68678794158483 |   39   |   4
wasp           | wasp383        |           70309896339 |   63   |   0
yowling        | yowling383     |      3523299657958227 |   39   |   4
---------------+----------------+-----------------------+--------+------
litter bin     | litter (*)     |            1301413923 |   24   |   3
newspaper      | newspaper383   |   3081816298632183000 |    3   |   3
antelope       | antelope383    |     38980419895881940 |   24   |   3
recidivist     | recidivist383  | 129824740122576960000 |    3   |   3
tit            | tit383         |            1785109395 |   45   |   3
simpkins       | simpkins383    |    104264583727840850 |   24   |   3
---------------+----------------+-----------------------+--------+------
leap           | leap383        |           46576922259 |   57   |   1

Предыдущая версия, 59 57 байт

s=>['Woody','Tinny','PVC'][82178>>parseInt(s,35)%50%26&3]

Попробуйте онлайн!

Как?

Ниже приведены различные шаги функции для каждого входа. Результат первого по модулю является приближением в пределах точности чисел JS и математически недействителен для общения .

input          | base-35 -> dec.   | %50 | %26 | 00000000010100000100000010
---------------+-------------------+-----+-----+---------------------------
gone           |            716219 |  19 |  19 |      00------------------>
sausage        |       52042888324 |  24 |  24 | 00----------------------->
seemly         |        1492249219 |  19 |  19 |      00------------------>
prodding       |     1659396207121 |  21 |  21 |    00-------------------->
vacuum         |        1643736697 |  47 |  21 |    00-------------------->
bound          |          17573443 |  43 |  17 |        00---------------->
vole           |           1359274 |  24 |  24 | 00----------------------->
caribou        |       22625709220 |  20 |  20 |     00------------------->
intercourse    | 51532867489988450 |  48 |  22 |   00--------------------->
pert           |           1089999 |  49 |  23 |  00---------------------->
thighs         |        1549436973 |  23 |  23 |  00---------------------->
botty          |          17572449 |  49 |  23 |  00---------------------->
erogenous zone |    33308397234728 |  28 |   2 |                       00->
ocelot         |        1279159344 |  44 |  18 |       00----------------->
wasp           |           1385255 |   5 |   5 |                    00---->
yowling        |       63810499496 |  46 |  20 |     00------------------->
litter bin     |        1131250042 |  42 |  16 |         01--------------->
newspaper      |    52754217228642 |  42 |  16 |         01--------------->
antelope       |      687218151914 |  14 |  14 |           01------------->
recidivist     |  2160354371100934 |  34 |   8 |                 01------->
tit            |             36184 |  34 |   8 |                 01------->
simpkins       |     1835782971008 |   8 |   8 |                 01------->
leap           |            917900 |   0 |   0 |                         10


9

Java 8, 81 80 67 байт

s->s.charAt(2)<98?"PVC":s.matches(".*(.p.|is?t).*")?"tinny":"woody"

Regex из ответа Retina @MatrinEnder .

Попробуйте онлайн.

Оригинальный ответ: 81 80 байт

s->"anetisilire".contains(s.substring(0,2))?"tinny":s.charAt(2)<98?"PVC":"woody"

Попробуйте онлайн.

Объяснение:

s->                  // Method with String as both parameter and return-type
  "anetisilire".contains(s.substring(0,2))?
                     //  If the first two letters of the input are present in "anetisilire"
    "tinny"          //   Output "tinny"
   :s.charAt(2)<98?  //  Else-if the third character of the input is an 'a'
    "PVC"            //   Output "PVC"
   :                 //  Else:
    "woody"          //   Output "woody"

Дополнительное объяснение:

litter bin:  anetisi(li)re
newspaper:   a(ne)tisilire
antelope:    (an)etisilire
recidivist:  anetisili(re)
tit:         ane(ti)silire
simpkins:    aneti(si)lire
  1. Ни одна из первых двух букв woodyслов не присутствует в этой строке выше, ни leот leap.
  2. Ни одно из woodyслов не имеет в aкачестве третьей буквы, так что используется , чтобы получить leapк , PVCесли это не tinnyслово.
  3. Все остальное слово из woodyсписка.

2
Это действительно круто, чтобы быть в состоянии прочитать это мышление решения проблем :)
AJFaraday

6

Haskell , 61 байт

f(a:b:_)|b=='i'||elem a"ran"="tinny"|a=='l'="PVC"|1>0="woody"

Попробуйте онлайн!

Использует эту ручную логику:

  • Слова с второй буквой iили первой буквой r, aили nявляютсяtinny
  • Любое другое слово, начинающееся с l( leap)PVC
  • Все остальное woody

Линн сохранила байт, проверив leapего по первой букве.


1
Ницца! Вы можете сохранить байт, обнаружив "leap"с помощью |a=='l'="PVC".
Линн

5

QuadS , 34 32 байта

Бесстыдно использует систему Мартина Эндера , в том числе регулярное выражение от регулярного игрока в гольф Питера Норвига .

⊃⍵
ea
.p.|is?t
$
PVC
tinny
woody

Попробуйте онлайн!

⊃⍵ выбрать первое вхождение

ea «еа»,
.p.|is?t «р» в окружении букв ИЛИ «i» и «t» с необязательным «s» между ними
$ конец ввода

… Но подставляя совпадения с соответствующим одним из следующих:

PVC
tinny
woody


Эквивалентная 43-байтовая функция Dyalog APL :

'ea' '.p.|is?t' '$'S'PVC' 'tinny' 'woody'

Попробуйте все случаи онлайн!


5

C (gcc) , 81 байт

h;f(char*s){puts(strchr("HzYfPW",h=*s^s[1]<<2&127)?"Tinny":h<120?"Woody":"PVC");}

Попробуйте онлайн!

Первым делом было найти хеш-функцию, которая бы разделяла слова на категории. После некоторых раздумий я наткнулся на то (s[0] ^ (s[1] << 2)) & 0x7f, где 0x7f, конечно, там, чтобы снизить его до уровня ASCII для печати. Это дало следующую информацию (таблицы отсортированы, но не полученные строки):

Woody:
----
erogenous zone  - 45
prodding        8 56
yowling         E 69
vole            J 74
intercourse     Q 81
thighs          T 84
gone            [ 91
botty           ^ 94
bound           ^ 94
ocelot          c 99
pert            d 100
caribou         g 103
seemly          g 103
vacuum          r 114
wasp            s 115
sausage         w 119

[wg8r^JgQdT^-csE

Tinny:
----
litter bin      H 72
tit             P 80
simpkins        W 87
antelope        Y 89
recidivist      f 102
newspaper       z 122

HzYfPW

PVC:
----
leap            x 120

x

Хеш-коллизии не имеют значения, поскольку они относятся к одной и той же категории. Нам нужно только проверить, находится ли полученный хэш в строке хэшей Tinny («HzYfPW»), поскольку все хэши Woody находятся ниже хеша PVC (120). Если 120 или выше, а не Tinny слово, это должен быть ПВХ. Если не слово Tinny, а хэш меньше 120, то это должно быть хорошее, древесное слово.


4

32-битный машинный код x86, 39 байт

HexDump:

69 01 47 6f 61 2c c7 02 50 56 43 00 3a c4 74 16
c7 02 77 6f 6f 64 85 c0 78 06 c7 02 74 69 6e 6e
66 c7 42 04 79 00 c3

Хеш-функция - это умножение на «магическое» число 0x2c616f47. Есть только 6 номеров, которые можно использовать с этим кодом.

Прежде всего, это пишет PVCв выходной. Это будет перезаписано, если необходимо.

После хеширования проверяется слово PVC; проверка al = ah- я выбрал это, потому что это маленькая 2-байтовая инструкция. Затем он записывает либо, woodлибо tinn, в зависимости от знака хешированного результата. Затем это пишет y.

Код сборки:

    imul eax, [ecx], 0x2c616f47;
    mov dword ptr [edx], 'CVP';
    cmp al, ah;
    je done;
    mov dword ptr [edx], 'doow';
    test eax, eax;
    js skip;
    mov dword ptr [edx], 'nnit';
skip:
    mov word ptr [edx + 4], 'y';
done:
    ret;

4

Желе ,  27  26 байт

⁵ịe“Ṗµ»_⁼“ḣG»$ị“©LẈḊ¶$Ḍ»Ḳ¤

Монадическая ссылка, принимающая и возвращающая списки символов.

Попробуйте онлайн!

Как?

⁵ịe“Ṗµ»_⁼“ḣG»$ị“©LẈḊ¶$Ḍ»Ḳ¤ - Link: list of characters, W   e.g. "gone"  "leap"  "newspaper"
⁵                          - literal ten                  10
 ị                         - index into (1-based & modular)     'o'     'e'     'n'
   “Ṗµ»                    - compression of characters    "int"
  e                        - exists in?                          0       0       1
              $            - last two links as a monad
          “ḣG»             -   compression of characters  "leap"
         ⁼                 -   equal?                            0       1       0
        _                  - subtract                            0      -1       1
                         ¤ - nilad followed by link(s) as a nilad:
                “©LẈḊ¶$Ḍ»  -   compression of characters  "tinny PVC woody"
                         Ḳ -   split at spaces            ["tinny","PVC","woody"]
               ị           - index into (1-based & modular)     "woody" "PVC"   "tinny"


3

Грязный , 73 57 54 байта

⇖'le'⇗≐∀⭦)Ẃ'nar'⇗{=]}⭨'i'=]'woody'‼␛['tinny'‼␛('PVC'‼␛

Попробуйте онлайн!

Разъяснение:

Для аналогичной старой версии (я обновлю ее, когда перестану играть в гольф)

␛‼'CVP'⇨⇖'leap'⇗≡⊭◌⬅Ẃ'nar'⇗{=]}1ẁ'i'=]'woody'‼␛['tinny'‼␛

Тело этого состоит из:

⇖            put the input into the left stack
 'leap'      push the string "leap"
       ⇗     put that string into the right stack
        ≡    are the left and right stacks equal
         ⊭   logically negate
          ◌  skip next instruction if true
           ⬅ change direction to leftwards

Если мы в конечном итоге идем налево, то имеем:

       ⇨⇖'leap'⇗≡⊭◌ does stuff to the stacks, but isn't relevant
  'CVP'              push the string "PVC" (reversed, because we're going left)
 ‼                   print the string on the main stack
␛                    exit the program (this should wrap into the other exit, but that isn't working yet)

Иначе, это проверяет, начинается ли строка с любого из «nar»:

Ẃ           wipe the right stack
 'nar'      push the string "nar"
       ⇗    move string to right stack
        {
         =  compare the top of the left and right stacks
          ] goto matching bracket if true
        }   consuming loop while the right stack is true

Затем мы проверяем, является ли вторая буква «я»:

1        push the number 1
 ẁ       drop ^ number of elements off of the left stack
  'i'    push "i"
     =   are the top of the left and middle stacks equal
       ] goto matching bracket if true

Если они все провалится, мы сталкиваемся

'woody'   push the string "woody"
       ‼  print the string on the main stack
        ␛ exit the program

Если мы в конечном итоге прыгали, мы оборачиваемся

[          matching bracket for the goto
 'tinny'   push the string "tinny"
        ‼  print the string on the main stack
         ␛ exit the program

3

C # 97 байт

string t(string w)=>w[0]!='p'&new[]{10,9,8,3}.Contains(w.Length)?"tinny":w[0]=='l'?"pvc":"woody";

Я искал паттерн по длине строк и обнаружил, что они уникальны, за исключением длин 4 и 8. Так что я специально разбираю их, глядя на первые символы. Ну да ладно, это все же короче, чем некоторые ответы. :)


1
Вы знаете, когда Мартин Эндер нашел простое правило для этих списков, почти каждый ответ реализовал то же самое решение, так или иначе. Круто видеть оригинальный подход. :)
AJFaraday

Спасибо за ответ. :) Я не читал другие решения, прежде чем пытаться найти мое ... возможно, есть еще более элегантное решение, которое еще предстоит найти ... Я бы хотел, чтобы у всех их были уникальные длины, тогда это было бы Решение.
Ли

2
string t(string w)=>может быть просто w=>. Вы можете конвертировать 'p'и другие символы в их int представления, я думаю. Вы можете удалить
конечную точку с запятой

3

Python , 59 байт

lambda w:"wtPoiVonCdn yy"[(w*4)[9]in"tin"or(w[2]<"b")*2::3]

Попробуйте онлайн!

Используется индексирование из ответа Python от ovs, но более простая и короткая функция выбора:

Если десятая буква слова, wс переносом ( (w*4)[9]- где w*4повторяется wчетыре раза) является буквой в слове tin ( in"tin"), тогда слово жестяное , в противном случае, если третья буква ( w[2]) - это a ( <'b'), то слово - PVC в противном случае слово древесное .

... этот 59 делает ту же работу:

lambda w:"wtPoiVonCdn yy"[[(w*4)[9]in"tin",2][w[2]<"b"]::3]


2

Пакет, 145 байт

@set/ps=
@if %s%==leap echo PVC&exit/b
@for %%s in (a n r)do @if %s:~,1%==%%s echo tinny&exit/b
@if %s:~1,1%==i echo tinny&exit/b
@echo woody

Принимает участие в STDIN. Объяснение: После проверки leapжестяные слова начинаются либо с одной из букв a, nлибо со rвторой буквы i.


2

CJam , 35 байт

1b_856%338<\418=-"woodytinnyPVC"5/=

Попробуйте онлайн!

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

объяснение

1b     e# Sum the code points of the input string.
       e# The result is unique for each input, except "pert" and "wasp" which
       e# both sum to 443. But they're both woody, so that's fine.
_      e# Duplicate.
856%   e# Take the sum modulo 856.
338<   e# Check whether the result is less than 338. That's true for all
       e# tinny words.
\      e# Swap with the other copy of the sum.
418=   e# Check whether the sum is equal to 418, which identifies "leap".
-      e# Subtract. Gives -1 for "leap", 1 for tinny words and 0 for woody words.
"woodytinnyPVC"5/
       e# Create the list ["woody" "tinny" "PVC"].
       e# Select the correct string.

1

Excel, 81 байт

=IF(ISNUMBER(FIND(LEFT(A1,2),"anetisilire")),"tinny",IF(A1="leap","PVC","woody"))

Использование метода anetisilire.



1

JavaScript, 60 , 50

РЕДАКТИРОВАТЬ Я видел все другие ответы регулярных выражений. Я думаю, я просто слепой. Во всяком случае, вот один, используя тот же регулярное выражение

i=="leap"?"PVC":/.p.|is*t/.test(i)?"tinny":"woody"

Кроме того, теперь, это бьет другой ответ JS

Отрывок:

let test = i => i=="leap"?"PVC":/.p.|is*t/.test(i)?"tinny":"woody"

let woody = `gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling`;
console.log("THESE SHOULD BE woody");
woody.split("\n").forEach(el => console.log(test(el)));
let tinny = `litter bin
newspaper
antelope
recidivist
tit
simpkins`;
console.log("THESE SHOULD BE tinny");
tinny.split("\n").forEach(el => console.log(test(el)));
console.log("THIS SHOULD BE PVC");
console.log(test("leap"));

Старый ответ

Я не видел ничего с регулярным выражением еще, поэтому я решил попробовать

i=="leap"?"PVC":/[gyuz]|[or][tl]|as/.test(i)?"woody":"tinny"

Не уверен, что это 60 или более, потому что я не включил оператор возврата. Добавлю фрагмент когда я попаду на мой компьютер

Изменить: фрагмент

let test = i => i=="leap"?"PVC":/[gyuz]|[or][tl]|as/.test(i)?"woody":"tinny"

let woody = `gone
sausage
seemly
prodding
vacuum
bound
vole
caribou
intercourse
pert
thighs
botty
erogenous zone
ocelot
wasp
yowling`;
console.log("THESE SHOULD BE woody");
woody.split("\n").forEach(el => console.log(test(el)));
let tinny = `litter bin
newspaper
antelope
recidivist
tit
simpkins`;
console.log("THESE SHOULD BE tinny");
tinny.split("\n").forEach(el => console.log(test(el)));
console.log("THIS SHOULD BE PVC");
console.log(test("leap"));

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.