Program/TeamCreator

[TeamCreator] ver 1.0

nowkoes 2023. 7. 24. 16:55

Team Creator ver 1.0

개요

 "Team Creator"는 친구들과 함께 League of Legends 5대5 내전을 진행할 때 항상 팀 구성의 밸런스를 맞추는 것이 어려워 개발하게 되었다. 이 프로그램은 각 사용자의 티어를 기반으로 점수를 부여하고, 팀원들의 총 점수가 비슷하게 배치될 수 있도록 밸런스를 조정하는 것을 목표로 한다.

 이 프로젝트의 시작은 간단한 아이디어에서 출발했다. 현재 팀의 밸런스를 시각적으로 보여주는 것이다. 그러나 프로젝트의 목표는 단순히 시각적으로 표시하는 것을 넘어서, 팀을 자동으로 구성하고 이를 GUI로 구현하는 것까지 확장할 예정이다. 이를 통해 사용자는 더욱 직관적이고 편리하게 팀을 구성하고 게임의 밸런스를 유지할 수 있게 되길 바란다.


기본 아이디어

 해당 프로그램의 기본 로직은 다음과 같다.

 

데이터베이스에 플레이어의 티어와 포지션 정보를 저장 → 내전에 참가할 인원들을 데이터베이스에서 불러와 인원 배정

 

 언뜻 단순해보이는 이 로직에는 데이터베이스 관리, Visual Studio와 데이터베이스 간의 연결을 위한 라이브러리 사용 등 다양한 개념이 포함되어 있다. 예를 들어, libmysql.dll을 사용하여 Visual Studio에서 MySQL 데이터베이스에 접근하며, SQL 쿼리를 통해 플레이어의 정보를 불러오거나 업데이트하는 과정을 거친다. 또한, 이런 데이터를 기반으로 적절한 팀 구성을 위한 알고리즘도 포함되어 있다.


ver 1.0

 ver 1.0에서는 다음과 같은 기능이 구현되어 있다.

 

  1. 인원 현황 확인
  2. 데이터베이스에 사용자 추가
  3. 데이터베이스 현황 출력
  4. 내전 인원 수정
  5. 티어에 따른 점수를 기준으로 봤을 때의 밸런스

 

 여기서 티어에 따른 점수는 아프리카 TV에서 주최하는 리그오브레전드 멸망전 티어 별 점수를 기준으로 작성하였다. 그리고 라인에 따라 점수를 나누지 않고, 각 티어 별로 할당된 점수들의 평균으로 치환하였다. 예를 들어, 마/그/챌 0~149점의 탑, 정글, 미드, 원딜, 서폿의 점수는 43, 49, 48, 42, 41이지만 이들의 합의 평균인 43으로 바꿨다. 만약 추후에 더 세부적으로 나눌 상황이 온다면 이를 고치도록 하겠다. (당장 친구들 중 가장 높은 점수가 마스터 100점이므로 필자는 따로 추가하지 않았다)

 

2022 LOL BJ 멸망전 시즌2 점수 분포

 

 그리고 데이터베이스는 MySQL을 사용하였으며, 테이블을 다음과 같이 미리 작성해두었다. 이때 id는 고유 번호이고, name은 플레이어의 이름, line은 플레이어의 포지션, tier는 플레이어의 최고 티어, score는 티어에 따른 점수다. 동일한 플레이어가 다른 라인을 갈 수 있으므로 중복을 허용하게 설정해두었다. 

 

 


메서드

 

 현재 ver 1.0에서 구현된 메서드는 총 7가지다. 데이터를 추가하는 AddData(), 현재 DB 내의 저장된 유저들의 정보를 출력하는 ShowUser(), 현재 5:5 현황을 보여주는 ShowBoard(), DB에 데이터를 추가하는 AddData(), 5:5 보드판에 유저를 추가하는 SetUser(), 보드의 정보를 바꾸는 ChangerUser()가 있다.

 여기서 FindUserIndex()는 유저의 정보를 바꿀 때 현재 위치를 반환하기 위해 구현해놓았다. 보다 자세한 내용과 코드는 GitHub 리포지토리를 참고하자. 만약 궁금한 점이 있거나, 틀린 내용이 있으면 댓글로 달아주면 감사하겠다.

 

Team_Creator.exe
0.05MB

 

P.S: 만약 이 파일을 실행시키고 싶다면 MySQL의 libmysql.dll을 같은 디렉토리에 추가해놓으면 된다.

반응형