2014-10-02 1 views
0

과 같은 위험한 게임처럼이 자바 알고리즘을 해결하십시오. 오판을 굴려야하지만, 각 롤마다 Random.nextInt() 메서드를 사용하고 싶지는 않습니다. 몇 가지 이유로 공격의 결과가 이미 있으며, 단순히 오이스의 값을 생성하려고합니다. [3-
[4, 3, 5] : 위험 게임에서

는 오지 주문하고 단독으로 비교 예를 들어
: 공격이 3 개 오지 롤 경우 방어는 2 개 오지 롤 이러한 결과는 5]
공격은 1 탱크를 잃었고 수비는 1 탱크를 잃었습니다.
[5, 4, 3] - [5, 3]
5 = 5 (공격은 타이의 경우 손실 됨)
4> 3 방위 패)
3 (이 경우 세 번째 주사위는 쓸모 없다)
리스크 게임 Dice for

이 입력 코드는
이다.
int diceForAttack = StringUtils.nextInt(3) + 1; 
int diceForDefense = StringUtils.nextInt(3) + 1; 
//prints: attack Vs. defense 
System.out.println(String.format("%d Vs. %d", diceForAttack, diceForDefense)); 

int maxLost = Math.min(diceForAttack, diceForDefense); 
int attackLoses = StringUtils.nextInt(maxLost + 1); 
int defenseLoses = maxLost - attackLoses; 
//prints: 
//Attack lost x 
//Defense lost y 
System.out.println(String.format("Attack lost %d\nDefense lost %d", attackLoses, defenseLoses)); 

//Now I want to generate two arrays 
//such that the dice respect the values attackLoses and defenseLoses 
int[] attack = new int[diceForAttack]; 
int[] defense= new int[diceForDefense]; 
... 
... 
... 


질문은 : 이미 공격과 방어를 잃게됩니다 얼마나 많은 탱크 알고 있기 때문에
.
두 개의 배열을 생성하여 주사위가 attackLoses 및 defenseLoses 값을 존중하도록 만들 수 있습니까?

+0

왜 주사위 굴림을 생성하고 그 규칙에 따라 결과를 결정하지 않습니까? – rgettman

+0

공격에 의해 잃어버린 탱크마다 넥타이 (무작위 값, 공격과 방어를 위해 동일)를 추가하십시오 (실제로는 무작위 일 필요가 없습니다 .1은 괜찮습니다). 방위군이 잃어버린 탱크마다>를 추가하십시오. 예를 들어, 2 및 1이다. [1-5]는 무작위로, [x-6]는 다른 하나를 선택합니다. – njzk2

+0

@rgettman Easy to Realistic의 주사위 종류가 많기 때문에. 현실적인 곳에서는 규칙에 따라 확률을 사용합니다. 그러나이지 모드는 공격을 선호합니다. –

답변

1

이렇게 문제를 해결할 수있는 간단하고 쉬운 방법은 원하는 결과를 얻을 때까지 주사위를 다시 돌리는 것입니다. 단점은 요청한 결과가있을 법하지 않거나 불가능한 경우에는 다소 시간이 걸릴 것이지만 문제는 아닌 것처럼 보입니다.

관련 문제