#players
との入力を受け取り、#dice
各プレイヤーが何度でもサイコロを振るプログラムを作成しようとしています。次に、ロールと合計を出力します。
これまでのところ、入力された数のサイコロを転がし、これらの値を配列に格納し、合計して出力できるプログラムを開発することができました。
残念ながら、私は今のところ立ち往生しています。なぜなら、新しいプレーヤーのために毎回プログラムにこれを繰り返させようとするときに何をすべきかまったくわからないからです。おそらくインクリメンターを使用することになると思いますが、複雑さに圧倒され、オンラインで何を探すべきかさえわかりません。
これが私のコードです:
package diceroll;
import java.util.ArrayList;
import java.util.Scanner;
public class DiceRoll {
public static void main(String[] args) {
int numplayers = 0, numdice = 0; // incrementers for #rolls and #players
// ArrayList<ArrayList> players = new ArrayList<ArrayList>();
// players.add(rolls); /// adding list to a list
// System.out.println(players);
ArrayList<Integer> rolls = new ArrayList<>();
System.out.println("Enter the number of players.");
Scanner scan = new Scanner (System.in);
numplayers = scan.nextInt();
System.out.println("Enter the number of dice.");
numdice = scan.nextInt();
while (numdice > 0 ) {
Die die1 = new Die();
die1.roll();
rolls.add(die1.getFaceValue());
numdice--;}
System.out.println(rolls);
// sum for array, but i cant access the arraylength
int total = 0;
for (int n : rolls) //what does the colon : do ?
{total += n;
System.out.println("Dice total:" + total);
}
}
}
Die.java
また、額面に乱数を割り当て、サイコロをランダム化するために使用するロール メソッドを持つ基本クラスもあります。
出力:
run: プレイヤー数を入力します。1 サイコロの数を入力します。4 [5, 4, 6, 6] 5 9 15
唯一の問題は、現在プレイヤーの数を変更しても効果がないことです。21