Dans le moins de caractères Unicode possible, imprimez les éléments suivants (144 caractères):
1, 2, 3 o'clock, 4 o'clock rock,
5, 6, 7 o'clock, 8 o'clock rock,
9, 10, 11 o'clock, 12 o'clock rock,
We're gonna rock around the clock tonight.
Vous ne devez utiliser aucun chiffre dans votre code, sauf le chiffre 1
.
11
. Est-ce que l'instruction signifie que vous ne pouvez utiliser que le chiffre 1 ou le chiffre 1?1
. Je n'ai pas précisé combien de fois, alors le fait que les gens l'utilisent11
est une échappatoire intelligente, et je suis tout à fait d'accord.Réponses:
Javascript -
140132Le fait que 11 soit composé de deux 1 me laisse passer les règles je suppose.
Explication
Le k +++ s est égal à (k ++) + s, il ajoute donc k d'abord à x, puis incrémente k, puis ajoute s à x. Ce processus sera effectué trois fois avant d'ajouter la dernière phrase.
la source
k+++s
-il? Est-ce(k++) + s
ouk + (++s)
ou(k++) + (++s)
?x+=k+++s+k+++s+k+++t+s+k+++t+u
alert
est plus courte queconsole.log
. Utiliser l'affichage automatique du dernier calcul dans la console revient à tricher.C # - 186
Meilleure langue de golf ou meilleure langue de golf?
la source
i++ +
bitsWriteLine
->Write
, et en utilisant un littéral\n
à la fin de la chaîne.Brainfuck (1574)
Pas une soumission sérieuse, mais suit les règles.
Peut être testé ici .
la source
#RESPECT
Ruby, 100
la source
s="%i, %i#{", %i o'clock"*-~1} rock,\n"
(remplacez le\n
par un saut de ligne littéral). Excellente idée à utiliser$$
!r=-~1
inline, vous pouvez alors utiliser à la"..."*-~r
place des+s+s
, vous permettant de supprimer l’affectations
.Perl 123
L'expression régulière correspond
(
,)
et*
. J'ai utilisé le fait que le code ASCII de(
est 40, de)
41 et*
42.L'
r
indicateur de l'expression régulière active la "substitution sur place" et l'e
indicateur permet l'évaluation du code (similaire àx.replace(/.../, function(m){...})
JavaScript).(clock,rock)
est un tableau de deux "mots nus".$&
est la correspondance actuelle de l'expression régulière etord$&
sa valeur ASCII.Masqué par 3 ou
1+1+1
les valeurs ASCII sont maintenant 0, 1 et 2, je peux donc les utiliser pour récupérer l'élément de tableau correspondant. Comme 2 est hors de la matrice, l'opérateur "court-circuit"||
évalue++$i
. Dans le premier match$i
estundef
si incrémenter je reçois 1, puis 2 et ainsi de suite ...En mots simples. Ceci remplace
*
par son occurrence actuelle,(
par "clock" et)
par "rock".la source
Bash + coreutils, 120 ASCII, 92 Unicode
ASCII:
Unicode:
Version Unicode encodée en base64 (au cas où les rendus unicode seraient gâchés):
la source
eval
plutôt que de diriger versbash
oush
?$r
s!Brainfuck, 1299
Bleuuuurgh . C'était terrible. Je ne sais pas pourquoi j'ai fait ça, ça semblait assez facile au début. Premier et probablement dernier script Brainfuck. Essayez ici.
Avec l'aide d' un générateur de code automatisé , j'ai pu écrire un script qui réutilisait la plupart des caractères au lieu de les générer à partir de rien. Il ne compte que 275 caractères de moins que celui généré automatiquement, posté ici .
La sortie n'est pas terminée par une nouvelle ligne.
Je pourrais mettre un peu d'explication plus tard. Essentiellement, toute longue ligne qui ne soit pas quelque chose comme
>>>>>>>
ou<<<<<<<
ou>>.>>.>>.>>.
génère un caractère ou une série d'entre eux.la source
Lua -
217164154151149143Modification de l'ancien pour utiliser une boucle à la place, enregistre un bateau-charge de caractères. Merci à TeunPronk de m'avoir aidé à raser 10 autres personnages et à WilliamBarbosa de raser 3 autres personnages. 2 caractères supplémentaires peuvent être enregistrés à l'aide de la variable
k
. 6 caractères supplémentaires sont sauvegardés en éliminant la variable,r=" rock,"
car celle-ci est utilisée une fois.Ungolfed,
la source
j
etk
.O
, supprimerO
deR
, placez un espaceR
et de le remplacerR
parO,R
votreio.write
:)io.write
une variable (f=io.write
) et la réduire encore davantageCJam - 90 ASCII / 54 Unicode
ASCII:
Unicode:
Essayez-les à http://cjam.aditsu.net/
la source
Python (123)
PYG (112)
la source
Brainfuck - 680
testez-le ici: ideone.com/Wi9ftB
comme je l'ai promis, voici une meilleure version. mon cerveau se sent comme .. ooh alors c'est de là que vient le nom.
explication: (parce que c'est intolérable et que je ne veux pas oublier comment ça marche)
Tout d'abord, vous devez choisir la meilleure structure de données pour ce défi. Je suis venu avec
-4 outmost loop -3 newline char -2 space -1 numbers 1 lowercase #1 2 lowercase #2 3 comma, apostrophe, period 4 condition (outmost loop < 3) 5 inner loop 6 second inner loop
Nous devons croire que c'est optimal à moins qu'il y ait trop de changements (dans ce cas, vous devez réorganiser la mise en page).
Après cela, j’ai utilisé une boucle 4x9x3 pour définir les valeurs de départ de la nouvelle ligne, du nombre, des deux lettres minuscules et de la virgule. (Tous les codes ascii plus petits ont 4x9 = 36 et les deux lettres minuscules ont 4x9x3 = 108, puis j'en ai ajouté et soustrait quelques-uns pour obtenir leur valeur réelle)
Lorsque le préréglage est terminé, le code entre dans la boucle la plus à l'extérieur qui effectue 3 cycles. Je l'explique par pseudocode.
Lorsque cette section est terminée, il ne me reste plus qu'à imprimer la dernière ligne. Mais nous avons un W majuscule qui doit être produit sans utiliser trop de caractères. À ce stade, nous sommes ici:
donc je mets [-3] 4 fois à [-1] et soustrais 3 pour obtenir 87 (W):
>[>>++++<<-]>>---.
puis effacez-le
[-]
et déplacez [-2] vers cet emplacement [-1] afin que l'espace soit proche des lettres minuscules.
<[>+<-]
Après cela, il n’imprime que les lettres. les minuscules n ° 1 correspondent aux parties inférieures 97-107 et les minuscules n ° 2 à la région ci-dessus.
la source
JavaScript,
111107 caractères, sans utiliser de nombre.Exécutez ces extraits dans la console JS de votre navigateur:
107 (inspiré par http://xem.github.io/obfuscatweet/ et l'autre réponse JS):
111 (il suffit d'emporter toute la chaîne et de supprimer l'eval):
la source
C - 145 - essayez moi
C - 172 - essayez moi
la source
#include <stdio.h>
de l'utiliserprintf
?main(){...
PHP - 125
129Version 1 (129)
Version 2 (125)
Version propre:
la source
Perl,
114111110108110:
111:
114:
la source
C ++
261203Edité ma première tentative; cela a fonctionné lorsque je l'ai testé pour la première fois, mais cela semble être un coup de chance; post-incrémenter dans un flux est un "comportement indéfini", et cela a fait des choses étranges (y compris le filtrage bleu de Windows 7!) lorsque j'ai essayé de le réexécuter. Je pense que l’utilisation de printf au lieu de std :: cout pourrait être utilisée post-incrémentation pour obtenir un programme plus court.
Édité à nouveau, réduit à 231 en réimplémentant la boucle. Édité encore une fois, maintenant à 203 ... ces définitions ne sont pas toutes utiles dans la version en boucle.
Pour ceux qui se demandent comment le C ++ peut exécuter une fonction "m", le point d’entrée peut être défini comme toute fonction n’ayant qu’une option de compilation, de même que la définition de tous les fonctions comme étant stdcall; J'ai utilisé les deux commutateurs lors de la compilation de ce qui précède. Si vous n'aimez pas le point d'entrée redéfini, ajoutez 3 au nombre de mes personnages.
la source
m()
. Vous pouvez cependant supprimervoid
5 caractères (ou 2 si vous nommez la méthodemain
)Swift -
136134la source
Java, 228
Une solution codée en dur aurait probablement été plus courte.
la source
1+1+1
est 9 caractères plus court que"two".length()"
. Et estString[] a
nécessaire?Befunge-98 (
402268)Maintenant unfunge!
la source
,,:,1+
,a11+/a*b1111+++-+w:,
, caractères parasites sous la ligne principale du code ... typique Befunge. La plupart des interprètes en ligne ont des problèmes avec la longueur de la ligne (c'est bien au-delà de la limite), en connaissez-vous une qui ne le dérange pas?Groovy -
140139 caractèresGolfé, influencé par la réponse de William Barbosa :
Ungolfed:
la source
Mathematica - 153
la source
C ++ 252
la source
P(", ")
au lieu deQ
vous enregistre 2 caractères.N
etR
n'apparaissent qu'une fois: il serait préférable de les aligner plutôt que de faire une macro.#include<iostream> #define P std::cout<<++i<< #define C" o'clock" #define F P", ";P", ";P C<<", ";P C<<" rock"<<std::endl; int i;main(){F F F std::cout<<"We're gonna rock around the clock tonight.";}
Java (v2) -
250241232 caractèresIl s'agit d'un programme complet, influencé par la réponse de William Barbosa .
Golfé:
Ungolfed:
la source
ECMAScript6 -
136135N'utilise même pas le
1
chiffre autorisé :Testé dans la console Firefox.
la source
PowerShell,
123118109Après un début horrible (167), je me suis débarrassé de quelques idiomes dont je n'avais même pas besoin et au moins je l'ai eu plus court que la référence.
la source
Haskell -
138137 caractèresEn tant que programme autonome:
Edit: J'avais l'habitude d'avoir une fonction d'assistance o utilisé pour définir s par
mais il en coûte un personnage supplémentaire. Est-il possible de compresser toutes les "heures" / "rock" s / "ock" s?
la source
JavaScript, 140
Je crée une chaîne du style "x, x, x heure, x heure, rock, \ n ..." puis je remplace les "x" par des nombres.
la source
PHP 150
Aucun nombre, y compris les 11 qui ne seraient pas deux 1 collés ensemble, mais le nombre valeur onze.
la source
PowerShell,
156140136129127Ungolfed:
la source
$i++,$i++,"$(($i++)) o'clock","$(($i++)) o'clock rock,"-join', '
dans la boucle.Cobra - 193
la source