Задача проста. Дайте кратчайший код, который можно воспроизвести в классической игре понг для 2 игроков http://en.wikipedia.org/wiki/Pong . Уровень графики и функциональности должен быть как можно ближе к этой демонстрации JavaScript http://codeincomplete.com/posts/2011/5/14/javascript_pong/demo.html (но без дополнительных опций вы можете нажать слева или информация о кадре, кадрах и т. д. справа внизу).
Как всегда, код должен быть написан на свободном языке (в обоих смыслах) и должен быть запущен на Linux. Любые используемые библиотеки также должны быть бесплатными, легкодоступными и не должны быть написаны для целей этого конкурса (а также еще не должны содержать рабочую версию Pong!).
code-golf
graphical-output
game
Фелипа
источник
источник
Ответы:
Javascript, 883 (+ 70 HTML)
Сценарий может быть размещен в конце
<body>
или вызванonLoad
. Для этого нужен следующий элемент canvas:Игрок 1 использует qи aключи, и игрок 2 использует pи lключи. Нажмите escклавишу, чтобы приостановить и любую клавишу, чтобы начать / продолжить.
Вы можете воспроизвести его в своем браузере здесь .
Я не был уверен, какую физику использовать, поэтому я начал с простого метода отражения, а затем добавил немного разнообразия и немного поэкспериментировал с ним. На скорость мяча в направлении y влияет то, где на мяче вы ударили по мячу, поэтому вы можете контролировать направление движения мяча. Скорость мяча в направлении х медленно увеличивается с каждым попаданием в ралли.
Я подозреваю, что это будет довольно легко преодолевать решениями, использующими библиотеки, но мне было приятно делать это простым javascript.
источник
20
переменной имяg
и сохранить один мизерный байт.Сед, 35
Немного поднять планку с помощью медитации «почтовая марка».
Медитация используется на stdin / stdout на двух компьютерах, не обязательно связанных сетью. Медитация начинается в состоянии
с гуру ноль слева и один справа. Угловая скобка перемещается влево и вправо, и если гуру маневрирует своим числом, чтобы соприкасаться с курсором, когда он приближается к их стороне, их счет увеличивается на единицу, и они радуются.
Медитация начинается с ввода вышеуказанного состояния
sed -f medi.sed
, и компьютер отвечает следующим состоянием. Послушные гуру вводят в медитацию, читая вслух следующую клавишу, которую они нажимают, и оба гуру одновременно нажимают святой ключ кenter
будущему. Послушный компьютер отвечает следующим состоянием. Это, в свою очередь, читается вслух, когда печатается в унисон, как и в случае с последним. Продолжайте двигаться в будущее, пока не будет достигнуто бесконечное блаженство.Гуру, желающие получить вызов, могут играть в «турбо» режиме, когда гуру пытаются совместно предсказать следующее состояние компьютера и вводят его в подсказку вместо текущего состояния. Гуру хватит мудрости проверить соответствие между их предсказаниями, прежде чем войти в будущее.
источник
Python (с pygame ) 650 байт
особенности
В заключение, я хотел бы просить, чтобы это решение не было выбрано в качестве принятого ответа по разным причинам.
Пример снимка экрана:
Примечание: шрифт, используемый для оценки, может варьироваться от системы к системе.
источник
HTML & JavaScript (дубль 2) - 525
Поскольку OP, кажется, не особо заботился о «как можно ближе», вот альтернативное решение, которое я безжалостно упростил, раздевал и играл в гольф. Q / A и P / L, чтобы играть, но любая другая клавиша также имеет эффект. Опять же, код полностью автономен, и я протестировал его в Chromium 25 для Linux. Я могу сыграть в эту игру еще дальше, если вы допустите небольшие ошибки или еще большее ухудшение качества графики / игрового процесса.
Спасибо Шмиддты
источник
c=window.c
. Вы назначаете глобальную переменную себе.++S[n]
внутрь.random(++S[n])
HTML & JavaScript - 1663
Вопреки здравому смыслу, я использовал сумасшедший подход к игре в реальном коде из демо Я удалил некоторые функции и элементы интерфейса, но в целом он работает точно так же - 0, 1 или 2, чтобы выбрать количество игроков, Q / A и P / L для перемещения.
Если я не допустил некоторых ошибок, игровой процесс должен быть идентичным, пиксель за пиксель и миллисекунда за миллисекунду, оригиналу при 640 * 480 (подсказка: изменение размера окна браузера изменяет размер игры в демоверсии). Он просто не дает инструкций, не объявляет победителя и не обрабатывает esc.
Код полностью автономен, и я протестировал его в Chromium 25 на Linux. Firefox это не очень нравится.
Некоторые кредиты Шмиддты за улучшения
источник
Обработка, 487 символов
Пример скриншота:
Этот код был сделан с учетом краткости, поэтому он довольно глючный (мяч иногда проходит через весло или оборачивается вокруг него). Управление Q / A для игрока 1 и O / L для игрока 2.
источник
C # - 1283 символа
Это может быть в гольф немного больше, но здесь это так.
Редактировать: не видел требования для свободного, Linux-запускаемый язык ...
источник
Tcl / Tk , 932 байта
Должен быть запущен в интерактивной оболочке
Заметка:
Просто очень минимальная версия понга, где мяч работает только под диагональными углами и всегда имеет одинаковую скорость.
источник