Jouer un son, n'importe quel son [fermé]


43

Votre programme doit faire en sorte que l’ordinateur produise un son, n’importe quel son.

Le code le plus court l'emporte, au plus tôt 10 jours après la première réponse valide. S'il y a égalité, celle qui a été soumise le plus tôt gagne.

  • Le programme doit être exécuté sur un ordinateur personnel raisonnable et non trop rare.
  • L'ouverture d'une fenêtre contextuelle, d'une boîte de message, etc. (par exemple, sur une page Web) ne compte pas, car elle peut ou non produire un son, en fonction de nombreux paramètres.
  • Le simple fait d'entrer une commande incorrecte ou un caractère non valide sur une console et de recevoir un bip d'avertissement ne compte pas, tout comme le compilateur / interprète / OS émettant un bip sur une erreur ou une panne ne compte pas non plus. Votre code doit être un programme valide.

1
La sonnerie du système ou le bip du système d’exploitation peuvent également être supprimés sur de nombreux systèmes (par exemple, pour devenir une "sonnerie" visible) et doivent être traités comme des sons de popus, etc.: solution non valide.

Chaque programme qui affiche "\ a" sur un terminal échoue si xterm utilise une cloche visible.
Kernigh

19
rm /causera beaucoup de cris.
cjfaure

Mon fan gauche est en train de mourir bruyamment depuis un moment. Serait-ce une réponse 0 bit valide?
Édouard

1
Je pense que cette question devrait être rouverte. Les réponses de plaisanterie qui reposent sur la rotation du ventilateur ou l'ouverture du plateau de CD ne sont pas valides, puisque la question dit "joue un son". Il me semble assez clair que la sortie doit provenir des haut-parleurs résultant du programme, et non du système d'exploitation, de l'utilisateur ou du matériel.
mbomb007

Réponses:


20

dc, 2 caractères

celui-ci imprime aussi le caractère de la cloche:

7P

Exécuter avec $ dc <<< 7Pou enregistrer 7Pdans un fichier et exécuter $ dc file.

Également:

Befunge, 2 caractères

Semblable mais en boucle et bip infiniment:

7,

1
Pourriez-vous préciser la langue? Je n'en ai jamais entendu parler et son nom est trop court (et une abréviation très courante) pour être recherché efficacement.
vsz

3
De la page de manuel: dc is a reverse-polish desk calculator which supports unlimited precision arithmetic.- à ma connaissance, il est inclus dans la plupart des distributions linux / unix.
daniero

Quelques exemples supplémentaires si cela vous intéresse: 1 , 2 et 3 . Vu quelques autres l'utilisent ici aussi.
daniero

9
Bien entendu, @vsz dc est complet, comme devrait l'être tout meilleur calculateur tel que ghc.
FUZxxl

4
Tous les sons peuvent être désactivés. Il suffit de baisser le volume.
daviewales

49

bash (13)

sudo rm -rf /

