Відтворювати звук, будь-який звук [закрито]


43

Ваша програма повинна змусити комп'ютер видавати звук, будь-який звук.

Найкоротший код виграє, не пізніше ніж через 10 днів після першої правильної відповіді. Якщо буде нічия, виграє той, хто подається швидше.

  • Програма повинна працювати на розумному, не надто рідкісному персональному комп’ютері.
  • Відкривання спливаючого вікна, вікна повідомлень тощо (наприклад, на веб-сторінці) не враховується, оскільки вони можуть або не можуть видавати звук, залежно від багатьох налаштувань.
  • Просто введення неправильної команди або недійсного символу на консолі та отримання попереджувального сигналу не враховується, як і компілятор / інтерпретатор / звуковий сигнал ОС на помилку чи збій, також не враховується. Ваш код повинен бути дійсною програмою.

1
^ G aka системний дзвінок або звуковий сигнал ОС може бути придушений і в багатьох системах (наприклад, переключений на видимий "дзвін"), і з ним слід оброблятись як звуки popus тощо. Неправильне рішення.
yeti

Кожна програма, яка друкує "\ a" до терміналу, не працює, якщо xterm використовує видимий дзвоник.
kernigh

19
rm /викличе багато крику.
cjfaure

Мій лівий вентилятор якийсь час шумно вмирає. Це би була дійсна 0-бітна відповідь?
Édouard

1
Я думаю, це питання слід знову відкрити. Відповіді на анекдоти, які залежать від обертання вентилятора або відкриття лотка для компакт-дисків, є недійсними, оскільки в питанні сказано "відтворити звук". Мені здається досить зрозумілим, що вихід повинен надходити з динаміків в результаті програми, а не ОС або користувача чи апаратного забезпечення.
mbomb007

Відповіді:


21

постійний струм, 2 символи

цей також друкує символ дзвоника:

7P

Запустіть файл $ dc <<< 7Pабо збережіть 7Pу файл та запустіть $ dc file.

Також:

Befunge, 2 символи

Подібні, але нескінченно циклічні та звукові:

7,

1
Чи можете ви, будь ласка, детальніше розповісти, що це за мова? Я ніколи про це не чув, і його назва занадто коротка (і дуже поширена абревіатура), щоб її можна було ефективно шукати.
vsz

3
З man-сторінки: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- наскільки я знаю, вона входить до більшості linux / unix дистрибутивів.
daniero

Ще кілька прикладів, якщо вас цікавить: 1 , 2 і 3 . Побачені кілька інших використовують його і тут.
daniero

9
@vsz dc, звичайно, є завершеним, як і будь-який кращий калькулятор, такий як ghc.
FUZxxl

4
Усі звуки можна відключити. Просто зменшіть гучність.
daviewales

49

баш (13)

sudo rm -rf /

Чим швидше жорсткий диск, тим кращий звук. Не працюйте із SSD-дисками.
(Не намагайтеся цього вдома, sudo rm -rf /стирає все на жорсткому диску)


7
Я думаю, що варто
погодитися

22
Так, це звук , коли ваш комп'ютер г EADS ваш м айил г eally е аст (ГТ -rf).
FUZxxl

70
Зачекайте, ви неправильно зрозуміли Завдання полягає в тому, щоб змусити комп'ютер видавати звук, а не користувач ... хоча я мушу визнати, що крик був досить вражаючим ...
перестав повертати проти годинника,

4
Нічого не обійдеться --no-preserve-root, за винятком, можливо, старовинних систем.
nyuszika7h

1
@ nyuszika7h давній, як і до 2005 року.
Jwosty

44

* ш (5)

eject

(не працює, якщо у вас немає CD / DVD або подібного диска ..)


Мені це подобається. Але на моєму Mac (Mac OS X) команда не знайдена:sh: eject: command not found
Nicolas Barbulesco

