99 - это язык программирования, который я изобрел ранее для этой задачи. Напишите переводчик для 99 . (Придумано, но никогда не нужно было реализовывать, благодаря полдюжине из вас.;)) Полная языковая спецификация находится в этом вызове, поэтому я не потрудился опубликовать все это здесь.
В 99 вы можете печатать отдельные символы ASCII на стандартный вывод, но из-за ограничений языка не всегда понятно, как печатать конкретный символ настолько кратко, насколько это возможно.
Для каждого из 128 символов ASCII напишите программу 99, которая не требует ввода и выводит этот единственный символ. Вы можете написать любой или все эти ответы вручную или написать другую программу (на любом языке, которая вам нравится), чтобы сгенерировать их для вас.
Сумма символов в каждой из ваших 128 99 программ - это ваш счет. Самый низкий балл побеждает. Новые строки считаются одним символом.
Помните, что в 99 только переменные четного размера, такие как 9999
выходные символы ASCII (переменные нечетного размера, выдают целые числа). Их значение делится на 9, а затем принимается mod 128, поэтому значения не обязательно должны находиться в определенном диапазоне для отображения в символы ASCII. Например, все внутренние значения 297, 1449 и -855 соответствуют символу, !
потому что, когда они разделены на 9 и взяты по модулю 128, все они становятся 33, что является кодом символа для !
.
Если вам нужен переводчик для 99 , я бы предложил ответ Mac на Python .
Я знаю, что сказал, что моя следующая задача будет более интерактивной, но я все еще работаю над этой темой.
источник
Разнообразие техник, 42109
Для чисел вместо вычисления большого символа ASCII я просто вычислил значение числа. Вы только сказали, что можете выводить персонажа, так что это все равно должно работать.РЕДАКТИРОВАТЬ: переключил числа, чтобы использовать символы ASCII, так что не обращайте на это внимания. Я оставил исходный числовой код в коде Java, но закомментировал на тот случай, если кто-то захочет его использовать.
Некоторые из них я сделал вручную, большинство я просто написал программу для печати.
Они состоят из 1-4 строк каждая, поэтому их довольно просто скопировать и вставить в программу. Следует отметить, что они не работают последовательно из-за того, что мой сгенерированный код не сохраняет состояния переменных.
Наиболее распространенный метод, используемый здесь, был таким же, как подход orlp:
Моя версия отличается тем, что использует некоторые пользовательские кейсы и много математики в одну строку. Пользовательские случаи - это когда персонаж может быть представлен всего лишь группой из 9, и никакой математический или мой код генерации не может быть сокращен.
программы
Я поместил вывод на Pastebin для тех из вас, кто не хочет запускать программу:
http://pastebin.com/Cs6WZUfb
Код Java, который я использовал:
источник
999
в конце должны быть исправлены.99 999\n99
(переназначить999
на99
так он будет печатать как символ).Повторное вычитание, 65280
Тривиальное решение для сравнения. Продолжайте вычитать 9 из 99, затем выведите. Пример для символа ASCII 10:
Есть 128 программ. Первая программа длиной в два символа (99), каждая из которых на 8 символов (99 99 9 \ n) длиннее предыдущей.
Python-программа, генерирующая программы, разделенные пустыми строками и счетом вычислений:
источник