De la programmation des puzzles au code de golf


74

Votre tâche consiste à écrire un programme qui affiche la chaîne exacteProgramming Puzzles (fin de ligne nouvelle, facultatif). Toutefois, lorsque tous les espaces, onglets et nouvelles lignes sont supprimés, il est généré Code Golf(fin de ligne nouvelle, facultatif.)

Votre nombre d'octets est le nombre du premier programme, avec des espaces toujours présents.

Remarques

  • Les espaces dans Code Golf et Programming Puzzles seront supprimés dans le cadre de la suppression, alors planifiez en conséquence.

  • Dans les codages où 0x09, 0x0A et 0x20 ne sont respectivement pas des tabulations, des nouvelles lignes ou des espaces, ces caractères seront supprimés.

  • Si votre code est

    42  $@ rw$
    @42
    

    alors cela doit sortir Programming Puzzles. En outre, dans la même langue,

    42$@rw$@42
    

    doit sortir Code Golf.

C'est du , donc le code le plus court en octets gagne! Bonne chance!


3
l’espace Code Golfsera-t-il également supprimé, qu’en est-il de celui qui se trouve dans Programming Puzzles.
Colsw le

2
Ce sera impossible au moins dans Whirl et Whitespace .
Ingénieur Toast

13
A quoi servent les votes serrés?
OldBunny2800

12
@ OldBunny2800 bonne question. Je n'arrête pas de demander, mais le commentaire est supprimé ...
programmer5000 Le

12
Les votes serrés concernent le manque d’entrées et de sorties et la limitation du formatage des entrées et des sorties. 100% si vous aviez une section intitulée "règles" avec une liste détaillée de choses qui, à votre avis, étaient évidentes dans le défi, vous auriez 0 vote serré. Tout est question de présentation avec les gens de CompSci, si nous pouvons penser à une question apparemment idiote à poser qui pourrait nous faire économiser un octet, nous essayerons de contrer cette idiotie et vous ferez de grands auteurs de questions.
Urne Octopus Magique

Réponses:


65

Python 2 , 50 octets

print["Code\40Golf","Programming Puzzles"][" ">""]

Essayez-le en ligne!

Avec tous les espaces supprimés:

print["Code\40Golf","ProgrammingPuzzles"]["">""]

Essayez ça en ligne!

Merci à Stephen S pour 3 octets et à Erik the Outgolfer pour 1


2
Darn, ninja! J'étais sur le point de cliquer sur Post Answer! +1
HyperNeutrino

1
Je pense que vous venez de briser le cerveau de mon ami. Comment ça marche même?
Stevoisiak le

11
@StevenVascellaro C'est vraiment simple. Dans le premier cas, " ">""retourne True, puisque lexicographiquement, un espace est plus grand que la chaîne vide. Dans le second cas, "">""revient False, puisque rien ne peut être plus grand que lui-même. Trueet Falsesont en fait juste 1et 0respectivement, juste dans le booltype de données au lieu de intou long. Dans le premier cas, les espaces sont préservés, ainsi, l'élément à l'index 1 "Programming Puzzles"est renvoyé textuellement. Dans le second cas, les espaces ont disparu, d’où l’intégration \x20dans l’item à l’indice 0 "Code\x20Golf"pour conserver un espace.
Erik l'Outgolfer

9
@StephenS Nope, car contrairement à JavaScript, Python n'a pas une obsession pour le casting implicite.
Mego

1
Si le manque d'obsession de Python est troublant.
John Dvorak Le


22

05AB1E , 15 octets

”ƒËŠˆ”" "v”–±ÇÀ

Essayez-le en ligne!

Explication

”ƒËŠˆ”           # push "Code Golf"
      " "v       # for each character in the string " " do
          ”–±ÇÀ  # push "Programming Puzzles"
                 # implicitly output top of stack

... Je ne comprends pas. Est-ce que cela utilise la compression du dictionnaire ou quelque chose?
LegionMammal978

@ LegionMammal978 Je suis sûr que c'est le cas.
NoOneIsHere

@ LegionMammal978: Il utilise en effet la compression du dictionnaire.
Emigna

5
@Emigna D'accord, car la dernière fois que j'ai vérifié, aucune de ces chaînes ne pouvait être
insérée

1
@ Draco18s: Kevin a écrit un bon tutoriel sur la page de conseils que vous pouvez utiliser pour avoir une meilleure idée de la façon de l'utiliser.
Emigna le


