'christmas-tree' 레포에 아희 묻히기
다양한 언어로 크리스마스 트리를 만들어보자
christmas-tree
카톡에서 Resten 개발자님이 보내주신 재밌는 레포를 보게 되었습니다.
이전에 작성했던 글에서 소개한 i-want-go-home과 같은 다양한 언어로 출력문, 코드를 작성하는 레포입니다.
Readme에 레포를 사용하는 방법이 잘 나와있습니다.
작성할 언어를 정해보자
저는 우선 제가 좋아하는 언어인 아희
를 사용하여 작성을 해보려고 했습니다.
하지만 이미 빠르게 아희로 PR을 넣으신 분이 계셨습니다.
하지만 가이드라인에서 알 수 있듯이
그리고, 이미 작성된 언어가 있어도, 자신만의 트리를 추가하는거니,
자신이 하고 싶은 언어명 으로 된 폴더에 다른 파일 명으로 자신의 크리스마스 트리를 추가할 수 있습니다.
이미 언어가 작성되어있어도 자신만의 트리 파일을 추가 할 수 있다고 합니다.
저는 그래서 아희 언어를 사용하여 PR을 넣어보려 했습니다.
fork 고고
우선 가이드라인대로 Fork
를 한 뒤 새로운 branch
를 하나 만들어줬습니다.
이제 코드를 작성한 후 해당 레포의 aheui
폴더에 아희 코드 파일을 추가한 후 PR을 넣으면 끝입니다.
아희 베이스 작성
이번에 해볼 것은 아희 코드로 크리스마스 트리 아스키 아트를 출력하는 코드 만든 다음,
진짜 트리 모양으로 코드를 변형해보려고 합니다.
먼저 검색을 통해서 크리스마스 트리 모양 아스키 아트 텍스트를 찾아봤습니다.
1 | _ |
이제 아희로 해당 아스키 아트를 출력하는 코드를 먼저 작성할 차례인데…
너무 깁니다.
아희 언어의 특성상 2~9의 숫자와 사칙연산 + 나머지연산
으로 뽑아낸 값에 해당하는 코드포인트의 유니코드 문자를 UTF-8로 출력하기 때문에 긴 출력문을 만드려면 상당한 노력이 필요합니다.
하지만 이를 편하게하기 위해서 제가 만들어뒀던 툴이 있습니다.
플레이스토어에 배포해두었던 AheuiRo 앱 입니다.
저 아스키 텍스트를 AheuiRo
앱에 돌려서 먼저 모양을 고려하지 않고 한 방향으로 작성된 아희 출력문을 얻어옵니다.
1 | 반밙따밣밗따빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밢밟따밣다밦다맣박발따맣밣밭따빠맣빠맣빠맣빠맣빠맣빠맣맣밖밠따밪다밤따맣밢밡따밫다밠다맣밣밗따맣받밪타망밣밮따맣발밟따반다맣밮밠따밬다밭따맣박발따맣밣밮따빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밗밝따받다밨따맣밙밡따반다맣밤밝따밪다밭따맣밞밟따밤다밝다맣밮밝따받다밫따맣반밙따맣밣밥따빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밮밝따받다밭따맣박밙따맣밣밨따빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밣밣따맣반발따맣밣밭따빠맣빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밚밡따박다맣밚밣따밪다맣밡밢따밖다밠다맣반밚따맣밣밭따빠맣빠맣빠맣빠맣빠맣빠맣빠맣맣밪발따밠따밦다맣밙밞따박다맣밣밣따맣밞밞따밭다밝다빠맣맣박발따맣밣밮따빠맣빠맣빠맣빠맣빠맣맣밚밣따밪다맣밚밞따박다빠맣맣밪밚따밠따밦다맣밚밢따박다맣밟밡따밮다밝다빠맣맣밬발따밝따밦다맣반밚따맣밣밫따빠맣빠맣빠맣빠맣빠맣맣밚밞따박다빠맣맣발밣따밬다맣밚밡따반다맣밣밣따맣밟밟따밫다밝다빠맣맣발밟따박다맣발밣따받다맣받발따밝따밦다맣반밚따맣밣밫따빠맣빠맣빠맣빠맣맣밙밞따반다맣밟밞따밮다밠다맣밙밢따박다맣밪발따밝따밦다맣발밡따박다빠맣맣발밣따받다맣발밞따반다맣밞밡따밗다밝다빠맣빠맣빠맣맣반발따맣밣밮따빠맣빠맣빠맣맣밙밣따밬다맣밙밡따박다빠맣빠맣맣밞밟따밨다밝다맣밚밡따반다빠맣맣밟밟따밨다밝다맣밪밚따밠따밦다맣밢밞따밤다밠다맣밪밙따밝따밦다맣밚밣따밬다맣밞밢따밥다밝다빠맣맣밪밚따밝따밦다맣박밚따맣밣밭따빠맣빠맣맣받발따밠따밦다맣밚밞따박다맣밙밣따받다맣밣밣따맣밙밡따박다맣밙밣따밪다빠맣맣밙밢따반다맣밟밞따밗다밠다빠맣빠맣맣밣밣따맣밢밟따밨다밠다빠맣맣발밞따박다맣밡밟따밭다밝다맣발밣따밬다맣박발따맣밣밮따빠맣맣밙밞따박다맣밡밞따밮다밝다맣밙밡따반다맣밙밣따밬다맣발밢따박다빠맣빠맣맣받밙따밝따밦다맣발밟따박다맣밣밣따맣밢밞따밮다밝다맣받밙따밠따밦다맣밙밣따받다맣발밟따반다맣밟밟따밨다밝다맣밚밣따밪다맣밢밟따밨다밝다빠맣맣박밚따맣밣밫따맣밪밙따밠따밦다맣밚밞따반다맣발밣따밬다맣밚밟따박다맣밟밟따밗다밠다맣밚밟따반다맣밣밣따맣밚밢따반다빠맣맣밥밝따받다밭따빠맣맣밡밟따밫다밝다맣밙밟따반다맣밞밟따밭다밠다빠맣맣밬밙따밠따밦다맣밢밟따밥다밠다빠맣빠맣맣밪발따밝따밦다맣밣밤따맣밞밟따밣다밦다맣박밙따맣밣밭따빠맣맣발밡따반다맣밡밡따밣다밦다빠맣맣밣밗따맣밚밢따반다맣밗밝따밪다밖따맣밣밥따빠맣맣밭밝따밪다밖따빠맣맣밣밗따빠맣빠맣빠맣빠맣빠맣맣밙밟따반다맣밟밞따밣다밦다빠맣맣밣밗따맣밚밟따박다맣밥밝따밬다밮따맣박밙따맣밣밭따맣밖밠따받다밮따맣밣밭따맣밦밠따맣밣밗따맣밖밝따밪다밥따맣밣밥따맣밮밠따받다밗따맣밣밗따맣밣밚따맣밡밞따밣다밦다빠맣맣발밝따밦다맣밢밟따밣다밦다빠맣빠맣맣밣밨따맣밤밝따밪다밭따맣밣밫따맣밦밝따맣밣밥따맣밮밠따밬다밗따맣밣밮따맣밮밝따밪다밭따맣박밚따맣밣밫따맣밗밝따밬다밨따맣밞밟따밣다밦다빠맣빠맣맣밗밝따밪다밥따맣밙밢따박다맣밟밟따밣다밦다맣밣밨따빠맣빠맣맣발밞따박다맣밡밢따밣다밦다빠맣맣밣밫따맣밙밡따박다맣밫밠따밬다밨따빠맣맣밞밟따밣다밦다빠맣빠맣맣밨밝따밬다밤따맣밙밞따반다맣반발따맣밣밤따빠맣빠맣빠맣빠맣맣밚밢따박다맣밟밟따밣다밦다맣발밟따반다맣밫밝따밬다밨따맣밣밭따맣밖밠따밪다밭따맣밣밭따맣밦밠따맣밣밭따맣밥밝따밬다밗따맣밣밨따맣밭밝따밪다밖따맣박밙따맣밣밥따빠맣빠맣빠맣맣밖밝따밪다밥따맣밞밞따밣다밦다맣밗밠따밬다밫따맣밚밢따반다맣밣밤따빠맣맣밫밠따밪다밫따맣밢밞따밣다밦다빠맣빠맣맣밭밝따밪다밥따맣밚밟따반다맣마희 |
마지막에서 두번째의 마
는 스택을 비우기위한 코드인데 필요없으니 버립시다.
(아직 앱 업데이트를 못했습니다 ㅈㅅ…)
그 다음 크리스마스 트리 모양을 만들 차례인데 디자인 센스가 없어서
그냥 좀 길다란 삼각형 아래에 사각형을 달아보려고합니다.
먼저 메모장을 이용해서 엔터를 넣어주는 작업을 했습니다.
코드 변형
먼저 이런식으로 삼각형을 생각하면서 엔터를 넣어줍니다.
그 다음 띄어쓰기를 밑에부터 1개씩 늘려주며 넣으면 되는데
엔터를 넣을때와 마찬가지로 너무 넙적해지지 않게 두줄씩 같은 개수의 띄어쓰기를 넣어주었습니다.
밑에 남겨둔 줄은 트리의 밑동인 사각형을 만들기 위한 줄 입니다.
이번엔 코드양이 좀 길고 변형을 많이 해야하니 Avis라는 툴을 사용해보겠습니다.
유명한 아희 인터프리터 3종중에 편의 기능을 제일 많이 지원하는 툴 입니다.
그 다음 코드 시작을 위해서 아
를 첫칸에 삽입해줍니다.
Avis
에는 종성이 ㅏㅏㅏㅏㅏㅏ
로 된 코드를 ㅓㅓㅓㅓㅓㅓ
로 바꿔주는 식의 좌우반전, 다시 그리기 등의 기능이 있는데요.
이 기능을 활용하여 적당히 수정해준 후, 띄어쓰기를 모두
1 |
로 바꿔서 간격을 일정하게 만들어줍니다.
그럼 완성됩니다.
1 | 아 분 희 |
ㄹ자로 휘어지게 작성해보았습니다.
소감
저번 PR
보다는 나아졌으나…. 이번엔 코드를 한글자 잘못 작성한걸 발견하여 뒤늦게 재PR을 넣었습니다.
복잡한 코드 변형은 Avis
가 더 좋은것 같고, 실행 경로 확인은 AheuiChem
가 더 유리한 것 같습니다.
다들 크리스마스 전에 자기가 좋아하는 언어로 PR을 해보면 좋을 것 같습니다!
- 틈틈히 쉬운 아희 강좌글 작성을 하고 있습니다 크리스마스 전에 완성되면 좋겠네요
글에 사용을 허락해주신 Resten님 감사합니다 🙌