몇 주 동안이나 기다린 끝에, 친구들과 함께 첫 번째 Dungeons & Dragons (D&D) 게임을 하게 되었어요. 게임의 첫 세션이니만큼, 각 플레이어는 함께 플레이할 캐릭터를 하나씩 만들어야 해요. 캐릭터의 능력치는 6면체 주사위를 굴려서 정해져요. 그런데 그 주사위가 어디 있는 걸까요? 깜짝 놀라 보니, 친구들은 바로 _여러분_이 주사위를 가져오기를 기다리고 있었어요. 어쨌든 D&D를 하자고 한 건 여러분이니까요! 당황한 나머지 주사위를 가져오는 걸 깜빡했다는 걸 깨달아요. 그러면 D&D 게임은 못 하게 되는 셈이죠. 다행히 기본적인 코딩 실력이 있으니, 금방 해결책이 떠올라요. 주사위 굴리기를 시뮬레이션하는 프로그램을 작성하기로요.
Dungeons & Dragons 게임에서는 각 플레이어가 먼저 함께 플레이할 캐릭터를 만들어요. 이 캐릭터에는 여러 가지 중에서도 여섯 가지 능력치가 있어요. 바로 근력, 민첩, 건강, 지능, 지혜, 매력이에요. 이 여섯 능력치의 점수는 무작위로 정해져요. 6면체 주사위 네 개를 굴린 뒤, 가장 큰 세 개의 합을 기록해서 정해요. 이 과정을 각 능력치마다 한 번씩, 총 여섯 번 반복해요.
캐릭터의 초기 생명점은 10 + 캐릭터의 건강 수정치예요. 건강 수정치는 캐릭터의 건강에서 10을 뺀 뒤 2로 나누고, 소수점을 버려서 구해요.
위 규칙을 따르는 무작위 캐릭터 생성기를 작성해요.
예를 들어, 주사위 네 개를 여섯 번 굴린 결과는 다음과 같을 수 있어요.
건강이 3이므로 건강 수정치는 -4이고, 생명점은 6이에요.
대부분의 프로그래밍 언어에는 (의사)난수 생성기가 있지만, 주사위를 굴리도록 설계된 프로그래밍 언어는 거의 없어요. 그런 언어 중 하나가 Troll이에요.