Skip to content

shakingcarrot/2025COMP2TermProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

네트워크 오목 (2025COMP2TermProject)

Swing 기반 GUI 클라이언트와 Java 서버로 구성된 2인용 네트워크 오목입니다.
서버는 클라이언트 인증·턴·시간 제한·채팅을 관리하고, 클라이언트는 로그인/로비/보드/채팅 UI를 제공합니다.

주요 특징

  • 사용자 로그인 & 회원가입: 간단한 계정 DB(users.db)에 SHA-256 해시로 저장합니다.
  • 슬롯 관리: 서버는 항상 두 명까지만 수락하며, 슬롯이 비면 즉시 재사용합니다.
  • 35초 턴 타이머: 타이머가 0이 되면 자동으로 턴이 넘어가고 시간이 초기화됩니다.
  • 채팅 및 리매치 안내: 채팅 창, 리매치 요청/대기/수락 메시지가 모두 GUI 알림으로 표시됩니다.
  • 안전한 리매치: 두 플레이어가 모두 다시하기를 누를 때까지 상대 대기 상태를 보여주고, 새 게임이 시작되면 보드·타이머를 완전히 초기화합니다.

디렉터리 구조 요약

  • OmokServer/OmokServer.java : 서버 진입점, 슬롯/타이머/리매치/브로드캐스트 관리
  • OmokServer/ClientHandler.java : 클라이언트별 스레드, 인증 흐름 제어
  • OmokServer/GameBoard.java : 서버 측 보드 상태 및 승리/무승부 판정
  • OmokServer/UserManager.java : 사용자 등록 및 인증, 파일 저장
  • OmokClient/OmokClient.java : 로그인 창 및 메인 게임 프레임
  • OmokClient/NetworkHandler.java : 서버 메시지 수신/송신, 알림 처리
  • OmokClient/BoardPanel.java : 오목판 렌더링, 입력 처리, 게임 종료 다이얼로그
  • OmokClient/ChatWindow.java : 채팅 UI
  • record.txt : 서버가 저장하는 경기 기록
  • users.db : 계정 정보 저장 파일(텍스트, username:hash)

준비 사항

  • Java JDK 8 이상
  • Windows PowerShell 기준 명령 예시(다른 OS도 동일 명령으로 실행 가능)

빌드

프로젝트 루트(README가 있는 위치)에서 실행합니다.

javac -d out OmokServer\*.java OmokClient\*.java

서버 실행

java -cp out OmokServer
  • 기본 포트는 5000입니다. 이미 같은 포트에 다른 프로세스가 있다면 종료하거나 포트를 변경하세요.

클라이언트 실행 및 로그인

java -cp out OmokClient
  • 로그인 창에서 서버 주소(기본 localhost), 아이디, 비밀번호를 입력합니다.
  • 회원가입 버튼: 새 계정 생성 후 즉시 로그인 시도
  • 로그인 버튼: 기존 계정 인증
  • 성공 시 메인 게임 창이 뜨고 자동으로 타이머/채팅/보드가 초기화됩니다.

게임 진행 요약

  1. 두 명이 모두 로그인하면 서버가 START를 보내고 타이머를 시작합니다.
  2. 마우스로 빈 칸을 클릭하면 서버에 이동을 전송하고, 서버가 승인하면 모든 클라이언트 보드가 갱신됩니다.
  3. 승패가 결정되면 서버가 WIN 메시지를 보내고, 각 클라이언트의 다이얼로그에서 “다시하기/나가기”를 선택할 수 있습니다.
  4. 한쪽이 “다시하기”를 누르면 상대에게 “○○님이 다시하기를 신청했습니다” 알림이 뜹니다.
  5. 상대도 “다시하기”를 누르면 새 게임을 시작합니다. 한 명이 나가면 대기 상태로 전환됩니다.

문제 해결

  • 포트 점유 에러 (Address already in use)
    서버를 중복 실행했거나 기존 프로세스가 종료되지 않은 상태입니다. 이전 서버를 종료하고 다시 실행하세요.
  • 클라이언트가 “서버에 연결 중…”에서 멈춤
    서버가 최신 빌드로 실행 중인지, 방화벽에서 포트 5000을 허용했는지 확인하세요. 과거 서버가 남아 있으면 종료 후 새 서버를 실행합니다.
  • 회원가입 실패
    이미 존재하는 아이디인지 확인하고, 공백 없는 아이디/비밀번호를 사용하세요.
  • 타이머가 멈춤
    두 명이 모두 접속해 있어야 타이머가 동작합니다. 한 명이 나가면 WAITING 알림과 함께 타이머가 정지합니다.

기타

  • record.txt, users.db는 서버 실행 디렉터리에 생성됩니다.
  • GUI 글꼴/레이아웃은 기본 Swing 컴포넌트를 사용하며 필요 시 자유롭게 수정 가능합니다.

즐거운 오목 플레이 되세요!

About

we will make omok project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages