Skip to content

unreal-class/CourtSchedule

Repository files navigation

AM5 CLUB - 테니스 코트 스케줄 관리 시스템

AM5 CLUB을 위한 테니스 코트 스케줄 관리 및 복식 경기 자동 배정 시스템입니다.

🎾 프로젝트 개요

이 시스템은 테니스 클럽에서 복식 경기를 위한 선수 배정을 자동화하여, 공정하고 효율적인 코트 운영을 지원합니다.

📁 프로젝트 구조

CourtSchedule/
├── index.html          # 메인 웹 인터페이스
├── app.js             # 핵심 로직 (배정 알고리즘)
├── .gitignore         # Git 무시 파일 목록
└── README.md          # 프로젝트 문서

🎯 주요 기능

  • 선수 관리: 이름, 성별 입력 및 입장/퇴장 관리
  • 자동 배정: 복식 구성 우선순위에 따른 자동 선수 배정
  • 코트 관리: 2개 코트 동시 운영 지원
  • 경기 이력: 파트너 조합 기록 및 중복 최소화
  • 공정성 보장: 선수별 경기 횟수 균등 배분

⚡ 사용 방법

  1. 프로젝트 실행

    # 로컬에서 실행 (웹 서버 권장)
    python -m http.server 8000
    # 또는 브라우저에서 직접 index.html 열기
  2. 선수 등록

    • 이름 입력 후 성별 선택 (남/여)
    • '입장' 버튼 클릭으로 선수 활성화
  3. 경기 배정

    • '선수 배정' 버튼 클릭으로 자동 배정 실행
    • 4명이 자동으로 선택되어 2 vs 2 복식 구성
  4. 경기 완료

    • '완료' 버튼으로 경기 종료 및 이력 기록
    • 다음 경기를 위한 새로운 배정 가능

🏆 복식 배정 규칙

📋 기본 조건

구성 타입 조건 팀 구성 방식
남복 남자 4명 이상 남자 4명 선택
여복 여자 4명 이상 여자 4명 선택
혼복 남자 2명 이상 + 여자 2명 이상 각 팀에 남1명+여1명
잡복 남자 3명+여자 1명 또는 남자 1명+여자 3명 성별 불균형 구성

🔄 배정 알고리즘

1단계: 후보자 선정

  • 경기수 기준: 가장 낮은 경기수를 갖는 선수들을 우선 선정
  • 공정성 보장: 선수별 경기수 차이가 2경기 이상 나지 않도록 제한
  • 최소 인원: 4명 미만일 경우 차순위 경기수 선수까지 포함

2단계: 구성 우선순위

  1. 1순위: 남복 (남자 4명 이상일 때)
  2. 2순위: 여복 (여자 4명 이상일 때)
  3. 3순위: 혼복 (남자 2명 이상 + 여자 2명 이상)
  4. 4순위: 잡복 (성별 불균형 상황)

3단계: 특별 규칙

  • 랜덤 선택: 남복과 여복이 모두 가능할 때 무작위 선택
  • 파트너 기록: 동일한 복식 파트너 조합 최소화
  • 상대 기록: 동일한 대전 상대 조합 최소화

⚖️ 공정성 원칙

  • 균등 배분: 모든 선수가 골고루 경기할 수 있도록 배정
  • 경기수 제한: 선수간 경기수 차이 최대 1경기까지만 허용
  • 예외 처리: 퇴장한 선수는 경기수 차이 제한에서 제외

🎮 개발자 기능

테스트를 위한 개발자 전용 기능:

  • 테스트입장: 16명의 랜덤 선수 자동 생성 (남성 위주)
  • FIXED 테스트입장: 13명의 고정 선수 명단으로 테스트

🎨 기술 스택

  • Frontend: HTML5, CSS3, JavaScript (ES6+)
  • 스타일: 글래스모피즘 디자인, 그라데이션 UI
  • 데이터: 로컬 메모리 기반 선수 및 경기 관리

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published