필요한것
조회: 247
댓글: 1개
2022.12.20 1:28 화요일
- 기능구현
- 방장
- 방을 생성한 유저가 방장
#방이 생성되고 최초로 connect 되는 유저를 방장으로 지정
#방 테이블의 방장 컬럼에 유저 id 추가 - 방장이 나가면 다음 유저가 방장
#유저가 나갔다
#방장이었다면 - 다음 유저를 방장으로 지정, 이후 클라이언트들에 방장 id를 소켓 전송
#일반이었다면 - 아무 일 없음 - 방장의 역할
#방장 소켓과 일치하는 클라이언트만 기능 활성화- 강제 퇴장
#퇴장 유저에게 로비 이동 소켓 전송 - 방 정보 변경(인원수, 제목, 승수)
#방 정보 변경 api 사용
- 강제 퇴장
- 방을 생성한 유저가 방장
- 초대
#로비 url에 get 파라미터가 있으면 초대 화면 렌더링
#get 파라미터는 방의 id값 - 게임준비
- 플레이어들이 로비에 들어옴
#방(그룹)에 소켓 붙기
#방(그룹)별 게임 데이터 생성 - 플레이어들은 준비 버튼을 눌러 준비됐음을 알림
#방:플레이어 매핑 테이블에 준비상태 컬럼 추가 - 모든 플레이어가 준비되면 방장의 게임시작 버튼이 활성화
#해당 방의 모든 매핑 열들의 컬럼이 준비상태가 되면 시작 버튼 활성화 소켓 전송
- 플레이어들이 로비에 들어옴
- 게임시작
- 게임이 시작되면 방에 입장 불가
#방 테이블에 방 상태 컬럼을 추가
- 게임이 시작되면 방에 입장 불가
- 게임진행
게임데이터
{ 'round' : 1, 'count' : 4, 'users' : { 'user1' : 'r', 'user2' : 'p', 'user3' : 's', } }
- 플레이어가 rps 버튼을 클릭함
#다른 플레이어들이 선택을 마칠때까지 대기중... 표시
#전송할 것 : user_uuid, rps - 모든 플레이어가 클릭 완료시 서버에서 알고리즘을 거쳐 클라이언트들에 결과 전송
#count와 users의 길이가 동일해지면 결과 출력 및 전송
#전송할 것 : round, user_uuid 및 결과 - 2,3번의 반복
- 게임종료
#승자가 한 명만 남았다면 클라이언트들에 우승자 전송 후 게임데이터 초기화 - 예외상황
- 게임 도중 플레이어가 방을 나갈 경우
- @
- 방장
내용:개추를 와바박