티스토리 뷰

오늘의 할일 17.12.4


  • JSON Parser Step6 Merge, push - pass

  • Card Game Step1, Merge

    • Card Class 생성

      1. 카드 모양, 숫자 Property 지정
      2. 카드정보 문자열 반환 함수 정의
  • Card Game Step2 진행.

Q. 프로토콜지향 프로그래밍 책?

오늘의 할일 17.12.5


  • Card Game Step2, Merge

    • Deck Structure 생성

      1. count()->Int // 정의
      2. mutating func reset()->Deck
      3. mutating func removeOne()->Card?
      4. mutating func shuffle() // Fisher-Yates Shuffle
    • InputView 생성

      1. mainMenu() // 메인메뉴 출력
      2. read()->String? // mainMenu()를 출력 후 readLine.
    • OutputView 생성

      1. counfOfDeck(:Deck) // 남은 카드 print
      2. countOfRestDeck(:Deck) //
  • TestCode 작성

     1. count()에 대한 테스트 코드 작성, 초기화했을때 52장과 비교, 한장을 뽑았을 때 51장인지 비교
    2. removeOne() 섞지않고 초기화 했을때 맨위에 카드가 클로버K가 맞는지 비교
  • Class의 메모리관리 공부.

  • Card Game Step3 진행되면 좋겟군요.

Todo List App

  • Card Game Step3

    • Deck구조체 배열에서 한번에 여러값 뽑는 방법 찾은 후 적용.

      1. makeStack(numberOfCards:Int)->[Card]
    • CardStackPrint Class 정의 - Card뭉치를 가지고있는 stack의 값을 출력하기 때문에 CardStackPrint라 이름 지었습니다.

      1. mutating func makeStack(numberOfCards: Int) throws -> [Card]
    • main의 일시적 기능제거

오늘의 할일 17.12.6


  • Card Game Step4 방법 생각하기. pass

  • Card Game Step3에 바꿀내용 없나 고민해보기. pass

  • 알고리즘 공부계획 세우기(취업을 위한게 아니라 평생 업으로 프로그래밍을 하기위해)

  • 지금까지 다른분들 코드 보면서 생각하지 못한점 수용하기. (사다리게임완료) pass

좋은 코드를 만들기위한 참고서적

  1. 객체지향의 오해와 진실

  2. 스위프트와 프로토콜 지향 프로그래밍

  3. 거침없이 배우는 swift

  4. 실용주의 사고와 학습 (책)

오늘의 할일 17.12.7


  • Card Game Step3 Merge - pass

  • Card Game Step4 (단위별로 Commit)

    • S CardGameInfo - Data구조체


      enum Games
      private (set) var typeOfGames: Games
      private (set) var players: Int
      init(typeOf: Games, withPlayers: Int)
    • S GameInputView

      func playtheGame() throws -> CardGameInfo
      private func selectTypesOfGames() throws -> CardGameInfo.Games
      private func registerPlayers() throws -> Int
    • C Table

      (CardStack이라는 클래스를 Table로 변경예정. 사용상 카드게임의 Table이라생각하여 명칭을 바꿈)


      private var cardStacksOfTable: [[Card]]
      init(_ gameInfo: CardGameInfo)
      func makeGameTable(deck: Deck) -> Bool
    • S OutputView

      기존에있던 OutputView 수정이 필요함.


      func showMeTheTable(_ table: Table)
      func lookDealerCards(of: [card])
    • main()


      deck.makeStack(:CardGameInfo.typesOfGames)
      outputview.dealerStack(deck.makeStack(:CardGameInfo.typesOfGames))

오늘의 할일 17.12.8


  • 오늘의 팁(비교문은 없을 수록 덜복잡한 프로그램이된다.)

  • Card Game Step4 Merge

  • Card Game Step5

    • 기존 세로방식의 출력은 한장씩 보여주는데 한계가 있다.(참가자들과 딜러들이 세로에 있으니 한장씩 보여준다면 두번째 카드를 보여줄때 다시 처음부터 다시그려야하는 조금 이상한 모양이 나올 것같아서 가로방식으로 바꾸려고한다.)


      // ex
      참가자#1 참가자#2 참가자#3 딜러#
      ♠️Ace ♠️9   ♠️3   ♠️2   1.베팅  2.
    • 일정한 시간 간격을 주기위한 방법은? sleep, NSTimer 등등

    • 카드의 점수 계산법을 생각해본다. 배열의 정렬을 이용하여 포커의 족보에 맞추어 승자를 계산....


Comments