NUMAH LITTERS OV KITTEHS ON TEH NETZ

  

Нечестно, что 1% пользователей владеют 75% вопросов о lolcode. #OccupyMatsMug
~ user2296177

Я согласен. Без дальнейших церемоний, вот версия LOLCODE из 99 бутылок пива на стене:

 OBTW
    PRINT TEH LOLCODE VERSHUN OV N BOTTLEZ OV BER ON TEH WALL.
TLDR

HAI 1.3

  HOW IZ I COUNTDOWN YR NUMAH
    I HAS A NAUW ITZ A NUMBR
    I HAS A LEZZ ITZ A NUMBR
    IM IN YR LOOPZ NERFIN YR COWNTR TIL BOTH SAEM COWNTR AN DIFF OF 1 AN NUMAH
      NAUW R SUM OF NUMAH AN COWNTR
      LEZZ R DIFF OF NAUW AN 1
      VISIBLE SMOOSH NAUW AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
      VISIBLE SMOOSH NAUW AN " LITTERS OV KITTEHS" MKAY
      VISIBLE "WAN FALLS DOWN AN BREAKZ PAH"
      VISIBLE SMOOSH LEZZ AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
      VISIBLE ""
    IM OUTTA YR LOOPZ

    VISIBLE "1 LITTER OV KITTEHS ON TEH NETZ"
    VISIBLE "1 LITTER OV KITTEHS"
    VISIBLE "WAN FALLS DOWN AN BREAKZ PAH"
    VISIBLE "NO MOAR LITTERs OV KITTEHS ON TEH NETZ"
  IF U SAY SO

  I IZ COUNTDOWN YR 99 MKAY

KTHXBYE

Отказ от ответственности: при написании этой программы никакие фактические котята не пострадали.

Число итераций сохраняется в переменной NUMAH. Я знаю, что NUMBR - более подходящее имя, но это уже заявлено как тип.

Вышеприведенное скомпилировано с использованием последней lci , используя 1.3 спецификация (благодаря Pimgd для ссылки). Поскольку спецификация 1.3 не содержит всех признаков языка, см. 1.2 .

Я не думаю, что у LOLCODE есть шаблоны или подобные, поэтому получение всего вывода на экране немного утомительно.

Вывод:

 99 LITTERS OV KITTEHS ON TEH NETZ
99 LITTERS OV KITTEHS
WAN FALLS DOWN AN BREAKZ PAH
98 LITTERS OV KITTEHS ON TEH NETZ

и др.

 1 LITTER OV KITTEHS ON TEH NETZ
1 LITTER OV KITTEHS
WAN FALLS DOWN AN BREAKZ PAH
NO MOAR LITTERs OV KITTEHS ON TEH NETZ

Является ли этот идиоматический LOLCODE?

59 голосов | спросил Mast 13 J000000Wednesday16 2016, 17:28:42

1 ответ


44

Переменная капитализация

IT IZ PRETTY GUD LOLCODE
HOWEVEZ ME ДУМАЕТ, ЧТО ТЕЛ LOLCODEZ R EZYR 2 ЧИТАЕТ ЕСЛИ TEH VARZ R нижний регистр
ZIS BECUZ ALL CAPS HARD TOO READ
(все орфографические «ошибки», сделанные моей кошкой, которые помогли мне в этой части этого обзора)

Более серьезно, это проблема, что нет хороших синтаксических индикаторов LOLCODE. Быть «стильным» и хранить все прописные буквы - это выбор, который вы можете сделать, но лично я предпочитаю использовать имена переменных в нижнем регистре или camelCase, сохраняя при этом язык строит все кепки. Подобно SQL, это позволяет вам видеть, какие части кода являются переменными, а какие - языковыми конструкциями.

Для сравнения:

I HAS A NAUW ITZ A NUMBR
I HAS A LEZZ ITZ A NUMBR
IM IN YR LOOPZ NERFIN YR COWNTR TIL BOTH SAEM COWNTR AN DIFF OF 1 AN NUMAH
  NAUW R SUM OF NUMAH AN COWNTR
  LEZZ R DIFF OF NAUW AN 1
  VISIBLE SMOOSH NAUW AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
  VISIBLE SMOOSH NAUW AN " LITTERS OV KITTEHS" MKAY
  VISIBLE "WAN FALLS DOWN AN BREAKZ PAH"
  VISIBLE SMOOSH LEZZ AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
  VISIBLE ""
IM OUTTA YR LOOPZ

с ...

I HAS A nauw ITZ A NUMBR
I HAS A lezz ITZ A NUMBR
IM IN YR LOOPZ NERFIN YR cowntr TIL BOTH SAEM cowntr AN DIFF OF 1 AN numah
  nauw R SUM OF numah AN cowntr 
  lezz R DIFF OF nauw AN 1
  VISIBLE SMOOSH nauw AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
  VISIBLE SMOOSH nauw AN " LITTERS OV KITTEHS" MKAY
  VISIBLE "WAN FALLS DOWN AN BREAKZ PAH"
  VISIBLE SMOOSH lezz AN " LITTERS OV KITTEHS ON TEH NETZ" MKAY
  VISIBLE ""
IM OUTTA YR LOOPZ

Именование переменных

Что касается NUMAH, рассмотрели ли вы использование NUMBAH? Подобное значение, но использует более распространенное неправильное представление.

Работа со спецификацией

IM IN YR LOOPZ NERFIN YR COWNTR TIL BOTH SAEM COWNTR AN DIFF OF 1 AN NUMAH
  NAUW R SUM OF NUMAH AN COWNTR

Эта конструкция неочевидна. Вы должны были обойти spec, чтобы сделать то, что вы хотели сделать, и я думаю, что это требует объяснения. Добавить комментарий через BTW:

IM IN YR LOOPZ NERFIN YR COWNTR TIL BOTH SAEM COWNTR AN DIFF OF 1 AN NUMAH
  NAUW R SUM OF NUMAH AN COWNTR BTW workaround loop counters starting at 0

Правильность в угловых случаях

Ваша функция не проверяет, превышено ли значение, превышающее 0. Это означает, что он ложно заставляет KITTEH разорвать лапу, когда это не было необходимо.

Добавить предложение охраны в верхней части функции; вы можете выполнить раннее возвращение через GTFO.

DIFFRINT numbah AN BIGGR OF numbah AN 0
O RLY? YA RLY
    GTFO
OIC

Определение программы

OBTW
    PRINT TEH LOLCODE VERSHUN OV N BOTTLEZ OV BER ON TEH WALL.
TLDR

HAI 1.3

Помимо странной фразы (этот код печатает версию lolcode /и бутылки пива на стене?), здесь что-то еще не так: ваш комментарий перед HAI 1.3. Поэтому любой интерпретатор, загружающий ваш файл, может не знать, какую версию вы используете. Поместите свой номер версии вверху.

Возможные альтернативные диалекты

VISIBLE "NO MOAR LITTERs OV KITTEHS ON TEH NETZ"

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


Наконец, я думаю, что эта версия 99 LITTERS OV KITTEHS ON TEH NETZ не является подлинной, так как все знают, что когда KITTEHS падают, они будут в порядке. Эта версия печальна, так как все KITTEHS просто ломают лапы. Правильный LOLCODE использует кошек, а не abuse .

ответил Pimgd 13 J000000Wednesday16 2016, 17:44:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132