X marque l'endroit
Votre objectif est d'ajouter un réticule autour du X majuscule:
Exemple d'entrée / sortie
Contribution:
mdhyyyyyyyhhhddmmm
mdyyssoo oooosyyyhhhdmm
hsso oossoooooyyhhdhhdmmm
yoooooo oo ssysssyhhdyyyhmmmm
myso oso o oyo hhhdhhyhyhhm mm m
mhsyhhys oss yyyhhhsosyhhmmmmdmmm
mhyhhhy y ssyhoho o shhdmmmmdmmmm
hhyyyh s oo syysyyhhdysso oyhdhhhmmmmm
dhysyys sdysoXoyyyyhhso syshm mmm
hhyhyo o osss y shhyyhd mmmmmm
yyhyyyss o oyyyydmmdmmmmmmmmm mm
ysyhyhhho s osy sdm m mddmmddhydmmm
h oshhhyyyddhoo ooyysshdmdohdmmdmddsshmmm
y oyhhhdhhsyhsssshdddsss hdddyyyhddm
dyyshyyhssyyhyyyyddhhmmdmmmdy syssoosyhdm
hsyyhhhhsoo sooyyhhdoohdhhyhyysoo osdm
doyhhhyyyyhhhysyyy oossyyssso osydm
soyhyyhhhhhhyhyyyooos ohdddm
msoyyyyyyyhyyyyo ooo syyd
ho oyyysooo osso osyd
dhyyysssyyyyyysoosdm
mmdddddmmm
Production:
mdhyyyyyyyhhhddmmm
mdyyssoo oooosyyyhhhdmm
hsso oossoooooyyhhdhhdmmm
yoooooo oo ssysssyhhdyyyhmmmm
myso oso o oyo hhhdhhyhyhhm mm m
mhsyhhys oss | yyyhhhsosyhhmmmmdmmm
mhyhhhy y |ssyhoho o shhdmmmmdmmmm
hhyyyh s oo s|ysyyhhdysso oyhdhhhmmmmm
dhysyys -----X-----hhso syshm mmm
hhyhyo o | osss y shhyyhd mmmmmm
yyhyyyss |o oyyyydmmdmmmmmmmmm mm
ysyhyhhho s |sy sdm m mddmmddhydmmm
h oshhhyyyddhoo ooyysshdmdohdmmdmddsshmmm
y oyhhhdhhsyhsssshdddsss hdddyyyhddm
dyyshyyhssyyhyyyyddhhmmdmmmdy syssoosyhdm
hsyyhhhhsoo sooyyhhdoohdhhyhyysoo osdm
doyhhhyyyyhhhysyyy oossyyssso osydm
soyhyyhhhhhhyhyyyooos ohdddm
msoyyyyyyyhyyyyo ooo syyd
ho oyyysooo osso osyd
dhyyysssyyyyyysoosdm
mmdddddmmm
Contribution:
000000000000
000000000000
0000X0000000
0000000X0000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
000000000000
Production:
|
0000|00|0000
0000|00|0000
-----X--+--00
00--+--X-----
0000|00|0000
0000|00|0000
0000000|0000
000000000000
000000000000
000000000000
000000000000
000000000000
Contribution:
00000000000000000
00000000000000000
00000000000000000
00000X000X0000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
Production:
00000|000|0000000
00000|000|0000000
00000|000|0000000
----+#+++#+----00
00000|000|0000000
00000|000|0000000
00000|000|0000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
00000000000000000
Réticule
Votre réticule doit être un 3 de haut et 5 de large:
|
|
|
-----X-----
|
|
|
Contribution
L'entrée aura au moins 12 x 12 caractères et ne sera composée que de caractères ASCII. Il peut être récupéré via STDIN ou un argument de fonction. L'entrée ne contiendra pas toujours un X. L'entrée aura n'importe quelle forme et aura une quantité arbitraire d'espaces. L'entrée ne contiendra aucune de: +
, -
, #
et|
Production
La sortie peut se faire via STDOUT ou la valeur de retour d'une fonction. La sortie doit être l'image d'entrée avec le réticule dessiné. S'il n'y a pas assez d'espace pour dessiner le réticule, vous devez ajouter des lignes / espaces pour le dessiner. Les taches qui se chevauchent doivent être remplacées par a +
. Si le |
ou -
du réticule chevauche un X
, au lieu d'un +
, un #
devrait apparaître.
Les espaces blancs de fin ne sont pas autorisés, sauf pour une seule nouvelle ligne à la toute fin.
C'est le code-golf donc le code le plus court en octets gagne!
+
chevauchement-
et|
s'applique uniquement lorsque ces caractères font partie du réticule, ou cela affecte-t-il le littéral-
et se|
trouve-t-il également dans l'entrée?#
dans l'entrée est rencontré par un réticule? Sera-t-il écrasé?Réponses:
CoffeeScript,
345336327 octetsX
est la fonction à appeler.Expliqué:
Exécutable:
Afficher l'extrait de code
la source
Python 3,
577519515490475467454 octetsJe ne sais pas jusqu'où je peux jouer au golf.
Usage:
Où
g
est la grille d'entrée etd
le caractère de réticule.la source
Perl, 370 octets
Utilisation, enregistrez ci-dessus comme
xmarks.pl
:perl xmarks.pl <<< 'X'
Je ne sais pas combien je peux faire plus petit, mais je suis sûr que j'y reviendrai plus tard! Je pourrais poster une explication si quelqu'un est intéressé aussi.
Gère également les entrées
X
et les entrées non carrées.la source
Python 2,
755 706 699 694 678626 octetsAttend une entrée sur stdin, avec une nouvelle ligne de fin. La fin de l'entrée est déclenchée avec
cmd+d
.Programme complet:
Je suis sûr que beaucoup plus de golf pourrait être fait à ce sujet (puisque j'apprends encore le python), donc toute aide est appréciée.
Modifications
findX
aide de pour la compréhensionrange
au lieu d'un tableau littéralfindX
à un lambdaxs
de 4 et en éliminant letry-except
blocageh=i=j=k=l=0
au lieu deh,j,k,l=0,0,0,0
chooseChar
la source
R=range
pour raccourcir les plages. Ensuite, vous pouvez également changerfor i in[5,4,3,2,1,-1,-2,-3,-4,-5]:
pourfor i in R(5,0,-1)+R(-1,-6,-1):
q
lambda me semble très inefficace. Cela peut-il être raccourci du tout? À tout le moins, je ne pense pas que les parenthèses soient nécessaires, mais je pense que la logique booléenne et les comparaisons de chaînes peuvent également être raccourcies.