Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 3.89 KB

README.md

File metadata and controls

52 lines (40 loc) · 3.89 KB

RIOT PROJECT(전적 검색기)

목적

  1. 원하는 소환사의 전적을 검색할 수 있다.
  2. 해당 게임의 상세 정보를 확인할 수 있다.
  3. 승률을 시각화한다.
  4. 여러 게임을 같이 플레이한 소환사와의 승률을 표시한다.
  5. 게임의 최고의 소환사와 최악의 소환사를 선정한다.

목적 상세

  1. 원하는 소환사의 전적을 검색할 수 있다.
  • LineEdit 위젯으로 소환사명을 입력 받고 해당 입력을 API로 소환사 정보를 가져온다.
  • 가져온 소환사 정보를 바탕으로 최근 경기 정보를 취득한다.
  • 가져온 경기 정보를 요약하여 TableWidget에 Item으로 추가하여 보여준다.
  1. 해당 게임의 상세 정보를 확인할 수 있다.
  • TableWidget에 Item으로 추가된 경기를 클릭하면 클릭한 Row 정보를 받는다.
  • 받은 Row 정보로 몇 번째 경기인지 match_list로 게임 Id를 알아낸다.
  • 게임 Id를 이용해서 미리 정리해둔 게임 데이터를 사용하여 해당 게임에 참가한 모든 소환사의 게임 데이터를 별도의 TableWidget에 Item으로 추가하여 보여준다.
  1. 승률을 시각화한다.
  • 가져온 게임들의 승률을 계산한다.
  • 계산한 승률을 canvas에 원 그래프로 시각화한다.
  1. 여러 게임을 같이 플레이한 소환사와의 승률을 표시한다.
  • 게임 정보에서 해당 닉네임이 같은 팀원으로 몇번이나 나왔는가에 대해 수집한다.
  • 2번 이상 같은 게임에서 팀원이었다면 승률을 표시한다.
  1. 게임의 최고의 소환사와 최악의 소환사를 선정한다.
  • 선정하는 지표로 KDA를 기반으로 한다.
  • KDA를 기반으로 한 이유는 데스 당 데미지는 서포터, 탱커 같은 데미지를 뽑기 힘든 역할군이 있기 때문이고, 포탑에 가한 피해량은 다른 것을 무시하고 타워만 깬 경우를 제외하기 위해서이고, KDA가 어느 역할군이던 그나마 공평하게 나온다고 생각했기 때문이다.
  • 최고와 최악의 표시는 게임 상세 테이블에서 표시한다.

UI 구성 계획

전적검색기_UI_계획

결과

전적검색기_완성형

마무리

처음으로 API를 만져본 것이어서 반성할 점이 상당히 많았다.

  1. 데이터를 적절히 다루지 못했다.
  • 데이터를 전처리할 것이라면 필요한 데이터를 한번에 볼 수 있도록 전처리를 했어야 한다고 생각한다. 또한 데이터를 기반으로 최고, 최악의 소환사를 정하는 등 데이터를 활용할 때 조금 더 다듬고, 조건을 구체화할 수도 있었을 텐데 이 부분이 아쉽다.
  1. UI가 불친절하다.
  • UI를 보면 기본적으로 텍스트 정렬도 되어있지 않고, 텍스트가 너무 길어 아래로 내려가서 가시성을 떨어뜨리는 부분도 있었다. 이는 pyqt를 제대로 다루지 못해서 일어난 일로 좀 더 관심을 가졌어야 했다.
  1. 불필요한 부분이 상당히 있었다.
  • 일단 데이터가 여러모로 복잡하게 되어 있어서 반복문도 많이 사용되고 쓸데 없이 추가된 부분이 몇 번 포착되었고 지금도 있을 것이다. 이 부분은 계속 다른 것도 만들어 보면서 이론적인 부분의 추가 공부가 필요하다.
  1. 계획을 제대로 짜지 않았다.
  • 처음으로 해보는 프로젝트이다 보니 계획의 중요성을 늦게 알아차렸다. Readme로 한 번 정리하고 목적이 무엇인지 명확히 한 후에는 코딩이 한결 수월했다. 계획 없이 하던 프로젝트 초반에는 쓸데없이 늘리다 보니까 정작 필요한 기능이 무엇인지 모르고, GUI를 고려하지 않은 부분도 많이 보였다.