3
Ніколя: так, на Mac, команда "викидання" здається набагато коротшою: (:
mykhal

@ mykhal - Якщо ви підете цим шляхом, у мене є рішення, яке працює на всіх сучасних Маках: 🔊
Ніколя Барбулеско,

1
Це не вдається з OpenBSD. usage: eject [-t] deviceАргумент пристрою необов’язковий! Найкоротший, що працює тут, - це eject cd09 символів. Крім того, якщо у накопичувача немає лотка (як у приводу завантаження слотів), він eject cd0не видає шуму, якщо диск не знаходиться в диску.
kernigh

1
Керні: ти правий. з іншого боку, це може досягти успіху в багатьох системах без звукової карти чи динаміка, де більшість інших рішень не вдасться
mykhal

37

Befunge, 0

Якщо я прочитав специфікацію правильно, це нескінченна петля.
Нескінченний цикл = ви почуєте, як ваш процесор охолоджується.


27

ш 7

w|aplay

Відтворює короткий шум.

Також 7:

aplay *

Асамблея

Ще одне незвоночне рішення. Отриманий бінарний файл складає всього 15 байт.

mov al, 182
out 43h, al
out 42h, al
mov al, 16
out 42h, al
mov al, 3
out 61h, al
ret

Зберіть з nasm sound.asm -o sound.com. Можна спробувати dosbox sound.com.


9
+1 - не просто покладатися на термінал, щоб перевести символи BEL на звукові сигнали.
Ільмарі Каронен


23

bash (Mac OS X) 5

say a

хоча стилістично я віддаю перевагу дещо довше:

say 'Hello, Code Golf !'

1
Якщо ваш Mac встановлений англійською мовою, ви також можете це зробити say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
tomsmeding

21
Ооо ... у мене є ssh доступ до коробки osx ...
кабінка

1
Ця команда працює в AppleScript. Я не знав, що це працює і в Терміналі. Смішно з ssh!
Ніколя Барбулеско

1
Наслідок у Linux: espeak...
daviewales


16

Python 3.3.3, один символ

<bell character>

Повідомлення про помилку буде містити символ дзвоника, викликаючи звук.

Python 3.3.3, 10 символів

Якщо помилки не дозволено, це рішення не видасть повідомлення про помилку, а лише звук.

print('<bell character>')

Чому зрештою цей код фактично видає звук.

1
1 char O_o приємно +1
Timtech

13

Гольфскрипт 3

'.'

(де .насправді символ BELL)

HEX-представлення вищевказаного коду:

27 07 27

2
О, Гольфскрип знову вражає!
vsz

12

Ява - 222

Досить цього символу дзвоника або попередньо визначених функцій звукового сигналу, це дає справжній звук :)

import javax.sound.sampled.*;class S{static{try{SourceDataLine
l=AudioSystem.getSourceDataLine(new
AudioFormat(4000,8,1,0<1,0>1));l.open();l.start();for(byte
i=9;i!=0;i+=9)l.write(new byte[]{i},0,1);}catch(Exception e){}}}

18
Java по-справжньому смокче для гольфу
кабінка

1
@boothby не завжди, перевірити це при від'їзді
aditsu

20
Гаразд, Java смокче гольф, за винятком випадків, коли виклик помилок. ;)
кабінка


2
@JopVernooij Це не гольф, це непоганий конкурс на популярність.
Jwosty

11

Підказки DOS / сценарій DOS

a:

Потрібен 3,5-дюймовий дискети :)


Що це за магія?
seequ

1
Це змушує DOS намагатися читати з дискети, що викликає звук. Однак помилково, що для цього потрібен 3,5-дюймовий дискети, 5,25-дюймовий дискет працює ще краще.
celtschk

Ага. Чи не було б 5,25 "нормально b:?
svidgen

1
Спробуйте CD-диск із несправним диском всередині, також чудово працює :)
Алехандро

Буква приводу в DOS залежала від того, до яких роз'ємів кабелю приєднано привід (а на нових машинах - налаштування BIOS). Мій перший комп’ютер мав лише 5,25-дюймовий диск, і я повинен був приєднати його як головний (що робить його A-накопичувачем), оскільки він не міг завантажуватися з раба.
Денніс

9

J (2)

a.

Це друкує всі символи від 0 до 255, що включає дзвінок.

Якщо мені доведеться це робити, не друкуючи нічого іншого, це 4 символи:

