Ce défi consiste à imprimer une série de flèches croissantes de type ASCII. Je vais décrire le motif avec des mots, mais il pourrait être plus facile de regarder à quoi ressemble le début de cette série:
>
<
->
<-
-->
<--
--->
<---
---->
<----
----->
<-----
------>
<------
...
Une flèche de longueur n contient une pointe de flèche ( <
ou >
) et des n-1
tirets ( -
). Une flèche orientée vers la droite a les tirets en premier, puis a >
. Une flèche orientée vers la gauche commence par <
et est suivie des tirets. La série se compose d'une longueur de n
flèche orientée vers la droite suivie d'une longueur n de flèche orientée vers la gauche, avec n de 1 à l'infini.
Pour relever le défi, écrivez un programme ou une fonction qui prend une entrée, un entier i >= 1
et génère les premières i
flèches. Les flèches sont individuelles, pas dans des paires droite-gauche, donc pour i=3
vous, vous devez sortir:
>
<
->
Vous pouvez renvoyer une liste de chaînes ou les imprimer l'une après l'autre. En cas d'impression, les flèches doivent être délimitées par un délimiteur cohérent, qui ne doit pas nécessairement être une nouvelle ligne comme dans l'exemple.
Il s'agit de code-golf , donc le moins d'octets gagne.
Réponses:
Toile , 10 octets
Essayez-le ici!
la source
↔
ça y ressemble un peu!↔
est le "inversé horizontalement" intégré (également swapping>
&<
), malheureusement pas de flèches intégrées: pR , 69 octets
Essayez-le en ligne!
la source
strrep
contraint son deuxième argument pourinteger
que vous puissiez l'utiliser/
à la place de%/%
a
entièrement en indexant0...(n-1)
plutôt: essayez-le en ligne!Java (JDK) , 81 octets
Essayez-le en ligne!
Explications
la source
import java.util.function.*;
compte pas ?Haskell,
4140 octetsEssayez-le en ligne!
Récursion ancienne: commencez par string
p
=">"
, collectp
, un<
devant tout sauf le dernier caractère dep
et un appel récursif avec un-
mis devantp
. Prenez les premiersn
éléments de cette liste.Edit: -1 octet grâce à @xnor.
la source
Commodore BASIC V2 (C64), 94 octets
Pas entièrement sûr du nombre d'octets, cela est basé sur la représentation textuelle pour taper le programme valide. Il est un peu plus court sur le disque (91 octets) car BASIC V2 utilise une représentation "tokenisée" des programmes.
Démo en ligne
Légèrement "non golfé":
la source
Brainfuck auto-modifiable , 55 octets
Prenez l'entrée comme code de caractère.
Ne prend en charge la saisie que jusqu'à 255.
Utilisez un caractère nul pour séparer les lignes.
Par coïncidence, tous les caractères de dessin de flèche sont utilisés comme commandes BF. Malheureusement, il n'enregistre aucun octet (actuellement).
Essayez-le en ligne!
Explication
la source
Python 2 , 54 octets
merci à et Jo King pour avoir corrigé un bug.
Essayez-le en ligne!
la source
Pyth, 17 octets
La sortie est une liste de chaînes. Essayez-le en ligne ici .
la source
PowerShell ,
625650 octetsEssayez-le en ligne!
Boucles du
0
haut vers l'entrée$n
, chaque itération créant deux chaînes de flèches. Ceux-ci sont ensuite indexés avec0..--$n
pour extraire le nombre correct d'éléments.6 octets enregistrés grâce à KGlasier.
la source
param($n)(0..$n|%{($j='-'*$_++)+'>';"<$j"})[0..--$n]
. Vous n'avez donc plus besoin d'écrire$x
deux fois.++
in($j='-'*$_++)
car vous ne les utilisez$_
nulle part ailleurs.Python 3, 53 octets
Ma première réponse codegolf.
-10 octets grâce à Jo King
la source
Haskell ,
5144 octets-7 octets grâce à xnor (en utilisant
iterate
la compréhension de liste)!Essayez-le en ligne!
Explication / Non golfé
L'utilisation de
do
-notation nous permet d'économiser unconcat
, et l'utilisation de la notation infixe permet une fonction sans point avectake
, annuler ceux-ci donnerait:la source
Japt
-m
,16151312 octets1 octet enregistré grâce à Shaggy
Testez-le en ligne
Explication:
la source
Gelée , 15 octets
Essayez-le en ligne!
la source
MathGolf ,
1715 octetsEnregistré 2 octets grâce à Jo King et Kevin Cruijssen
Essayez-le en ligne!
Explication
L'approche de 15 octets est différente de ma solution d'origine, je ne peux pas prendre le crédit de la mise en œuvre.
la source
if/else
MathGolf? Je sais comment fonctionnent les instructions if-without-else et else-without-if, mais comment créer un if {...} else {...} dans MathGolf avec¿
? (Peut-être que je devrais poster ceci dans le chat au lieu d'ici .. Mais je pourrais peut-être avoir une sauvegarde de 1 octet si je peux corriger le if-else.)¿12
poussera 1 si vrai, sinon 2,¿Å3*Å1+
en ajoutera un si vrai sinon triple l'élément suivant¿{"foo"}{"bar"}
ou¿1{2}
.Japt
-m
, 14 octetsEssayez-le en ligne!
Mis à jour avec une toute nouvelle méthode.
Explication:
la source
ç
convertit automatiquement son premier paramètre dans une chaîne, vous pouvez donc supprimer le'
.u
méthode grâce à l'habillage d'index, ce qui peut faire 14 octets.C (gcc) ,
8077767471 octetsEssayez-le en ligne!
-3 octets avec idée en ASCII uniquement .
-1 avec
\0
au lieu de\n
-5 réarrangement des pièces
La sortie inclut une fin
\0
.la source
!n--
dans le premier bloc deJavaScript (ES6), 58 octets
Renvoie une chaîne séparée par des espaces.
Essayez-le en ligne!
la source
SNOBOL4 (CSNOBOL4) ,
123122118 octetsEssayez-le en ligne!
la source
V , 22 octets
Essayez-le en ligne!
la source
Fusain , 16 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. J'avais trois solutions de 17 octets avant de finalement tomber sur celle-ci. Explication:
Entrée
n
.Répétez les
n
temps, indexés 0.Tracez une ligne de
-
s de longueur moitié de l'index (tronquée).Dessinez la pointe de flèche et passez à la ligne suivante.
Refléter tout, renversant les pointes de flèches.
La boucle ci-dessus a des
n
réflexions, mais nous avons besoin d'un nombre pair de réflexions, alors effectuez une autren
réflexion.la source
Nettoyer ,
7673 octetsEssayez-le en ligne!
Utilise le fait soigné qui
['-','-'..]
est le même que['--'..]
pour économiser un peu.la source
JavaScript, 49 octets
Essayez-le en ligne!
la source
10000
, en attendant ma solution ES6 fonctionne toujours: D Quoi qu'il en soit, votre solution est très cool)Powershell, 51 octets
la source
6502 code machine (C64), 49 octets
Encore un peu plus court que BASIC ;) Celui-ci n'a une plage de nombres que
255
parce que la taille entière naturelle de la machine n'a que 8 bits.Démo en ligne
Utilisation:
SYS49152,[n]
(par exempleSYS49152,3
pour l'exemple du défi)Démontage commenté :
la source
Perl 6 , 39 octets
Essayez-le en ligne!
Bloc de code anonyme qui renvoie une liste de lignes.
la source
K (ngn / k) ,
3129 octetsEssayez-le en ligne!
nous créons d'abord des listes avec 0 au lieu de
"<"
, 1 au lieu de"-"
et 2 au lieu de">"
:{
}
fonction avec argumentx
x{
...}\0
appliquer lesx
temps des fonctions internes , en commençant par une valeur initiale de0
et en préservant les résultats intermédiaires|x
sens inverse2-
remplacer 0 par 2 et vice versa, garder les 1 tels quels1,
ajouter un 1(1=*x)_
est le premier dex
égal à 1? si oui, supprimez un élément, sinon supprimez 0 élément (ne faites rien)2,
ajouter un 2 pour la">"
flèche initialex#
nous avons un peu trop de listes, alors ne prenez que la premièrex
d'entre elles"<->"
utiliser les éléments des listes (0/1/2) comme indices dans cette chaînela source
05AB1E ,
2320 octetsEssayez-le en ligne!
Pour la première fois, utilisez 05AB1E ou toute autre langue de golf. Toutes les idées sont les bienvenues.
-3 de Kevin Cruijssen
la source
"><"
peut être„><
pour enregistrer un octet. Il y a builtins pour 1, 2 et 3 chaînes de char, étant'
,„
et…
respectivement. Voici une alternative de 18 octets que j'ai trouvée, mais peut-être pourrait-elle être un peu plus jouée au golf. Si vous ne l'avez pas encore vu, nous avons des conseils pour jouer au golf dans la page 05AB1E , et n'hésitez pas à demander quoi que ce soit dans le chat .C # (.NET Core) , 90 octets
Essayez-le en ligne!
Utilise un délégué Action pour extraire l'entrée et ne nécessite pas de retour.
Non golfé:
la source
ES6,
96827970 octetsEssayez-le en ligne! (Merci à @Oliver)
la source
i=>
devant votre code!) soit à partir d'un argument de ligne de commande ou STDIN ou quelque chose.Rouge ,
109108 octets-1 octet grâce à NK1406
Essayez-le en ligne!
la source