Plus le disque dur est rapide, meilleur est le son. Ne travaillez pas avec les SSD.
(N'essayez pas cela à la maison, sudo rm -rf /efface tout ce qui se trouve sur votre disque dur)


7
Je pense qu'on devrait venir avec un avertissement - "N'essayez pas ça à la maison": D
daniero

22
Ouais, c'est le son lorsque votre ordinateur r eads votre m tout r eally f ast (rm -rf).
FUZxxl

70
Attends, tu t'es trompé. La tâche est de faire en sorte que l' ordinateur produise un son, et non l'utilisateur ... même si je dois admettre que crier était assez impressionnant ...
cessé de tourner en sens inverse

4
Il ne fait rien sans --no-preserve-root, sauf peut-être sur les anciens systèmes.
nyuszika7h

1
@ nyuszika7h ancienne comme avant 2005.
Jwosty

44

* sh (5)

eject

(ne fonctionne pas si vous n'avez pas de CD / DVD ou un lecteur similaire ..)


J'aime celui la. Mais, sur mon Mac (Mac OS X), la commande n'est pas trouvée:sh: eject: command not found
Nicolas Barbulesco

3
Nicolas: à droite, sur Mac, l'éjection « commande » semble être beaucoup plus courte: (:
mykhal

@ Mykhal - Si vous allez de cette façon, j'ai une solution qui fonctionne sur tous les Mac modernes: 🔊
Nicolas Barbulesco

1
Cela échoue avec OpenBSD. usage: eject [-t] deviceL'argument device n'est pas optionnel! Le plus court qui fonctionne ici est eject cd0pour 9 caractères. De même, si le lecteur ne possède pas de plateau (comme dans le cas d'un lecteur à chargement par fente), eject cd0aucun bruit ne se produit sauf si un disque est inséré dans le lecteur.
Kernigh

1
Kernigh: tu as raison. d'autre part, cela pourrait réussir sur de nombreux systèmes sans carte son ni haut-parleur, où la plupart des autres solutions échoueraient
mykhal

37

Befunge, 0

Si je lis correctement les spécifications, il s'agit d'une boucle sans fin.
Boucle infinie = vous entendrez le refroidissement de votre CPU.


27

sh 7

w|aplay

Joue un petit bruit.

Aussi 7:

aplay *

Assemblée

Une autre solution non-cloche. Le résultat en binaire n'est que de 15 octets.

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

Assemblez avec nasm sound.asm -o sound.com. Peut être essayé avec dosbox sound.com.


9
+1 pour ne pas utiliser uniquement un terminal pour traduire les caractères BEL en signaux sonores.
Ilmari Karonen

25

brainfuck: 8

+++++++.

Imprime le caractère de la cloche.


16
+1 BF Solution à la fois compréhensible ET plus courte que C.
OldCurmudgeon

15
Un brainfuck est plus facile à digérer mentalement que C ... nous devrions apprendre de cet incident.
Camilo Martin

23

bash (Mac OS X) 5

say a

bien que stylistiquement je préfère le peu plus long:

say 'Hello, Code Golf !'

1
Si votre Mac est configuré en anglais, vous pouvez également le faire say 'hahahahahahahahahahahahahahahahahahahahahahahahahaj'.
Tomsmeding

21
Oooh ... j'ai un accès SSH à une boîte osx ...
stand by

1
Cette commande fonctionne dans AppleScript. Je ne savais pas que cela fonctionnait aussi dans le terminal. Drôle avec ssh!
Nicolas Barbulesco

1
Corollaire sur Linux: espeak...
daviewales


16

Python 3.3.3, un caractère

<bell character>

Le message d'erreur contiendra un caractère de cloche, provoquant le son.

Python 3.3.3, 10 caractères

Si les erreurs ne sont pas autorisées, cette solution ne produira pas le message d'erreur, mais uniquement le son.

print('<bell character>')

Pourquoi le vote négatif, ce code produit réellement un son.

1
1 caractère O_o nice +1
Timtech le

13

Golfscript 3

'.'

(où il .s'agit en fait d'un personnage de BELL)

La représentation HEX du code ci-dessus est:

27 07 27

2
Aïe, Golfscript frappe encore!
vsz

12

Java - 222

Assez de ce caractère de cloche ou de fonction de bip prédéfini, cela produit un vrai son :)

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 craint vraiment pour le golf
stand by

1
@boothby pas toujours, vérifier ce sur
aditsu

20
Ok, Java craint pour le golf, sauf lorsque le défi consiste à jeter des erreurs. ;)
stand


2
@JopVernooij Ce n'est pas du golf, c'est un concours de popularité sournois.
Jwosty

10

Invite DOS / Script DOS

a:

Nécessite un lecteur de disquette 3.5 ":)


Quelle magie est-ce?
seequ

1
Cela oblige DOS à essayer de lire sur la disquette, ce qui provoque un son. Cependant, il est faux que cela nécessite un lecteur de disquette 3,5 "; un lecteur de disquette 5,25" fonctionne encore mieux.
celtschk

Toujours. Ne serait normalement pas le 5.25 " b:?
svidgen

1
Essayez un lecteur de CD avec un disque défectueux à l'intérieur, fonctionne très bien aussi :)
Alejandro

La lettre de lecteur sous DOS dépend des connecteurs du câble auxquels le lecteur était connecté (et des machines plus récentes, un paramètre BIOS). Mon premier ordinateur ne possédait qu'un lecteur de 5,25 pouces et je devais le connecter en tant que maître (ce qui en faisait le lecteur A), car il ne pouvait pas démarrer à partir de l'esclave.
Dennis

9

J (2)

a.

Ceci imprime tous les caractères de 0 à 255, y compris la cloche.

Si je dois le faire sans rien imprimer d'autre, c'est 4 caractères:

7{a.

9

Pascal: 30 caractères

uses Crt;begin
Sound(999)
end.

Cela profite de l'absence de règle concernant la durée du son. Il suffit donc d’allumer le haut-parleur sur 999 Hz et de le laisser aller. (Au moins jusqu'à ce qu'un autre programme appelle Nosoundou que l'ordinateur soit éteint.)


Et le son continue à crier même après que le programme ait quitté? J'aime celui la ! :-)
Nicolas Barbulesco le

@NicolasBarbulesco, exactement. C'était le comportement normal de tous les programmes sous DOS, y compris ceux écrits en C ou en assembleur.
Manatwork

-2: Changement de 9 Hz: Sound(9).
Erik the Outgolfer le

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ, il serait difficile de prouver que le son est réellement généré. Plage de fréquences de l'ouïe humaine
manatwork

@manatwork Eh bien, ajoutez un code identique avec une autre fréquence pouvant être entendu. Parce que les codes sont identiques, cela peut être prouvé. (le nombre change seulement)
Erik the Outgolfer

8

Mathematica 6

Cela évoquera le bip système. Sur mon ordinateur, c'est actuellement un gazouillis.

Beep[]

8

Bash, 22 ans

Dans les années 90, mon frère m'a appris celui-ci: être utilisé dans un laboratoire informatique où l'on a accès à distance et sait qu'une personne est seule dans ce laboratoire. Les enfants de nos jours ne sauront pas ce qu'est un laboratoire informatique ... mais bon.

cd /dev;cat sda1>audio

1
Je bash: audio: Permission deniedcours même sous sudo. :(
Riking

2
Cela fonctionnait sous Debian à partir de 2006. Je ne peux pas le faire fonctionner sur ma
machine

1
Je pense que vous voulez dire dsp, pas audio. Voir ci-dessous un exemple similaire que j'ai écrit en utilisant / dev / random

3
oucat /dev/sda | aplay
TheDoctor

1
@TheDoctor ou aplay</dev/sda(UUOC ;-))
Trauma numérique

7

chat / type / PHP 1

C'est en fait polyglotte. Il fonctionne dans cat(ou Microsoft Cat appelé type) et PHP.

$ xxd file
0000000: 07                                       .

Exécution:

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

Quel est le programme? Comment l'exécuter? Ce n'est pas clair.
Nicolas Barbulesco

@ NicolasBarbulesco: Le programme est un byte ( \x07), mais comme c'est binaire, je ne peux pas le coller ici. Vous pouvez l'exécuter en PHP CLI, avec php.
Konrad Borowski

Ce n'est pas clair. Mais ça marche! Avec cat. Le truc est le caractère ASCII 7 "cloche".
Nicolas Barbulesco

Ce n'est pas une tentative sérieuse.
user48538

6

brainfuck, 5 octets

+[.+]

affiche tous les caractères, y compris la cloche




5

DOS, 5

Indirect, nécessite la coopération de l'utilisateur.

pause

6
Exécutez le programme. Coopérer. Écoute
Boothby

2
Vous devez appuyer sur une touche ... qui émet un son. @mana Il a dit que c'était indirect - pausene faisait pas le son, VOUS l'avez fait.
Riking

2
@Riking, en quoi cela est-il conforme à la partie «Votre programme doit faire en sorte que l'ordinateur produise un son»?
Manatwork

5
Je ne comprends pas les programmeurs sur les sites de casse-tête qui ne peuvent pas penser autrement.
stand by

4
Je ne critiquais pas ta réponse. Je critiquais la question. Une question inutile obtiendra évidemment des réponses inutiles. Votre réponse a alors autant de sens que toute autre réponse à cette question stupide. Donc, je vous donne +1.


4

Python 9 caractères


produit un bip sonore lors de l'exécution.

print'\a'

1
Vous pouvez le réduire à 8 caractères si vous le remplacez \apar le caractère de cloche actuel (code ASCII 7).
séisme florn

Mais comment imprimer avec l'aide de la valeur 7?
Anbarasan

1
Vous pouvez taper le caractère de cloche dans votre éditeur avec Alt+07. Vous pouvez également exécuter cet extrait pour créer un fichier python avec la solution à 8 caractères:open("play_a_sound.py", 'w').write("print'"+chr(7)+"'")
flornquake,

Je l'ai maintenant. Merci !
Anbarasan

4

Applescript (4 caractères)

beep

Cela va jouer le bip sonore par défaut de OS X.


4

Mathematica 7

Utilisation de la fonctionnalité de synthèse vocale intégrée de Mathematica.

Speak@x

Le fera dire "x"


4

top & aplay - 9

top a du rythme!

top|aplay

Il arrive que l’affichage périodique n’alimente pas assez rapidement le puits de son, mais aplaycontinue après avoir grogné un peu ... :-)

