코딩한걸음
article thumbnail
728x90
반응형

Today I Learned


어떤 문제가 있었는지

개인 프로젝트 하는 중에 기능구현은 거의 다 해서 콘솔창을 꾸며보고 싶었다.

예전 콘솔게임할때의 메세지창 같은 느낌

이런식으로 해보고 싶었다


내가 시도해 본 것들

일단 무지성으로 코드를 짜봤는데

flr = "-"*36+" %2s 층 "% count +"-"*36
print(flr)

당연히 깔끔하게는 안됐다 ㅋㅋㅋ


어떻게 해결 했는지

후발주자의 특권은 선발주자들이 닦아놓은 길을 갈 수 있다는것.

즉 누가 함수 만들어 놨겠지 하며 구글링 시작

python의 rich를 알게 되었다

rich의 table 함수를 쓰면 깔끔하게 테이블이 나온다

 

def ui(user,monster):
    console = Console()
    table = Table(show_header=True)
    table.add_column("Round "+str(round),width=10)
    table.add_column("H P",justify="center",width=10)
    table.add_column("M P",justify="center",width=10)
    table.add_column("Speed",justify="center",width=10)
    table.add_column("Power",justify="center",width=10)
    table.add_column("Magic",justify="center",width=10)

    table.add_row(
        user.name,
        str(user.hp)+" / "+str(user.max_hp),
        str(user.mp)+" / "+str(user.max_mp),
        str(user.speed),
        str(user.power),
        str(user.m_power),

    )
    table.add_row(
        monster.name,
        str(monster.hp)+" / "+str(monster.max_hp),
        "",
        str(monster.speed),
        str(monster.power),
        ""
    )
    return console.print(table)

이렇게 함수로 유저와 몬스터의 값을 받으면

이런식으로 깔끔한 테이블이 나온다


무엇을 새롭게 배웠는지

rich를 쓰면 python의 콘솔창을 꾸밀 수 있다!

색을 입힐 수도 있고 볼드나 이탈릭도 가능하다, 또 히라가나/가타카나/한자 모두 지원한다

마크다운으로 표시도 가능하다 !

아직 완벽하지는 않다고 하는데 이정도면 충분하다

728x90
반응형
profile

코딩한걸음

@Joonyeol_Yoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!