AM5 CLUB을 위한 테니스 코트 스케줄 관리 및 복식 경기 자동 배정 시스템입니다.
이 시스템은 테니스 클럽에서 복식 경기를 위한 선수 배정을 자동화하여, 공정하고 효율적인 코트 운영을 지원합니다.
CourtSchedule/
├── index.html # 메인 웹 인터페이스
├── app.js # 핵심 로직 (배정 알고리즘)
├── .gitignore # Git 무시 파일 목록
└── README.md # 프로젝트 문서
- 선수 관리: 이름, 성별 입력 및 입장/퇴장 관리
- 자동 배정: 복식 구성 우선순위에 따른 자동 선수 배정
- 코트 관리: 2개 코트 동시 운영 지원
- 경기 이력: 파트너 조합 기록 및 중복 최소화
- 공정성 보장: 선수별 경기 횟수 균등 배분
-
프로젝트 실행
# 로컬에서 실행 (웹 서버 권장) python -m http.server 8000 # 또는 브라우저에서 직접 index.html 열기
-
선수 등록
- 이름 입력 후 성별 선택 (남/여)
- '입장' 버튼 클릭으로 선수 활성화
-
경기 배정
- '선수 배정' 버튼 클릭으로 자동 배정 실행
- 4명이 자동으로 선택되어 2 vs 2 복식 구성
-
경기 완료
- '완료' 버튼으로 경기 종료 및 이력 기록
- 다음 경기를 위한 새로운 배정 가능
구성 타입 | 조건 | 팀 구성 방식 |
---|---|---|
남복 | 남자 4명 이상 | 남자 4명 선택 |
여복 | 여자 4명 이상 | 여자 4명 선택 |
혼복 | 남자 2명 이상 + 여자 2명 이상 | 각 팀에 남1명+여1명 |
잡복 | 남자 3명+여자 1명 또는 남자 1명+여자 3명 | 성별 불균형 구성 |
- 경기수 기준: 가장 낮은 경기수를 갖는 선수들을 우선 선정
- 공정성 보장: 선수별 경기수 차이가 2경기 이상 나지 않도록 제한
- 최소 인원: 4명 미만일 경우 차순위 경기수 선수까지 포함
- 1순위: 남복 (남자 4명 이상일 때)
- 2순위: 여복 (여자 4명 이상일 때)
- 3순위: 혼복 (남자 2명 이상 + 여자 2명 이상)
- 4순위: 잡복 (성별 불균형 상황)
- 랜덤 선택: 남복과 여복이 모두 가능할 때 무작위 선택
- 파트너 기록: 동일한 복식 파트너 조합 최소화
- 상대 기록: 동일한 대전 상대 조합 최소화
- 균등 배분: 모든 선수가 골고루 경기할 수 있도록 배정
- 경기수 제한: 선수간 경기수 차이 최대 1경기까지만 허용
- 예외 처리: 퇴장한 선수는 경기수 차이 제한에서 제외
테스트를 위한 개발자 전용 기능:
- 테스트입장: 16명의 랜덤 선수 자동 생성 (남성 위주)
- FIXED 테스트입장: 13명의 고정 선수 명단으로 테스트
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- 스타일: 글래스모피즘 디자인, 그라데이션 UI
- 데이터: 로컬 메모리 기반 선수 및 경기 관리
이 프로젝트는 MIT 라이선스 하에 배포됩니다.