오늘은 홀덤에서 딜러 선정하는걸 만듬

홀덤 룰이 게임 제일처음 시작시 랜덤으로 한명 딜러로 선정되고

매번 새게임 시작될때마다 바로 다음 사람으로 딜러가 넘어가는 방식임


먼저 현재 딜러가 누구인가를 따로 저장해둬야해서 redis에 테이블을 하나 더만들기로 했음




방번호{        //1이면 딜러고 0이면 아님

닉네임:0

닉네임:1

}


테이블명 '방번호_dealer' 는 곳에다 

저런 형태로 저장하기로 했음

글고 아예 테이블을 생성할때부터 무작위로 딜러를 정해놓고 생성함

저거쓰는데 콜백이 3번 겹치니까 대각선으로 늘어져서 프로미스로 바꿨음



괄호 늘어진거 씹극혐 ㅋㅋㅋㅋ

if랑 for문 괄호라 치울수도 없음

이것도 콜백에 계속 겹쳐서 프로미스로 감쌋음

이건 방의 딜러를 다음사람으로 바꾸고 플레이어목록을 가져오는 메소드임


주석 그대로,

내가 필요한건 플레이어들 목록에서 딜러인 사람을 구하고 그사람의 바로 다음사람을

딜러로 바꿔야하는데 redis의 hash에선 index로 조회하고 바꾸는 기능이없음

그래서 그냥 전부 조회를해서 지금 딜러인사람을 찾은다음

그다음 사람을 딜러로 직접 바꿔줌

이때 딜러가 플레이어의 마지막이면 다시 처음부터 돌아야하니까

1번 사람을 딜러로 바꿔줌

그리고 위의 바꾸는 작업이 다 끝나고나면

hgetall 해서 그방에 플레이어 목록(딜러인사람과 아닌사람들 구분) 가져와서 리솔브함


새 게임할때마다 딜러를 넘겨줘야한다면

위 메소드만 호출하면 딜러는 순서대로 바뀌고 마지막 순번이면 다시 처음으로 돌아감



그리고 게임을 처음 시작할때 메소드인데 이렇게 수정함



방 인원들의 게임머니를 설정하고

딜러를 정한다음


플레이어 목록을 받고

딜러목록도 받아서 클라에 전달하는식임

근데 위 로직대로라면 딜러는 이미 setDealer 할때 무작위로 선정이 됬지만

getNextPlayer가 다음 사람을 딜러로 바꾼다음 결과를 리턴하는거라서


두번째 사람이 딜러로 정해졌지만

한번 바뀌고 세번째 사람이 딜러인상태로 클라한테 전해질꺼임





실행 했을때 모습임

왼쪽에뜬 콘솔은 딜러를 무작위로 선정할때 콘솔임

숫자가 2 니까 세번째 사람, 'tes'가 딜러로 선정됬지만

클라한테 전달되기전에 getNextPlayer()로 다음사람을 딜러로 바꿔서 클라이언트에선

첫번째 사람 'test'가 딜러인 상태로 보여짐

결론은 제대로 작동한단 소리

클라 쪽에선 받은 정보대로 누가 딜러인지 화면에 표시해주면 됨






보닌 원래 매일 8시에는 무조건 일어났는데

오늘은 늦잠자서 10시30분 되서야 일어남

평소라면 잔거 같지도 않은거 처럼 피곤하고 생각도 안났는데

오랫만에 깊게 푹잔거 같더니 같은 1시간을 해도 두배는 더 한거 같더라 ㄹㅇ

평소에는 똑같이 1시간을해도 집중도 존나 안돼고 생각도 안나던데

역시 사람은 푹 쉬고 힘이 생겼을때 일을해야 잘되는듯