Würfel class comit
parent
fa4f323932
commit
a8e4e484ad
|
@ -0,0 +1,114 @@
|
||||||
|
package domain;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Würfel {
|
||||||
|
|
||||||
|
private static final int DEFAULT_NUM_WÜRFEL = 5;
|
||||||
|
private int[] values;
|
||||||
|
private boolean isSixSided = true;
|
||||||
|
public int numSides = (isSixSided)? 6 : 8;
|
||||||
|
private List<Integer> gehalteneWürfelIndizes;
|
||||||
|
private Scanner scanner;
|
||||||
|
|
||||||
|
|
||||||
|
public Würfel(int numSides) {
|
||||||
|
this.numSides = numSides;
|
||||||
|
this.values = new int[DEFAULT_NUM_WÜRFEL];
|
||||||
|
this.gehalteneWürfelIndizes = new ArrayList<>();
|
||||||
|
this.scanner = new Scanner(System.in);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setNumSides(int numSides) {
|
||||||
|
this.numSides = numSides;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getNumSides() {
|
||||||
|
return numSides;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void playRound() {
|
||||||
|
rollWürfel();
|
||||||
|
//anwendengehalteneWürfel();
|
||||||
|
this.scanner = new Scanner(System.in);
|
||||||
|
updateValues();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void rollWürfel() {
|
||||||
|
for (int i = 0; i < DEFAULT_NUM_WÜRFEL; i++) {
|
||||||
|
values[i] = (int) (Math.random() * numSides) + 1; // 1-8 eyes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* private void anwendengehalteneWürfel() {
|
||||||
|
if (!gehalteneWürfelIndizes.isEmpty()) {
|
||||||
|
List<Integer> keptDice = new ArrayList<>();
|
||||||
|
for (int index : gehalteneWürfelIndizes) {
|
||||||
|
keptDice.add(values[index]);
|
||||||
|
}
|
||||||
|
int additionalRolls = DEFAULT_NUM_WÜRFEL - keptDice.size();
|
||||||
|
for (int j = 0; j < additionalRolls; j++) {
|
||||||
|
keptDice.add((int) (Math.random() * numSides) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Konvertiere List<Integer> zurück zu int[]
|
||||||
|
values = new int[keptDice.size()];
|
||||||
|
for (int i = 0; i < keptDice.size(); i++) {
|
||||||
|
values[i] = keptDice.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void rerollDice() {
|
||||||
|
List<Integer> keptDice = new ArrayList<>();
|
||||||
|
for (int i = 0; i < DEFAULT_NUM_WÜRFEL; i++) {
|
||||||
|
System.out.println("Keep die number " + (i+1) + " for next roll? (y/n): ");
|
||||||
|
String answer = scanner.nextLine().toLowerCase();
|
||||||
|
if (answer.equals("y")) {
|
||||||
|
keptDice.add(values[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int additionalRolls = DEFAULT_NUM_WÜRFEL - keptDice.size();
|
||||||
|
for (int j = 0; j < additionalRolls; j++) {
|
||||||
|
keptDice.add((int) (Math.random() * numSides) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Конвертируем List<Integer> обратно в int[]
|
||||||
|
for (int i = 0; i < keptDice.size(); i++) {
|
||||||
|
values[i] = keptDice.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void updateValues() {
|
||||||
|
for (int i = 0; i < DEFAULT_NUM_WÜRFEL; i++) {
|
||||||
|
System.out.println("Wurf " + (i + 1) + ": " + values[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int[] getValues() {
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void releaseDice() {
|
||||||
|
gehalteneWürfelIndizes.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue