Go에서 블랙잭 실시

4318 단어 Go블랙 잭
  • 프로그래밍에 입문한 졸업시험은'블랙잭'을 개발해야 한다 - Qiita
  • Go를 다시 터치해야 해서 겨우 블랙잭을 설치했어요.
    규칙은 위 게시물의 "개발된 블랙잭 규칙"을 따릅니다.
    A의 득점에 대한 처리와 다른 규칙도 잊어야 한다.

    실행 결과



    그런 느낌이 된 것 같지 않아요?

    소스 코드


    나는'선동'정도의 물건은 4시간 정도면 다 될 것이라고 생각한다.
    상당히 혼란스러운 코드여서 조사하면서 6시간 정도 재설치했다.
    모두 10시간 정도 걸렸어요.시간이 많이 걸렸네...

    지원


    블랙잭의 규칙 관련은main이다.go에서 기술하다


    주로 다음과 같은 득점과 관련된 처리이다.
    func CardScore(card Card) int {
      score := 0
      switch card.Number {
      case 11, 12, 13:
        score = 10
      default:
        score = card.Number
      }
      return score
    }
    
    '카드의 득점'이기 때문에 처음에는 card.go에 기술되었지만'카드는 항상 수트와 값의 정보만 있다','득점을 어떻게 처리하는가가 규칙적인 문제'라고 해서 main.go로 옮겼다.judge.go 등 총결 규칙과 관련된 처리도 가능하다.
    (규칙을 추가할 때 이렇게 하는 것이 가장 좋다)

    어떻게 반복하지 않고 카드를 뽑습니까

  • 슬라이스의 카드 세탁 - Qiita
  • 조사에서 이 같은 투고가 발견됐기 때문에 카드 52장을 미리 준비한 뒤 카드를 씻고 처음부터 한 장씩 뽑아 설치했다.
    처음에는 카드를 뽑을 때마다 유저와 대리판매상의 카드가 같은 특급 조합이 있는지 검사하는 설치였다.
    for {
      suit := rand.Intn(4)
      value := rand.Intn(13)
      // isDrawed()で同じsuitとvalueの組み合わせが手札に存在していないかチェック
      if isDrawed(suit, value) == false {
        // 手札にカードを追加する処理
        break
      }
    }
    
    이렇게

    힘든 곳


    포인터


    이전에 접했던 언어는 주로 PHP와 자바였는데 최근에는 루비를 통해 바늘이 처리된 것을 잘 깨닫지 못해 힘들었다.
  • Go에서 학습한 지침 및 주소 - Qiita
  • 주로 이쪽의 투고와 그 참고 사이트 부근을 참조했다.
    다른 사람에게 설명하라고 하면 안 될 것 같아서 더 좋은 이해가 필요해요.
    (자바에서 말한 "이른바"값 전달, 참조 전달의 개념에 가깝다는 점을 대충 이해하면 좋을까...)

    구조

  • [Go 언어 입문] 구조체와 포인터 - Qiita
  • 주로 이쪽의 투고를 참고했다.
    말은 그렇지만 구조체 자체가 힘들다기보다는 구조체를 처리할 때 지침의 처리가 힘들다는 것이 옳다.

    감상


    역시 하는 것이 명확하면 즐겁고, 조사를 해도 산만하지 않아도!

    좋은 웹페이지 즐겨찾기