Второй набор инструментов MacGyver


16

В этом вопросе каждый ответ получит «набор инструментов», который можно использовать для создания программы / функции. Панель инструментов будет состоять из двух вещей:

  • список языков программирования

  • список допустимых символов

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

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

правила

  • Каждый ответ будет:

    • Выведите количество правильных ответов, предшествующих этому
    • Содержит подмножество символов, предоставленных в наборе инструментов для этого ответа. (повторы разрешены)
    • Будьте на одном из языков из предоставленной панели инструментов
  • Следующий набор инструментов будет определен этой программой на Python. Для создания следующего набора инструментов введите оставшиеся языки и символы вместе с идентификатором поста последнего ответа.

  • Список языков здесь - это все языки, доступные на сайте, попробуйте на момент публикации. Символы имеют коды символов 0-127.

  • Вы можете написать либо полную программу, либо функцию в качестве ответа. Поскольку REPL - это разные языки, они не будут допущены. (используйте версию TIO каждого языка)

  • Если язык использует специальную кодировку, символы следует интерпретировать как байты (декодированные из ASCII и дополненные нулями).

  • Стартовый набор инструментов будет рандомизирован по этому посту с идентификатором ( 128464 ), будет 7 языков для запуска, и я бесплатно добавлю символы echoprint0и ascii 0-31, чтобы начать людей.

  • Вы не можете отвечать дважды

счет

Каждый раз, когда человек отвечает, он получает несколько баллов за свой ответ. Цель состоит в том, чтобы получить как можно больше очков. За ответ на языке X вы получите столько ходов, сколько языка X не использовалось на панели инструментов. Например, первый ответивший получит 1 балл, потому что язык был добавлен в панель инструментов. Там не обязательно будет конец, и я не буду принимать никаких ответов.

спортивный

Это соревнование, но я призываю вас ставить веселье выше победы, оставаясь при этом конкурентоспособным (если бы я мог сделать критерии победы "веселыми", я бы это сделал). Некоторые вещи, которые не являются забавными:

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

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

На более позитивной ноте, вот некоторые вещи, которые хороши в спорте и поощряются:

  • Координация с другими пользователями в чате.
  • Сохранение символов для более сложных или ограниченных языков

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


Какой первый набор инструментов?
CalculatorFeline

@CalculatorFeline Это связано в вопросе, это заполнено с идентификатором вопроса.
Пост Рок Гарф Хантер

1
@tuskiomi старый вопрос и новый вопрос создаются одним и тем же человеком, и целесообразно закрыть старые вопросы как дубликаты более новых, более качественных вопросов.
Стивен

2
@tuskiomi Самое большое различие - это количество символов, добавляемых в песочницу каждый раз. Ранее это было 12, что быстро вышло из-под контроля, а это означало, что практически каждый ответ имел в своем распоряжении весь ASCII. Я понизил его до 8, что было средним числом символов, использованных всеми ответами в последней версии. Я бы согласился с тем, что разница в начальных значениях и выигрышах - это незначительные изменения, но уменьшение количества символов - это единственная причина, по которой я сделал вторую итерацию.
Пост Рок Гарф Хантер

1
Я уверен, что это невозможно. Str-программы требуют ;(не в наборе инструментов) делать что-либо, когда нет ввода. Программы Condit и Tcl требуют пробела (не в toobox) как часть синтаксиса. Схема нужна (. Brain-Flak не может работать по очевидным причинам (это только персонаж в наборе инструментов )). Java 8 нуждается {(не в наборе инструментов) для объявления функции. Это оставляет только максимумы, которые, я не думаю, могут печатать вещи без «print» или объявлять функцию без использования скобок.
pppery

Ответы:


8

Это невозможно

Пройдемся по всем языкам в лангбоксе:

  1. Язык программирования tcl состоит из слов, разделенных пробелами. Символ пробела отсутствует в наборе инструментов, поэтому никакие действительные программы не могут быть написаны.
  2. Программы Str по умолчанию преобразуют ввод. Для того, чтобы они могли что-либо делать, когда не вводится, ;требуется символ, которого нет в наборе инструментов.
  3. Единственный способ для программы в sche-chez сделать что-либо - это вызвать функцию, используя скобки. Поэтому всем программам схемы-chez нужен (персонаж, которого нет в наборе инструментов
  4. Для программ Brain-Flak нужны сбалансированные скобки. Единственным символом скобок в наборе инструментов является ), поэтому никакие программы, содержащие сбалансированные скобки, невозможны.
  5. Как и в схеме, программы максимума требуют круглых скобок, чтобы сделать что-нибудь.
  6. Java-программам требуется последовательность символов {или ->, чтобы объявить функцию (и все полные программы нуждаются по крайней мере в одной функции), ни одна из которых не находится в наборе инструментов.
  7. Для программ Condit требуется слово when, содержащее символ «е», которого нет в наборе инструментов.

Доказательства невозможности допускаются в качестве ответов



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