Ruby로 BlackJack-cli를 만든 소감.
프로그래밍 입문자의 졸업 시험에서 블랙잭을 개발해야 한다
소감은 간단한 게임을 만들어서 너무 즐거웠어요.블랙잭을 만들어 봤는데 게임 외에도 많은 것을 할 수 있을 것 같아서 블랙잭 코드를 조금 더 바꾸고 다음에 뭘 할지 고민해보려고 한다.
모든 코드가 Giithub에 있으니 이쪽에서 확인할 수 있습니다
BlackJack Ruby | Ryutaro - Github
블랙잭의 규칙
블랙잭에 대한 규칙은 여기. 글에서 쓴 규칙을 기준으로 작성됐다.
고민거리
준비반
다음 여섯 개의 분류를 만들었습니다.
각 반의 역할은 다음과 같다.
# カードNumberとダイヤやハートなどのマークをそれぞれ配列で用意するクラス
class Card
# 用意したカードから山札を作成してシャッフルするクラス、Cardクラスを継承している
class Deck < Card
# プレイヤーとディーラーのスーパークラスでそれぞれの共通処理をするクラス
class PlayerBase
# プレイヤー専用の処理を作成している、PlayerBaseを継承している
class Player < PlayerBase
# ディーラー専用の処理を作成している、PlayerBaseを継承している
class Dealer < PlayerBase
# ゲームの進行に必要な処理や手札や山札などのデータを保持するクラス
class BlackJack
플레이어와 딜러가 공통적으로 다루는 방법이 많아 슈퍼레벨PlayerBase
을 제작했고, 방법의 사용법도 쉬워졌다.Instance 메서드나 클래스 메서드를 사용해야 합니까?
이것에 대해서도 고민이 많았습니다. 그래서 저는'루비 실례 방법 반 방법이 다르다'는 불평을 여러 번 했습니다.
그 결과 "기본적으로 실례적인 방법으로 만들고, 조금 실례적인 방법으로 만들면 사용하기 어렵지 않을까? 그런 느낌이 드는 부분은 학급적인 방법으로 하자"는 약간 추상적인 판단으로 결정됐다.
클래스 방법 예
class Card
class << self
def numbers
no = [1, 2, 3, 4, 5, 6, 7 ,8 ,9 ,10, 11, 12, 13]
end
def suit
suit = ["ダイヤ", "ハート", "クラブ", "スペード"]
end
end
end
인스턴스 메서드 예class PlayerBase
def create_hand(deck)
deck.pop(2)
end
# .
# .
# .
수패와 산패 등의 데이터는 어느 단계에서 유지해야 합니까
내가 가장 고민하는 것은 데이터의 보관 장소다.애초 "플레이어의 손패니까 플레이어급, 딜러의 손패니까 데일러급으로 관리하자. 산패는 공통이니까 플레이어 베이스급이지"라고 생각했지만, 진행 과정에서 실례가 생성됐을 때 두 개의 산패를 만들어 번거로운 일이 많았다고 한다.BlackJack 클래스에 모든 데이터를 저장할 방침을 결정했습니다.
상세 코드 설명
나는 상세한 코드의 설명을 다시 따로 보도하고 싶다.이번에는 소감과 힘든 점을 썼다.
Reference
이 문제에 관하여(Ruby로 BlackJack-cli를 만든 소감.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryutaro9595/items/b6093268ed9101f6608d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)