2021.02.23 데일리 회고

천영석·2021년 2월 23일
0
post-thumbnail

페어와 하루종일 로또 게임의 결과에서 1등부터 5등까지 정하는 로직을 구현하느라 시간을 보냈다.
어디서부터 잘못된 것인지 모르겠는데 2등과 3등을 구하는 로직을 아무리 생각해도 해결할 수 없었다.
2등은 5개의 숫자를 맞추고, 보너스 숫자까지 맞추면 되고, 3등은 보너스 숫자를 맞추지 않은 상태에서 5개의 숫자를 맞추면 되는데 쉽지 않았다.

그냥 객체에 1 ~ 5등까지 first: 0, second:0과 같이 할당해서 값을 추가해주는 식으로 하면 편하게 할 수 있지만 다른 방법을 사용해보고 싶었다.
그래서 constants.js파일에

export const REWARDS = Object.freeze([
  {
    matchCount: 3,
    shouldCheckBonus: false,
    money: 5000,
  },
  {
    matchCount: 4,
    shouldCheckBonus: false,
    money: 50000,
  },
  {
    matchCount: 5,
    shouldCheckBonus: false,
    money: 1500000,
  },
  {
    matchCount: 5,
    shouldCheckBonus: true,
    money: 30000000,
  },
  {
    matchCount: 6,
    shouldCheckBonus: false,
    money: 2000000000,
  },
]);

이렇게 값을 할당해두고, REWARDS를 돌면서 여기에 몇 개가 당첨되었는지를 추가해주는 식으로 구현해보고 싶었다.
따라서 REWARDS를 돌면서 진행이 되는데, 5번을 모두 순회한다는 것이 문제가 되었다.

일치하는 숫자가 5개이고, bonus가 true인 경우가 있다면 바로 반복문을 빠져나와서 객체를 return 해야하는데, 아직은 어떤 방식으로 해야할지 모르겠고, 내일 더 고민을 해봐야 할 것 같다.

profile
느려도 꾸준히 발전하려고 노력하는 사람입니다.

0개의 댓글