Votre travail, si vous choisissez de ne pas le refuser, est d'écrire un programme qui "jouera" un morceau de code donné dans la langue de votre choix.
Fonctionnalité de base:
- Supprimer les espaces superflus
- Supprimer les commentaires
Fonctionnalité «avancée»:
- Combiner les déclarations (
int x; int y; int z;
àint x, y, z;
) - Utiliser des variations plus courtes des structures de contrôle de base (
while(1)
est remplacé parfor(;;)
) - Déplacer le code (
i = 0; while(i < 10) { /* ... */ ++i; }
versfor(i = 0; i < 10; ++i) { /* ... */ }
) - Etc
popularity-contest
metagolf
Mateen Ulhaq
la source
la source
Réponses:
Python avec Python
Fait un tas de choses, y compris renommer des variables, se débarrasser des espaces blancs et des commentaires inutiles, et mettre autant que possible sur une seule ligne. Ne fonctionne pas toujours complètement avec une syntaxe python plus sophistiquée et je continuerai à mettre à jour avec les correctifs.
Code:
Testé sur un ancien programme de dessin fractal que j'avais ( 4672 à 1889 ):
Original:
Golfé:
Exécuter sur lui-même (créant un quine très long) ( 9951 à 5323 ):
la source
import*
place deimport *
. Je suppose que cela fonctionnera également en Python 2?BrainFuck - 489 personnages
Supprime tous les caractères non exécutables. Respecte les commentaires de # à la fin de la ligne.
Naturellement, parcourez-vous à partir de cette source:
la source
<>
qui ne fait rienGolfeur de Brainfuck dans Bash (v3)
Ceci est un travail en cours, je continuerai à le mettre à jour si je le peux.
Lit à partir d'un fichier (le nom de fichier doit être le premier argument de ligne de commande).
Pour l'instant, tout ce qu'il fait, c'est
<>+-.,[]
<>
,><
,+-
,-+
>>>><<<<<
se réduit à<
Code
Comment ça marche
Après avoir supprimé tous les caractères non exécutables, il procède comme suit. Le compteur de coups est réglé sur
-1
au début - il compte le nombre d'opérations de golf effectuées à chaque fois que la boucle extérieure fonctionne.<>
,><
,+-
ou-+
, ajouter 1 à lahits
compteur et revenir à l' étape 1.la source
Golfeur HQ9 + dans Bash (v3)
Je sais que le HQ9 + est inutile, mais je ferais aussi bien de lui proposer un cinq lignes. Il lit de
entrée standardun fichier. Le chemin d'accès au fichier doit être le premier argument de ligne de commande.traits
HhQq9+
)+
(il incrémente un nombre mais il n'y a aucun moyen d'imprimer ce nombre)hq
en majuscules (pas de golf)Code
la source
/dev/stdin
le premier argument :)Java avec Java
Prend le nom de fichier comme argument de ligne de commande et modifie le fichier en place.
while(true)
enfor(;;)
private
etfinal
Lorsque le programme s'exécute sur lui-même, sa taille est réduite de 7792 à 4366.
la source
Perl, parties 1 à 2
(supprime les commentaires et ignore les
#
caractères entre guillemets doubles)(supprime tous les espaces après les crochets et les
=
signes)Je n'ai pas essayé de jouer au golf avec ce code. Peut-être qu'une fois terminé, il pourrait jouer au golf lui-même.
Exemple d'entrée
Sortie
Ensuite, il éliminera les espaces entre les symboles et les caractères alphanumériques.
la source
Golfeur Java en Perl
WIP pour le moment, bien qu'il obtienne du code assez sympa en ce moment.
Fonctionnalités:
Code
la source