"보증 된 적중"과 "보증 된 미스"가능성이 무엇인지 (예 : 고양이가 용을 칠 수있는 기회, 용이 고양이를 놓칠 수있는 기회) 임의의 결과를 저장하고 전력 차이를 적용하기 전에 해당 범위 내에있는 경우 적중을 표시하십시오. 이렇게하면 100 % 적중 / 실패 가능성 문제를 예방할 수 있지만 항상 적중 할 가능성을 제공하는 다른 옵션이 있지만 아래에 자세히 설명되어 있습니다.
D & D는 "플랫"시스템으로, 가능한 롤 결과에 확률이 고르게 분포되어 있습니다. 다른 시스템은 일반적으로 여러 개의 주사위를 굴려서 추가하여 구부러진 분포를 사용합니다. 이와 같은 곡선을 만드는 것은 쉽습니다 (rand () + rand ()) / 2가 떠 오릅니다).
또 다른 가능성은 "폭발 주사위"입니다. Shadowrun 및 Savage Worlds와 같은 시스템에서 가능한 최대 다이 결과를 롤링하면 해당 다이를 다시 롤링하고 새 결과를 추가 할 수 있습니다. 게임에서 임의의 결과가 특정 임계 값을 초과하는지 확인하고, 그렇다면 다시 굴립니다. 주사위가 무기한으로 폭발하게된다면, 가장 작은 고블린조차도 신을 때릴 수있는 기회가 있으며, 명시적인 "보장 된 적중"기법이 필요하지 않습니다.
따라서 구부러진 롤을 사용한 한 가지 가능한 접근 방식, 누락 가능성 및 주사위 폭발 가능성은 다음과 같습니다.
function getRoll():Number
{
var result:Number = (rand() + rand()) * 3; //Curved result from 0 to 6
if(result > 5.75) result += getRoll(); //Explode over a certain threshold, recursively
return result;
}
function attackHits():Boolean
{
var roll:Number = getRoll();
if(roll < 0.25) return false; //Guaranteed chance of miss
else return ((player.dex - enemy.dex) + (player.speed - enemy.speed) +
(player.luck - enemy.luck) + roll) >= 10; //Your original test.
}
물론, 그것은 테스트되지 않았고 균형이 맞지 않습니다. 당신은 그들이 느낄 때까지 모든 마법의 숫자를 조정하고 싶을 것입니다.
규칙을 그대로 복사하는 데는 법적, 윤리적 문제가 있습니다. 하지만 D & D 및 기타 탁상용 게임에서 영감을 얻는 것은 훌륭한 일입니다. 그것이 그들이 처음부터 어떻게 설계되었는지입니다. 플레이어에게 규칙의 작동 방식을 정확하게 보여줄 필요가 없으며, 부드러운 부동 소수점 주사위 곡선을 사용하면 실제 주사위의 정수 제약 조건으로 제한하는 것보다 기분이 좋아집니다.