7{a.

9

Паскаль: 30 символів

uses Crt;begin
Sound(999)
end.

Це використовує відсутність будь-якого правила щодо тривалості звуку. Тому просто вмикає динамік на 999 Гц і дозволяє це зробити. (Принаймні, доки інша програма не зателефонує Nosoundабо комп'ютер не вимкнеться.)


А звук продовжує кричати навіть після того, як програма вийшла з ладу? Мені подобається цей! :-)
Ніколя Барбулеско

@NicolasBarbulesco, точно. Це було нормальною поведінкою всіх програм на DOS, включаючи програми, написані на С або в зборах.
манатура

-2: Зміна до 9 Гц: Sound(9).
Ерік Аутгольфер

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, важко буде довести, що звук насправді генерується. Діапазон частот слуху людини
маніпуляція

@manatwork Добре, додайте ідентичний код з іншою частотою, яку можна почути. Оскільки коди ідентичні, це можна довести. (кількість змінюється лише)
Ерік Атголфер

8

Математика 6

Це викликає звуковий сигнал системи. На моєму комп’ютері наразі це щебетання.

Beep[]

8

Баш, 22

Ще в 90-х роках мій брат навчив мене цього - використовувати його в комп'ютерній лабораторії, де людина має віддалений доступ і знає людину бути самотнім у зазначеній лабораторії. Діти сьогодні не знають, що таке комп'ютерна лабораторія ... але добре.

cd /dev;cat sda1>audio

1
Я bash: audio: Permission deniedнавіть бігаю під судо. :(
Riking

2
Це працювало на Debian станом на 2006 рік. Я не можу змусити його працювати на моїй коробці Ubuntu: * (
кабінка

1
Я думаю, ви маєте на увазі dsp, а не аудіо. Дивіться нижче подібний приклад, який я написав, використовуючи / dev / random

3
абоcat /dev/sda | aplay
TheDoctor

1
@TheDoctor або aplay</dev/sda(UUOC ;-))
Digital Trauma

7

кішка / тип / PHP 1

Це насправді поліглот. Він працює в cat(або Microsoft Cat називається type) та PHP.

$ xxd file
0000000: 07                                       .

Виконання:

$ xxd -r > file
0000000: 07                                       .
^D
$ cat file # cat could be replaced with type (on Windows) or with php

Що таке програма? Як це запустити? Це не ясно.
Ніколя Барбулеско

@NicolasBarbulesco: Програма є одним байтом ( \x07), проте, оскільки вона є бінарною, я не можу вставити її сюди. Ви можете запустити його в PHP CLI, з php.
Конрад Боровський

Незрозуміло. Але це працює! З cat. Хитрість - це "дзвін" символу ASCII 7.
Ніколя Барбулеско

Це не серйозна спроба.
user48538

7

мозковий ебать, 5 байт

+[.+]

друкує всі символи, включаючи дзвоник




5

ДОС, 5

Непряме, вимагає співпраці з користувачем.

pause

6
Запустіть програму. Співпрацюйте. Слухай.
стенд

2
Ви повинні натиснути клавішу ..., яка видає звук. @mana Він сказав, що це було непрямо - ви pauseне звучали, ВАС.
Рікінг

2
@ Як сказати, як це відповідає вимозі "Ваша програма повинна змусити комп'ютер видавати звук" частиною вимоги?
манатство

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

4
Я не критикував вашу відповідь. Я критикував це питання. Безглуздо запитання, очевидно, отримає безглузді відповіді. Тоді ваша відповідь має стільки ж сенсу, як і будь-яка інша відповідь на це дурне питання. Отже, я даю вам +1.

5

PowerShell, 24 17

Оскільки цю версію ще ніхто не опублікував:

[console]::beep()

ОНОВЛЕННЯ: Видалені частоти, тому вона використовує стандартну частоту та тривалість ( MSDN каже, що за замовчуванням - 800 герц і 200 мілісекунд )


Напевно, ви могли б принаймні використовувати менші числа
Денніс Джахеруддін

4

Пітон 9 символів


видає звуковий сигнал при виконанні.

print'\a'

1
Ви можете скоротити це до 8 символів, якщо замінити \aйого фактичним символом дзвоника (ASCII код 7).
flornquake

Але як надрукувати за допомогою значення 7?
Анбарасан

1
Ви можете ввести символ дзвоника у свій редактор Alt+07. Можна також запустити цей фрагмент, щоб створити файл python з 8-символьним рішенням:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake

Зрозумів зараз. Дякую !
Анбарасан

4

Яблукопис (4 символи)

beep

Це відтворить звуковий сигнал за замовчуванням OS X.


4

Математика 7

Використання вбудованої програми Mathematica у тексті для мовлення.

Speak@x

Змусить сказати "х"


4

top & aplay - 9

top має ритм!

top|aplay

Періодичний дисплей іноді не подає звукову раковину досить швидко, але aplayпродовжується після з’єднання трохи ... :-)

... це буде працювати на багатьох Linux ...

Бонус:

Під час запуску цього введіть "s 1 ENTER", щоб отримати більше ударів в секунду. :-)

Вечірка на !!! \ o /


Це чистий геній ...: D
Mega Man


3

Tcl, 1 char

-

замінити -на дзвіночку.
Він надрукує дзвонику як частину повідомлення про помилку. Двічі.

І якщо ви вважаєте, що це не дійсна програма, додайте це перед знаком дзвоника:

proc \007 {} {};

Це дійсна програма, я просто не визначив команду, тому що мені подобається повідомлення про помилку.


Це на основі якоїсь функції Tcl 8.6? У Tcl 8.5 я отримав інший результат: pastebin.com/bh73UF6F Або ви в Windows?
манатура

Ні. У другій частині повинно бути показано, що це дійсний файл Tcl. І він повинен звучати 2x (повідомлення про помилку містить команду, яку потрібно виконати двічі). Виклик команди, яка не існує, не є помилкою для Tcl, вона є лише однією, якщо вона не може її знайти. (наприклад parray, що завантажується під час першого використання)
Йоганнес Кун

На жаль Я неправильно тебе зрозумів. Я думав, ти маєш на увазі, це має звучати і з procдекларацією. (Що стосується кількості puts [string repeat ".\a" 10]звукових сигналів , напевно, мій термінал робить щось, як відображає 10 крапок, але подає звукові сигнали лише один раз.)
манатура

3

С: 19

main(){puts("\a");}

редагувати: файл заголовка не потрібен для "ставить"


2
Ви можете видалити пробіл між #includeі <:)
tomsmeding

put (char *); main () {put ("\ a");} менший IMHO.
FUZxxl

Ви можете просто видалити #include.
угорен

1
@FUZxxl Як ви можете мати думку про розмір коду?
Дверна ручка

@DoorknobofSnow Через першу поправку?
FUZxxl

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.