16

CJam , 38 octets

" ""Programming Puzzles""Dpef!Hpmg":(?

Essayez-le en ligne! ou avec des espaces supprimés

Explication

" "                    e# Push this string.
"Programming Puzzles"  e# Push "Programming Puzzles".
"Dpef!Hpmg":(          e# Push "Dpef!Hpmg" and decrement each char, giving "Code Golf".
?                      e# If the first string is true (non-empty) return the second string,
                       e#   else return the third.

Le fait que des espaces soient dans le programme ou non détermine si la première chaîne est true ou fausseté.


27
Votre code est triste:(
Roman Gräf Le

14
Si vous êtes prêt à utiliser des éléments non imprimables, "Bncd\x19Fnke":)remplacez le code heureux \x19.
Erik l'Outgolfer

15

Gelée , 18 octets

“½ċṭ6Ỵ»ḷ
“Ñ1ɦ+£)G»

Essayez-le en ligne!

Explication

Dans le programme écrit, la première ligne est une fonction d'assistance qui n'est jamais exécutée. La deuxième ligne (la dernière dans le programme) est le programme principal et représente la représentation comprimée de la chaîne "Programming Puzzles"(qui est ensuite imprimée de manière implicite).

Si vous supprimez la nouvelle ligne, le tout devient un gros programme. “½ċṭ6Ỵ»est la représentation comprimée de la chaîne "Code Golf". évalue mais ignore son argument de droite, laissant la même valeur qu'avant l'exécution; il peut être utilisé pour évaluer les effets secondaires des fonctions (ce que j'ai déjà fait auparavant), mais il peut également être utilisé, comme ici, pour commenter efficacement du code.

Fait intéressant, la logique réelle ici est plus courte que l'entrée 05AB1E, mais le code dans son ensemble est plus long car le compresseur de chaînes est moins performant pour la compression de ces chaînes.


Cela s'avère être valide.
Erik l'Outgolfer

À ma connaissance, certains de ces caractères peuvent être sauvegardés en utilisant un octet, en supposant des encodages bien connus. Dans UTF-8, j'ai 36 octets ... Est-ce que je me trompe?
steffen

@steffen: Jelly utilise son propre codage de caractères , dans lequel tous les 256 caractères différents utilisés peuvent être stockés dans un seul octet. (La seule raison pour laquelle il fait cela plutôt que d'utiliser un encodage préexistant est par souci de lisibilité (!); Vous pouvez écrire de manière triviale le programme encodé dans, par exemple, la page de code 437, et il serait exécuté dans l'interpréteur Jelly, mais ce serait généralement le cas. beaucoup plus difficile à lire.)

13

Gelée , 17 octets

“Ñ1ɦ+£)G“½ċṭ6 Ỵ»Ṃ

Essayez-le en ligne!

Comment ça fonctionne

Comme dans l'autre réponse Jelly, Ñ1ɦ+£)Get ½ċṭ6Ỵencodez les chaînes de programmation Puzzles et Code Golf . commence un littéral de chaîne et en sépare une autre, tout en »sélectionnant le type de littéral (compression basée sur un dictionnaire).

["Programming Puzzles", "Code Golf"]

prend alors le minimum, cédant Code Golf .

Cependant, en ajoutant un espace entre ½ċṭ6et , nous obtenons une seconde chaîne complètement différente, et le littéral est évalué à

["Programming Puzzles", "caird coinheringaahing"]

Comme caird coinheringaahing est lexicographiquement plus grand que Programming Puzzles , sélectionne plutôt la première chaîne.


Je viens de faire la même chose avec“½ċṭ6Ỵ“Ñ1ɦ +£)G»Ṁ
Jonathan Allan le

À ma connaissance, aucun de ces caractères ne peut être sauvegardé avec un octet, en supposant des encodages bien connus. Dans UTF-8, j'ai 34 octets ... Est-ce que je me trompe?
steffen

@steffen Jelly utilise une page de code personnalisée qui code chacun des 256 caractères compris dans un seul octet.
Dennis

@Dennis merci pour clarifier.
Steffen

13

Javascript, 46 43 42 Octets

x=>" "?"Programming Puzzles":"Code\40Golf"

console.log((x=>" "?"Programming Puzzles":"Code\40Golf")())
console.log((x=>""?"ProgrammingPuzzles":"Code\40Golf")())


