[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

학교 중간과제 겸 자바 습작으로 만들고 있는 온라인 마피아 게임입니다.
java -jar Mafia.jar 명령어로 커맨드 창에서 실행시킵니다.

방 설정하기

게임을 실행시킬 경우 setting.ini 파일이 생성되고, 설정값은 다음과 같습니다.
방장의 setting.ini 파일 설정에 따라 방이 생성됩니다.

  • selfHeal 의사의 자힐 가능 여부입니다. true일 경우 자힐 가능합니다.
  • checkJob 경찰이 밤에 조사할 때 직업까지 알려줄 지, 마피아인지 아닌지만 알려줄 지 결정합니다. true일 경우 직업도 알려줍니다.
  • excuseTime 투표로 결정된 사람의 최종 변론 시간입니다.
  • numPolice 경찰의 수입니다.
  • allowObserve 이미 게임에 시작된 방에 옵저버로 참가 가능한지 여부입니다. true일 경우 옵저버 접속을 허용합니다.
  • nickname 사용할 별명입니다. setting 파일에서 직접 바꿀 경우 한글 이름을 사용할 수 없습니다. 게임 내부에서 바꾸는 것을 추천합니다.
  • voteTime 낮에 투표할 때의 투표 시간 제한입니다.
  • numMafia 마피아의 수입니다.
  • numDoctor 의사의 수입니다.
  • revote 투표시 동일한 수의 득표가 나왔을 경우 시행하는 재투표 횟수입니다.
  • turnTime 한 턴당 시간입니다. 낮에 투표가 시작 되기 전, 밤에 각 직업별의 시간 제한입니다.
  • deadJob 낮에 투표로 죽은 사람의 직업을 알려주는지 여부입니다. deadJob이 0일 경우 아무것도 알려주지 않고, 1일 경우 마피아인지 아닌지 여부, 2일 경우 직업을 알려줍니다.

게임 진행 순서

  1. 회의 시간
  2. 투표 시간 (동일한 득표의 사용자가 있을 경우 revote 횟수만큼 재투표 진행)
  3. 최종 변론 시간 (후보자가 있을 경우)
  4. 최종 투표 시간

  1. 마피아
  2. 의사
  3. 경찰

명령어 목록

명령어를 입력할 경우 / 뒤에 입력하고, 단순 채팅일 경우 그냥 입력합니다.
다음은 지원하는 명령어 목록입니다.

방장 전용 명령어

  • kick (닉네임) – 유저를 강제 퇴장시킨다
  • start – 대기 상태에서 게임을 시작한다

게임 참여자 명령어

  • vote (닉네임) – 낮 투표 시간에 투표한다
  • agree – 최종 투표에서 죽이는 것에 찬성한다

마피아 명령어

  • kill (닉네임) – 밤에 죽일 대상을 고른다

의사 명령어

  • heal (닉네임) – 밤에 치료할 대상을 고른다

경찰 명령어

  • doubt (닉네임) – 밤에 조사할 대상을 고른다

공용 명령어

  • list – 현재 사용자 목록을 출력한다
  • job – 자신의 직업을 출력한다
  • setting – 서버 방 설정을 출력한다
  • help, ? – 명령어 도움말을 출력한다

[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

원더플에서도 확인하실 수 있습니다.

JAVA 버전을 플래시로 포팅한 버전입니다.

JAVA 버전과는 달리 그래프 생성까지 내부에서 처리하며, 항상 연결 그래프를 생성합니다.
플래시 버전에서는 드래그 가능 범위가 조금 더 제한되어 있습니다.

[이 글은 이전에 쓰던 블로그에서 작성된 이후 새 블로그로 이전된 글입니다.]

JAVA를 사용해 구현한 Force-Directed Graph Drawing입니다.
프로젝트 이름에 ‘Forced’라고 오타가 있습니다 ㅜㅠ

노드를 드래그 할 수 있습니다.

input.txt에서 그래프 데이터를 읽어오며, 형식은 다음과 같습니다.

  • 첫 번째 줄에 노드 개수 n과 간선 개수 m이 공백으로 구분되어 주어집니다.
  • 두 번째 줄부터 m줄에 걸쳐 숫자 두 개가 공백으로 구분되어 주어집니다. 두 숫자 번호를 가진 노드를 연결하는 간선을 의미합니다.

FDG.zip