fender
21k
2016-12-06 19:30:15 작성 2016-12-06 19:40:38 수정됨
3
3478

스칼라 기반 블랙잭 게임 모델링 연습


어제 오늘 조금 짬이 생겨서 창천향로님의 블랙잭 게임 연습 프로젝트를 스칼라 기반으로 구현해보았습니다.

원래 생각은 객체지향적으로 모델링을 하는 과정을 단계적으로 소개하는 강좌를 써볼 생각이었는데, 생각보다 코드가 너무 복잡해지고 시간도 계획보다 많이 소비하는 바람에 아무래도 그건 다음 기회로 미루어야 할 것 같습니다.

전체적으로 스칼라적이지 않은 가변적인 코드가 많은 부분은 어느 정도 의도된 내용입니다. 원래 생각은 최대한 자바와 비슷한 접근으로 설계를 하고 리팩터링을 하는 과정을 글로 적어볼까 했는데 어떻게 될지 모르겠네요.

잠깐 시간을 내서 만들어 본 코드이지만 제 스스로도 꽤 좋은 연습이 된 것 같습니다. 타입 인자가 지저분한 부분이나 Iterator의 사용과 관련해서 코드가 직관적이지 않은 점 (예를들어 Game.next()를 외부에서 호출할 수 있다는 점) 등은 설계와 관련해서 제가 강좌 같은 걸 써서 누구를 가르칠 실력이 되는 건지 반문하게 될 만큼 스스로 부족한 부분을 많이 깨닫게 된 것 같습니다.

시간 관계상 주석이나 테스트를 작성하지 못한 부분이 아쉽지만, 일단 프로젝트를 공개합니다:

관심 있으신 분들은 살펴 보시고 의견 부탁 드리겠습니다. 질문이나 풀 요청도 환영 합니다.

4
  • 댓글 3

  • 창천향로
    5k
    2016-12-07 06:59:20

    오옷 fender님 좋은 코드 감사합니다!! 잘보겠습니다^^

  • fender
    21k
    2016-12-09 11:47:40
    역시 내용에 대한 이야기가 없는 걸 보니 스칼라라서 진입 장벽이 있나보군요. 진짜 강좌라도 써야할까나... -ㅅ-


  • 하마
    6k
    2016-12-14 21:49:02 작성 2016-12-14 22:03:20 수정됨

    혹시 더 순수한 함수형으로 구현한것은 어떻게 되는 지 궁금한 분들을 위해 Gibhub 에서 찾아봄.

    클로저를 이용한 블랙잭 

    블랙잭이 먼지 몰라서 찾아보구 열심히 양쪽을 코드리딩 중입니다. 
    내용은 음..스칼라 내공도 낮은데다가 추상타입이 난무한  trait / class 들에 대해 머리 속으로
    잘 엮여서 보기가 아직 좀 힘들지만..너무 세밀한거 아닌가요 -.-+

    블랙잭류의 게임이 많으면 저렇게 하는게 좋겠다 싶긴 합니다. 

    ps.


    fender 님이 부족하다는건 겸손이신거 같고..겸손이 아니더라도 공유라는것은 완전에서 시작되는게
    아니라 부족에서 서로 채워가는거 아니겠습니까? 사람들 눈에 많이 보이기 시작하면 그 자체로 좋은거죠. 

    나중에 클로저도 공부하셔서 양쪽에 대한 해설/리팩토링집을 강좌로 풀어주시면 좋을듯.. ^^   
    사람들이 문법강좌보다는 소스 해설집 (문법설명이 중간중간 추가된) 같은 것을 훨씬 좋아할 거 같습니다. 


    * 스칼라 부흥을 위해 페북에 공유했습니다.
     혹시 오키 이외의 곳에 게시되는것을 원치 않으시면 말씀주십시요. 



  • 로그인을 하시면 댓글을 등록할 수 있습니다.