5
Vous pouvez remplacer le \x20dans la première chaîne par un espace.
Shaggy

Battez-moi, joliment fait. Est-ce que cela nécessite un trailing ;?
ricdesi

@ricdesi non, ça ne va pas.

3
@ricdesi puisqu'il s'agit de codegolf, si le programme fonctionne, cela fonctionne. ;s ne sont parfois pas nécessaires en JavaScript.
Stephen le

2
Vous pouvez remplacer \x20par \40pour sauvegarder un octet :-)
ETHproductions

10

Langage Wolfram, 62 octets

"Programming Puzzles"[ToExpression@"\"Code\\.20Golf\""][[0 1]]

L'espace dans [[0 1]]est une multiplication implicite, c'est donc équivalent à [[0]]. Sans espace, 01c'est juste 1. Les 0e et 1ère parties de cette expression sont les chaînes que nous voulons.

Une autre solution de validité douteuse (44 octets, 2 enregistrés par Kelly Lowder):

"Programming Puzzles"["Code\.20Golf"][[0 1]]

Il \.20est remplacé par un espace immédiatement lorsque vous le tapez dans un environnement Mathematica. Par conséquent, il est difficile de savoir s'il est supprimé avec les autres espaces…


1
Dès que vous collez (ou tapez) ceci dans Mathematica, (séquence basée sur le cloud ou non), la séquence d'échappement \:0020se transforme en un espace et sera donc supprimée. Par conséquent, je ne suis pas sûr que cela remplisse les conditions requises. Aussi \.20est plus courte.par deux caractères. "Programming Puzzles"["Code"<>FromCharacterCode@32<>"Golf"][[01]]marchera.
Kelly Lowder

1
@ KellyLowder, hmm, c'est un bon point. J'ai ajouté une autre solution qui devrait éviter ce problème. (Merci pour la \.20suggestion - comment avez-vous trouvé cela? Je pensais avoir fouillé toute la documentation…)
Pas un arbre

1
J'ai trouvé le \.20en faisant une faute de frappe. Semble fonctionner que pour les codes de caractère à deux chiffres. Je ne pense pas que cela soit dans la documentation.
Kelly Lowder

8

Excel - 56 octets

=IF(""=" ","Code"&CHAR(32)&"Golf","Programming Puzzles")

Très semblable à la plupart des autres réponses ... rien de compliqué ici.


8

Haskell, 48 octets

a _="Programming Puzzles";a4="Code\32Golf";f=a 4
a_="ProgrammingPuzzles";a4="Code\32Golf";f=a4

Définit la fonction fqui retourne la chaîne correspondante.

Pour référence, l'ancienne version est:

Haskell, 49/47 octets

f""="Code\32Golf";f(_)="Programming Puzzles";f" "

avec des espaces supprimés

f""="Code\32Golf";f(_)="ProgrammingPuzzles";f""

Deux correspondances simples. (_)correspond à tous les modèles. Vous pouvez améliorer la version sans espaces d'un octet en définissant le deuxième motif comme f" "=/ f""=, mais cela donne un avertissement "La correspondance de motif est redondante".

Solution alternative avec le même nombre d'octets:

last$"Code\32Golf":["Programming Puzzles"|" ">""]
last$"Code\32Golf":["ProgrammingPuzzles"|"">""]

7

Ohm , 33 32 octets

Utilise le codage CP437.

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀
▀4>~H├MS░l╬δ

Essayez-le en ligne!ou essayer sans espace

Explication

Avec des espaces:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀    Push "Programming Puzzles" (compressed string)
                       Implicitly output the top stack element


▀4>~H├MS░l╬δ           Helper wire (never called)

Sans espace:

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀▀4>~H├MS░l╬δ    Main wire

▀Bn¬i≈╣Ü╝Rb╡°╧S½uÇ▀                Push "Programming Puzzles" (compressed string)
                   ▀4>~H├MS░l╬δ    Push "Code Golf" (compressed string)
                                   Implicitly output top stack element

Je suis tellement content d'avoir enfin fini la compression des cordes!
Nick Clifford

1
@ NickClifford La chose curieuse que j'ai remarquée, c'est que la Code Golfcompression a rallongé . Je suppose que c'est à cause des capitales? De toute façon, il est toujours plus court que de l'écrire normalement car je ne peux pas utiliser d'espace littéral ici.
Business Cat

