Skip to content

png401/Mafia_Project_JAVA2_ver2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

222 Commits
 
 
 
 
 
 

Repository files navigation

🕵️‍♂️ 자바 소켓 통신 기반 마피아 게임 (Mafia Game)

"어둠 속에 숨어든 살인마를 찾아라!"

플레이어가 접속하는 순간, 운명은 정해집니다. 당신의 신분은 오직 당신만 알 수 있습니다.
모두가 잠든 , 마피아는 은밀한 대화 끝에 타겟을 제거하고, 의사는 동료를 치료하며, 경찰은 범인의 정체를 조사합니다.
날이 밝으면 처참한 결과가 공개되고, 살아남은 자들의 숨 막히는 토론이 시작됩니다. 단 한 번의 투표, 단 한 번의 기회!
시민과 마피아, 최후에 웃는 진영은 과연 누구일까요?


🛠 Tech Stack

  • Language: Java 21
  • GUI: Java Swing (JFrame, JPanel)
  • Network: Java Socket (TCP/IP), Multi-threading
  • IDE: IntelliJ IDEA / Eclipse

🎥 Demo Video (시연 영상)

실제 게임 플레이 영상입니다. 이미지 클릭 시 유튜브로 이동됩니다.

마피아 게임 시연 영상

📸 Screenshots (실행 화면)

로그인(로비) 게임 진행(낮) 마피아 밀담(밤)

💡 Key Features (주요 기능)

  • 멀티플레이어 채팅: TCP 소켓을 활용하여 실시간 다중 접속 및 채팅 구현.
  • 직업 배정 시스템: 게임 시작 시 시민, 마피아, 경찰, 의사 직업 랜덤 부여.
  • 페이즈 전환: [밤] -> [토론] -> [투표] 순서로 게임 상태 자동 전환.
  • 특수 능력 구현:
    • 🔫 마피아: 전용 비밀 채팅방 제공, 밤마다 타겟 처형.
    • 💊 의사: 타겟 치료 (마피아 지목 대상과 일치 시 생존).
    • 👮‍♂️ 경찰: 타겟 조사 (마피아 여부 판별).
  • 투표 시스템: 과반수 투표 시 플레이어 처형 및 생존자 판별 로직.

🏗 System Architecture (설계 구조)

1. Design Patterns

이 프로젝트는 유지보수와 확장성을 위해 다양한 디자인 패턴을 적용했습니다.

  • MVC Pattern: Model, View, Client 구조 설계.
  • Singleton Pattern: 게임의 전체 흐름을 관리하는 사회자(Controller) 객체를 유일하게 유지.
  • State Pattern: 게임의 상태(, 토론, 투표)를 객체화하여, 복잡한 if-else 없이 상태별 행동(execute)을 관리.
  • Command Pattern: 클라이언트의 요청(Join, Start, Message, Mafia_message, Target, System)을 캡슐화하여 CommandManager가 처리하도록 구조화.
  • Observer Pattern: Swing UI 이벤트 리스너 처리에 활용.
  • Factory Method Pattern: Playr model 생성을 RoleFactory에 위임.
  • Strategy Pattern: Playr Role에 따른 skill 구현.

2. Class Diagram

👀 클래스 다이어그램 펼쳐보기 (Click)

1. Server



2. Client



3. Model & Controller

controller model



4. View

3. Package Structure

src
├── client          # 클라이언트 통신 (ClientManager, Thread)
├── server          # 서버 통신 및 명령 처리 (ServerManager, CommandManager)
├── controller      # 게임 로직 (사회자, IState, 밤/낮/투표 구현체)
├── model           # 데이터 모델 (Player)
└── view            # UI (Lobby, View2, MafiaChatView)

📝 Dev Log (개발 회고)

프로젝트 진행 과정과 팀원들의 소감을 담은 기술 블로그입니다.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages