D&D 캐릭터

D&D 캐릭터

쉬움

소개

몇 주 동안이나 기다린 끝에, 친구들과 함께 첫 번째 Dungeons & Dragons (D&D) 게임을 하게 되었어요. 게임의 첫 세션이니만큼, 각 플레이어는 함께 플레이할 캐릭터를 하나씩 만들어야 해요. 캐릭터의 능력치는 6면체 주사위를 굴려서 정해져요. 그런데 그 주사위가 어디 있는 걸까요? 깜짝 놀라 보니, 친구들은 바로 _여러분_이 주사위를 가져오기를 기다리고 있었어요. 어쨌든 D&D를 하자고 한 건 여러분이니까요! 당황한 나머지 주사위를 가져오는 걸 깜빡했다는 걸 깨달아요. 그러면 D&D 게임은 못 하게 되는 셈이죠. 다행히 기본적인 코딩 실력이 있으니, 금방 해결책이 떠올라요. 주사위 굴리기를 시뮬레이션하는 프로그램을 작성하기로요.

지침

Dungeons & Dragons 게임에서는 각 플레이어가 먼저 함께 플레이할 캐릭터를 만들어요. 이 캐릭터에는 여러 가지 중에서도 여섯 가지 능력치가 있어요. 바로 근력, 민첩, 건강, 지능, 지혜, 매력이에요. 이 여섯 능력치의 점수는 무작위로 정해져요. 6면체 주사위 네 개를 굴린 뒤, 가장 큰 세 개의 합을 기록해서 정해요. 이 과정을 각 능력치마다 한 번씩, 총 여섯 번 반복해요.

캐릭터의 초기 생명점은 10 + 캐릭터의 건강 수정치예요. 건강 수정치는 캐릭터의 건강에서 10을 뺀 뒤 2로 나누고, 소수점을 버려서 구해요.

위 규칙을 따르는 무작위 캐릭터 생성기를 작성해요.

예를 들어, 주사위 네 개를 여섯 번 굴린 결과는 다음과 같을 수 있어요.

  • 5, 3, 1, 6: 1을 버리고 5 + 3 + 6 = 14를 더해서 근력에 배정해요.
  • 3, 2, 5, 3: 2를 버리고 3 + 5 + 3 = 11을 더해서 민첩에 배정해요.
  • 1, 1, 1, 1: 1을 버리고 1 + 1 + 1 = 3을 더해서 건강에 배정해요.
  • 2, 1, 6, 6: 1을 버리고 2 + 6 + 6 = 14를 더해서 지능에 배정해요.
  • 3, 5, 3, 4: 3을 버리고 5 + 3 + 4 = 12를 더해서 지혜에 배정해요.
  • 6, 6, 6, 6: 6을 버리고 6 + 6 + 6 = 18을 더해서 매력에 배정해요.

건강이 3이므로 건강 수정치는 -4이고, 생명점은 6이에요.

Note

대부분의 프로그래밍 언어에는 (의사)난수 생성기가 있지만, 주사위를 굴리도록 설계된 프로그래밍 언어는 거의 없어요. 그런 언어 중 하나가 Troll이에요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Visual Basic Exercism

D&D 캐릭터 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Visual Basic 트랙을 연습 문제 113개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.

D&D 캐릭터 깊이 살펴보기!

주사위 눈을 (겉보기에) 무작위로 만드는 방법을 살펴봐요. 시드, 의사 난수, 그리고 흔히 걸려들기 쉬운 함정에 대해 배워요. 마지막으로, 무작위 값을 반환하는 함수를 테스트할 때 속성 기반 테스트가 얼마나 유용한지 알아봐요.