Disons que j'ai de l'art ASCII:
___
,"---".
: ;
`-.-'
| |
| |
| |
_.-\_/-._
_ / | | \ _
/ / `---' \ \
/ `-----------' \
/,-""-. ,-""-.\
( i-..-i i-..-i )
|`| |-------| |'|
\ `-..-' ,=. `-..-'/
`--------|=|-------'
| |
\ \
) ) hjw
/ /
( (
( Source )
Mais je veux me concentrer sur le câble de ce joystick, car je veux en fait une photo d'un chemin de jardin menant à une porte.
,=.
-|=|-
| |
\ \
) )
/ /
( (
Je pourrais copier ligne après ligne, je pourrais utiliser un éditeur de texte avec le mode de sélection de bloc, ou ... je pourrais écrire du code!
Donc, mon code a besoin de cinq arguments:
- Une œuvre d'art ASCII, une chaîne séparée par des sauts de ligne.
- L'axe X du coin supérieur gauche (1 indexé, à partir de la colonne de gauche, entier positif)
- L'axe Y du coin supérieur gauche (indexé 1, à partir de la ligne supérieure, entier positif)
- Largeur de l'image résultante (entier positif)
- Hauteur de l'image résultante (entier positif)
Cas de test
Image ASCII:
___
,"---".
: ;
`-.-'
| |
| |
| |
_.-\_/-._
_ / | | \ _
/ / `---' \ \
/ `-----------' \
/,-""-. ,-""-.\
( i-..-i i-..-i )
|`| |-------| |'|
\ `-..-' ,=. `-..-'/
`--------|=|-------'
| |
\ \
) ) hjw
/ /
( (
Chemin de jardin
- X: 10
- Y: 15
- Largeur: 5
- Hauteur: 7
Résultat:
,=.
-|=|-
| |
\ \
) )
/ /
( (
Icône DB
- X: 3
- Y: 12
- Largeur: 6
- Hauteur: 4
Production:
,-""-.
i-..-i
| |
`-..-'
Ancien étranger
- X: 9
- Y: 1
- Largeur: 7
- Hauteur: 10
___
,"---".
: ;
`-.-'
| |
| |
| |
.-\_/-.
| |
`---'
Signature
- X: 16
- Y: 19
- Largeur: 3
- Hauteur: 1
hjw
Règles
- La sortie peut être donnée par n'importe quelle méthode pratique .
- Un programme complet ou une fonction sont acceptables.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Y
devrait être bew15
, et dans TC 2,X
devrait être3
Réponses:
Toile , 1 octet
Essayez-le ici!
Il prend la hauteur, la largeur, l'art Y, X et ASCII comme entrées, dans cet ordre.
Bien que presque tout sur les objets d'art ASCII dans Canvas soit indexé 0,
@
est indexé 1 pour une raison quelconque. ¯ \ _ (ツ) _ / ¯la source
Python 2 ,
6462 octetsEssayez-le en ligne!
Si
X
etY
peuvent être0
indexés:Python 2 , 56 octets
Essayez-le en ligne!
la source
Fusain , 7 octets
Essayez-le en ligne! Le lien est vers la version détaillée du code. Prend les coordonnées indexées 0. Explication:
Imprimez l'art ASCII.
Aller dans le coin supérieur gauche du rectangle souhaité.
Coupez la toile à la taille souhaitée.
la source
Pip
-n
, 21 octetsEssayez-le en ligne!
Ou, si l'indexation 0 est autorisée ...
Pip
-n
, 17 octets :Essayez-le en ligne!
Explication
Prend les cinq arguments comme arguments de ligne de commande.
Les solutions ci-dessus supposent également que l'entrée est un rectangle parfait - c'est-à-dire que les lignes ont toutes la même longueur. Sinon, 2 octets supplémentaires sont nécessaires (utilisez à la
-l
place de-n
):la source
05AB1E ,
2119 octetsEssayez-le en ligne!
Ou si
0-indexing is allowed
:05AB1E , 18 octets
Essayez-le en ligne!
la source
[X1, X2]
et[Y1, Y2]
asv³ŸNåiy²ŸèJ=
Japt
-R
,1311 octetsEssayez-le
2 octets économisés grâce à Kamil Drakari
9 octets sinon pour l'exigence inutile que les solutions utilisent une indexation basée sur 1.
Explication
la source
t
, et 2 autres octets par 0 d'indexation. Il vaut peut-être la peine d'attendre le deuxième, car OP n'a pas précisé si l'indexation 0 est acceptable ou corrigé les cas de test.t
méthode fonctionne également sur les tableaux.JavaScript (Node.js) ,
7069 octets-1 Merci @Shaggy pour l'
splice()
idée.Essayez-le en ligne!
L'art ASCII donné est ennuyeux tbh
la source
J , 45 octets
Essayez-le en ligne!
Remarques: J accepte jusqu'à 2 arguments, gauche et droite. L'argument de droite est la chaîne d'art ASCII, celle de gauche - une liste de valeurs UHXW
Je simule la nouvelle ligne et l'appel de fonction a un code pour convertir la chaîne en un tableau.
la source
V , 16 octets
Essayez-le en ligne!
L'entrée devrait être remplie d'espaces pour être un rectangle parfait. De plus, l'entrée «Y» précède le «X».
Hexdump:
la source
C (gcc) ,
118109octetsL'entrée peut contenir des lignes irrégulières: les retours à la ligne sont imprimés s'ils existent dans la plage y.
Merci à plafondcat pour la suggestion.
Essayez-le en ligne!
la source
Gelée , 11 octets
Essayez-le en ligne!
Prend l'art ASCII comme une chaîne r multi-ligne Python (afin d'éviter les problèmes avec les barres obliques inverses).
la source
Haskell , 61 octets
Essayez-le en ligne!
Prend des arguments pour:
x
,y
,w
,h
,s
.la source
Bash + coreutils, 37
Fait intéressant, GNU tail 8.28 (sur Ubuntu 18.04) autorise le
+NUM
formatage, tandis que GNU tail 8.29 sur TIO nécessite 2 octets supplémentaires pour cela-n+NUM
.Essayez-le en ligne!
Je pensais que cela
sed
pourrait être plus court, mais à 50 octets, ce n'est pas:la source
K4 , 31 octets
Solution:
Exemples:
Explication:
Prenez l'entrée 1-indexée, générez les coordonnées x / y et indexez dans l'art ascii.
la source
R , 62 octets
Peut-être une solution étonnamment courte à un défi de texte dans R, car nous n'avons pas besoin de lire le texte entier dans une matrice.
Essayez-le en ligne!
la source
\ / \ /> , 123 octets
Entrée se compose d'une seule ligne de variables d'entrée séparées par des espaces
x
,y
,w
, eth
, suivie de l'art ascii sur la ligne suivante avant.Explication
Ce code utilise la capacité de \ / \ /> à s'auto-modifier en plaçant l'art ascii dans le code lui-même, ce qui finit par ressembler à ceci:
Il saisit ensuite les caractères dans le rectangle spécifié hors du code et le génère.
la source