introduction
Pour faire court: il y a quelques jours, j'ai accidentellement commencé à tricoter une chaussette et la structure assez logique des points unis me conduit à l'idée: pourquoi ne pas simplement tricoter une chaussette en ASCII?
Contribution
L'entrée est un entier pair N dans la plage [2,30].
Production
La sortie est une chaussette, évidemment.
Structure
Parce que nous n'utiliserons que des points simples, vous n'utiliserez que vpour un point vers le bas et >pour un point à droite. Permettez-moi d'expliquer la structure complète avec un exemple pour N=8:
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvv>>>
vvvvvv>>>>>>
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
- Le premier bloc est la partie supérieure. Il a la largeur
Net la hauteurN*1.5 - Ensuite, le talon commence. Vous soustrayez un
vpar ligne du côté droit jusqu'à ce que vous ayezN/2comme largeur. Ensuite, vous ajoutez desN/2lignes avec la largeur enN/2dessous pour terminer les tricots vers le bas. Notez qu'il donne un total deN/2 + 1lignes avec la largeurN/2
première partie:
vvvvvvvv //begin with width N
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv // N*1.5 times
vvvvvvv // reduce
vvvvvv
vvvvv
vvvv // till here
vvvv // repeat N/2 times
vvvv
vvvv
vvvv
- Maintenant, les tricots latéraux commencent. Vous commencez avec la première rangée réduite, remplissez
>jusqu'à ce que vous ayez la largeurNet ajoutez deux autres. Continuez ce processus, y compris la première ligne avecN/2largeur - Remplissez les lignes au- dessous de ce niveau et ajouter les
N*1.5temps>à ce - Laissez les parties extérieures telles quelles et ajoutez sur la rangée sous la première et sur le lase deux autres
>'sjusqu'à ce qu'elle soit terminée
deuxième partie:
vvvvvvvv
vvvvvvv>>> //fill to N and add two >
vvvvvv>>>>>> //repeat
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>> //till here
vvvv>>>>>>>>>>>>>>>>>>>>>>>> //fill to the row above and add N*1.5 times >
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row above
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row beneath
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
Règles
Les nouvelles lignes de fin sont correctes.
Vous pouvez choisir entre majuscules ou minuscules, Vmais cela doit être cohérent.
Il s'agit de code-golf, donc le code le plus court en octets l'emporte.
Cas de test
N=2
vv
vv
vv
v>>>
v>>>>>>
N=4
vvvv
vvvv
vvvv
vvvv
vvvv
vvvv
vvv>>>
vv>>>>>>
vv>>>>>>>>>>>>
vv>>>>>>>>>>>>
N=6
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvv>>>
vvvv>>>>>>
vvv>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
N=12
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvv>>>
vvvvvvvvvv>>>>>>
vvvvvvvvv>>>>>>>>>
vvvvvvvv>>>>>>>>>>>>
vvvvvvv>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vou Vinterchangeable? Je vais supposer pour le moment que vc'est le seul autorisé, mais autoriser Vaffectera le nombre d'octets