Oui, Smaz est un peu bizarre comme ça.
Nick Clifford

Pour votre information, n'hésitez pas à me contacter si vous avez des questions ou des demandes de fonctionnalités pour Ohm.
Nick Clifford

7

Japt , 29 octets

Avec des espaces:

`Co¸{S}Golf`r `PžgŸmÚÁ Puzz¤s

Essayez-le en ligne!

Sans espaces:

`Co¸{S}Golf`r`PžgŸmÚÁPuzz¤s

Essayez-le en ligne!


Ceci profite du fait que dans Japt, un espace ferme un appel de méthode. Avec des espaces, le code est à peu près équivalent à ce code JavaScript:

("Code"+(S)+"Golf").r(),"Programming Puzzles"

Ceci est évalué en tant que JavaScript et le résultat est envoyé à STDOUT. Puisque la dernière expression est "Programming Puzzles", cette chaîne est imprimée.

Sans espaces, le code est à peu près équivalent à:

("Code"+(S)+"Golf").r("ProgrammingPuzzles")

(Si vous ne l'avez pas encore compris, la Svariable est un espace unique.) La .r()méthode sur une chaîne, si un argument lui est attribué, supprime toutes les occurrences de cet argument de la chaîne. Comme "Code Golf"ne contient pas "ProgrammingPuzzles", il retourne "Code Golf"inchangé, qui est ensuite envoyé à STDOUT.


Je n'ai même pas pensé à utiliser remplacer. Joli!
Tom

À ma connaissance, certains de ces caractères peuvent être sauvegardés en utilisant un octet, en supposant des encodages bien connus. Dans UTF-8, j'ai 36 octets ... Est-ce que je me trompe?
steffen

@steffen Japt utilise le codage ISO-8859-1, dans lequel chaque caractère représente un octet. Mais certains caractères seraient non imprimables dans ce programme, j'ai donc utilisé l'encodage Windows-1252 ici (en fait, il a été généré automatiquement par TIO )
ETHproductions

6

Brachylog , 44 octets

" "Ṣ∧"Programming Puzzles"w|"Code"wṢw"Golf"w

Essayez-le en ligne!

Explication

" "Ṣ                                           If " " = Ṣ (which is itself " ")
    ∧"Programming Puzzles"w                    Write "Programming Puzzles"
                           |                   Else
                            "Code"w            Write "Code"
                                   Ṣw          Write " "
                                     "Golf"w   Write "Golf"

1
44 toujours barré: 44 :( modifier de &nbsp;chaque côté pour corriger :)
HyperNeutrino

@HyperNeutrino Ce n'est pas barré, 44 est la longueur avec des espaces et 42 sans.
Fataliser le

Oh. Oups. Eh bien, c'est trop similaire donc je ne saurais le dire sans regarder le démarquage en allant en montage.
Qu'à cela

5

Alice , 44 octets

/"floG!"t"edoC"#
 /"selzzuP gnimmargorP"d&o@

Essayez-le en ligne!

Sans espace:

/"floG!"t"edoC"#/"selzzuPgnimmargorP"d&o@

Essayez-le en ligne!

Explication

Dans le premier programme, les deux miroirs /redirigent le pointeur d'instruction sur la deuxième ligne. "selzzuP gnimmargorP"pousse les points de code requis dans l'ordre de révérence, dpousse la profondeur de la pile et &oimprime ce nombre d'octets. @termine le programme.

Sans les espaces, le programme est sur une seule ligne. Dans ce cas, le pointeur d'instruction ne peut pas être déplacé en mode ordinal, de sorte qu'il /devient effectivement un no-ops (techniquement, l'IP ne bouge tout simplement pas pour un pas, la même chose /est exécutée à nouveau et l'IP revient en mode Cardinal. ). Donc, si nous supprimons ceux du programme, cela ressemble à ceci:

"floG!"t"edoC"#"selzzuPgnimmargorP"d&o@

Pour inclure l'espace Code Golf, nous utilisons plutôt un point d'exclamation et le décrémentons t. Une fois que nous avons tous les points de code sur la pile, #ignore la commande suivante, qui correspond à la deuxième chaîne entière. d&opuis imprime à nouveau la pile et @termine le programme.


Vous devez jouer au golf (le 44 barré sur 44)
MilkyWay90

5

PHP, 44 octets

opérateur ternaire

<?=" "?"Programming Puzzles":"Code\x20Golf";

PHP, 51 octets

commentaire

<?=/** /"Code\x20Golf"/*/"Programming Puzzles"/**/;

PHP, 57 octets

commutateur de tableau

<?=["Code\x20Golf","Programming Puzzles"][(ord("
")/10)];


4

C # 88 81 70 63 octets

Func<string>@a=()=>" "==""?"Code\x20Golf":"Programming Puzzles";

Avec des espaces dénudés:

Func<string>@a=()=>""==""?"Code\x20Golf":"ProgrammingPuzzles";

Merci à BrianJ de m'avoir montré comment ne pas laisser d'espace entre un type de retour de méthode et le nom de la méthode, PeterTaylor pour avoir enregistré 7 18 octets et Patrick Huizinga pour la sauvegarde de 7 octets.

Même méthode que tout le monde, techniquement, cela pourrait être considéré comme non valide car la méthode ne spécifie pas de type de retour pour la méthode, mais il doit exister un espace entre le type de retour et le nom de la méthode.


1
vous pouvez préfixer le nom de la fonction avec un @, afin d' void@a...éviter les erreurs de compilation "aucun type de retour" (ajoute également des octets, bien que :()
Brian J

.Length<1enregistre un octet; \u0020enregistre six si j'ai compté correctement; et vous pouvez donner une réponse valide (et économiser quelques octets en même temps) en soumettant un lambda au lieu d’une fonction de niveau supérieur. Func<string>a=()=>...
Peter Taylor

@BrianJ Hmm, je ne le savais pas, je me demande pourquoi cela fonctionne du point de vue du compilateur. Quoi qu’il en soit, il risque de perdre des octets mais, techniquement, cette réponse n’est pas non plus concurrentielle, elle en vaut donc la peine. Merci!
Skidsdev

@Mayube the @est principalement utilisé si vous devez utiliser un mot réservé comme nom de variable (l'équivalent est entouré de []dans VB.NET (et MS SQL Server)).
Brian J

1
Oui, il faut retourner la chaîne. mais si vous utilisez à la =>place de returnvous n'avez pas besoin d'espaces. (Et même si vous utilisez return, vous pouvez return(...)).
Peter Taylor

4

Common Lisp (SBCL), 52 octets

(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)

Impressions Programming Puzzles

(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)

Impressions Code Golf

Ungolfed:

(format t "~[Programming Puzzles~;Code Golf~]" 0 1)

Explication

Le truc vient essentiellement de la façon dont #'formatfonctionne dans Common Lisp.

Dans CL, la plupart des espaces peuvent être omis à condition qu'il n'y ait aucune ambiguïté quant au début ou à la fin des jetons. La première astuce consistait à séparer les symboles formatet t. Je devais terminer le formatsymbole sans ambiguïté sans changer l' tinterprétation. Heureusement, `dans CL termine le jeton précédent avant qu’il ne soit traité et ,annule l’effet de` (`est utilisé pour implémenter un modèle, où la prochaine expression qui le suit est" citée ", mais toute sous-expression précédée de a ,est évaluée et le résultat inclus dans le modèle, donc `, est presque inexistant).

Le troisième argument formatest la chaîne de modèle. formatest similaire à printf en C, mais a des directives de formatage beaucoup plus puissantes et utilise ~ pour les indiquer au lieu de%. ~ [et ~] vous permettent de choisir entre plusieurs options d'impression, avec ~; en les séparant. Un argument supplémentaire est fourni pour formater - l'index numérique de celui que vous voulez imprimer. Afin de garantir la survie du "" dans Code Golf, j'ai utilisé la directive de tabulation ~ T, utilisée pour insérer des espaces, généralement pour aligner le texte en colonnes. ~ @ T est une variation qui insère simplement un nombre d'espaces donné, par défaut à 1.

Enfin, il existe deux arguments pour les formats 0 et 1. Avant de supprimer les espaces, le 0 est utilisé par ~ [~; ~] pour sélectionner "Programmation Puzzles" et l'argument de format supplémentaire (le 1) est supprimé (je suis je ne sais pas à quel point il est normal de supprimer des arguments de format supplémentaires, mais cela fonctionne sous Steel Bank Common Lisp) Une fois les espaces supprimés, un seul argument (01) permet de sélectionner "Code Golf".


1
+1, juste une chose: "mais toute sous-expression précédée de a ,est évaluée et épissée dans" N'est-il pas ,@nécessaire pour l'épissage?

"épissé" est un terme médiocre pour cela, certes. Techniquement, ,évalue l'expression suivante et inclut le résultat dans le modèle, tout en ,@supposant que l'expression sera évaluée dans une liste et inclut directement le contenu de cette liste dans le modèle. Traditionnellement, dans la communauté lisp, on ,@parle d’épissage, mais je ne suis pas sûr que ce soit le choix le plus évident. Je vais essayer de le reformuler un peu.
Départ

4

Java 8, 74 50 48 octets

()=>" "==""?"Code\040Golf":"Programming Puzzles"

@NonlinearFruit vous avez raison, j'ai changé celui-ci pour le rendre non compétent
Khaled.K

1
Je ne pense pas que l'impression soit une exigence, vous pouvez donc simplement renvoyer la chaîne. Je ne l'ai pas testé, mais l' ==opérateur devrait également fonctionner,()=>""==""?"Code\u00A0Golf":"Programming Puzzles"
NonlinearFruit

1
\u00A0-> \040pour une économie de 2 octets.
Poke



3

R, 50 octets

Je pense que c'est la même chose que cette réponse Javascript , et fondamentalement la même idée que toutes les autres.

`if`(' '=='','Code\x20Golf','Programming Puzzles')


3

dc , 50

[pq]sm[Programming Puzzles]dZ19=m[Code]n32P[Golf]p

Essayez-le en ligne .

[ ]définit une chaîne - Zmesure sa longueur. Si la longueur est 19, il contient un espace et la macro stockée dans le registre m est appelée, elle est imprimée Programming Puzzleset abandonnée. Sinon Code Golfest imprimé.


Pourriez-vous créer un lien vers l'interprète / docs / github dc?
programmer5000 le

@ programmer5000 Il suffit de choisir dc sur TIO, puis de cliquer sur le nom de la langue.
Dennis

@ Dennis merci, je ne savais même pas que TIO faisait ça!
programmer5000 le


3

T-SQL, 96 82 81 67 octets

print+iif(len(' x')=2,'Programming Puzzles','Code'+char(32)+'Golf')

Essayez-le en ligne | Sans espaces

Ancienne version (96 octets):

select(case'x'when(replace(' ',' ','x'))then'Programming Puzzles'else'Code'+nchar(32)+'Golf'end)

Beau travail, vous pouvez obtenir à 67 en perdant les parens extérieurs et en changeant la condition àiif(len(' x')=2
BradC

@BradC Ferme, mais le paren extérieur évite d'avoir besoin d'espace après print. J'ai utilisé un à la +place et cela a fonctionné.
mbomb007

Doit avoir collé et compté le mauvais. Et je ne savais pas non plus, mais le plus était le premier personnage que j'ai essayé et cela a fonctionné.
mbomb007

3

Perl 5 , 43 41 octets

say" "?"Programming Puzzles":Code.$".Golf

Essayez-le en ligne!

Utilise le fait que ce ' 'soit vrai en perl et qu'il ''soit faux. La $"variable est définie sur un espace par défaut.

Merci à @NahuelFouilleul pour la suppression de deux octets.


peut-être tard, mais "Code$\"Golf"est plus court et Code.$".Golfaussi
Nahuel Fouilleul

@NahuelFouilleul Ouais, j'étais assez nouveau quand j'ai écrit cette réponse. Merci quand même!
Chris


2

Befunge , 76 octets

" "0`#v_"floG"84*"edoC",,,,,,,,,@
,,,,,@>"selzzuP gnimmargorP",,,,,,,,,,,,,,

Essayez-le en ligne!

Ce n’est pas la solution la plus compacte, mais écrire du code Befunge sans espace est assez difficile.

Au tout début, il compare un caractère espace à 0. S'il est plus grand, il se place dans la ligne du bas. Si ce n'est pas le cas, comme c'est le cas lorsque vous remplacez l'espace par rien, il reste sur la première ligne.


Que font les ,s?
programmer5000 le

@ programmer5000 Chacun imprime un caractère.
Martin Ender

Une astuce pour imprimer un grand nombre de caractères jusqu'à atteindre un 0 est de faire, >:#,_ce qui pourrait vous faire économiser beaucoup d'octets
MildlyMilquetoast
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.