... cela fonctionnera sur beaucoup de Linux ...

Prime:

Pendant l’exécution, tapez "s 1 ENTER" pour obtenir plus de battements par seconde. :-)

Faites la fête !!! \ o /


C'est du pur génie ...: D
Mega Man

3

> <> 3

Comme dans toutes les réponses, affiche la cloche (0x07) sur la sortie standard.

7o;

3

Tcl, 1 caractère

-

remplacer -par le caractère de cloche.
Il imprimera le caractère de sonnerie dans le cadre du message d'erreur. Deux fois.

Et si vous pensez que ce programme n'est pas valide, ajoutez-le avant le caractère de sonnerie:

proc \007 {} {};

C'est un programme valide, je n'ai tout simplement pas défini la commande, car j'aime bien le message d'erreur.


Est-ce basé sur certaines fonctionnalités de Tcl 8.6? Dans Tcl 8.5, le résultat est différent: pastebin.com/bh73UF6F Ou êtes-vous sous Windows?
Manatwork

Non. La 2e partie devrait montrer qu'il s'agit d'un fichier Tcl valide. Et il devrait bip bip 2x (le message d'erreur contient la commande à exécuter deux fois). Appeler une commande qui n'existe pas n'est pas une erreur pour Tcl, c'est une erreur si elle ne peut pas la trouver. (par exemple parray, qui est chargé lors de la première utilisation)
Johannes Kuhn

Oops. Je t'ai mal compris. Je pensais que vous vouliez dire, cela devrait également sonner avec la procdéclaration. (En ce qui concerne le nombre de bips, mon terminal est probablement en train de faire quelque chose comme il puts [string repeat ".\a" 10]affiche 10 points mais ne
bipe

3

C: 19

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

edit: le fichier d'en-tête n'est pas nécessaire pour "met"


2
Vous pouvez supprimer l'espace entre #includeet <:)
tomsmeding

met (char *); main () {met ("\ a");} est un IMHO plus petit.
FUZxxl

Vous pouvez simplement enlever le #include.
Ugoren

1
@FUZxxl Comment pouvez-vous avoir une opinion sur la taille du code?
Poignée de porte

@DoorknobofSnow À cause du premier amendement?
FUZxxl

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.