You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. import java.util.*;
  2. public class Player {
  3. String name;
  4. ArrayList<Figure> figures;
  5. int startPos;
  6. int startHome;
  7. int jumpToHome;
  8. Scanner scanner;
  9. public Player(String name, int startPos, int startHome, int jumpToHome) {
  10. this.name = name;
  11. this.startPos = startPos;
  12. this.startHome = startHome;
  13. this.jumpToHome = jumpToHome;
  14. figures = new ArrayList<>();
  15. for(int i = 0; i < 4; i++) {
  16. figures.add(new Figure());
  17. }
  18. }
  19. public int rollDice() {
  20. return (int) (Math.random() * 6 + 1);
  21. }
  22. public boolean checkGameWin(ArrayList<Figure> figures) {
  23. Iterator<Figure> it = figures.iterator();
  24. Figure f;
  25. while(it.hasNext()) {
  26. f = it.next();
  27. if(!(f.getPosition() >= startHome && f.getPosition() <= startHome+3)) {
  28. return false;
  29. }
  30. }
  31. return true;
  32. }
  33. public int checkFigureInBase(ArrayList<Figure> figures) {
  34. Iterator<Figure> it = figures.iterator();
  35. Figure f;
  36. int count = 0;
  37. while(it.hasNext()) {
  38. f = it.next();
  39. if(f.getPosition() == -1) {
  40. count++;
  41. }
  42. }
  43. return count;
  44. }
  45. public int choose(ArrayList<Integer> usableFigures) {
  46. StringBuilder out = new StringBuilder("[");
  47. Iterator<Integer> it = usableFigures.iterator();
  48. for(int i = 0; i<usableFigures.size(); i++) {
  49. out.append(usableFigures.get(i) + 1);
  50. if(i < usableFigures.size()-1) {
  51. out.append(",");
  52. }
  53. }
  54. out.append("]");
  55. scanner = new Scanner(System.in);
  56. System.out.print("Wählen Sie eine Figur " + out + ": ");
  57. try{
  58. int input = scanner.nextInt();
  59. if(input == -1) {
  60. System.exit(0);
  61. }
  62. if (input > Collections.max(usableFigures) + 1 || input < Collections.min(usableFigures) + 1) {
  63. System.out.println("Die eingegebene Zahl war zu groß oder zu klein.\n" +
  64. "Bitte nur Zahlen von " + (Collections.min(usableFigures) + 1) + " bis " + (Collections.max(usableFigures) + 1) + " eingeben.");
  65. return -1;
  66. }
  67. return input - 1;
  68. } catch (Exception e) {
  69. System.out.println("Die Eingabe hat keine Zahl bekommen.\n" +
  70. "Bitte nur Zahlen von " + (Collections.min(usableFigures) + 1) + " bis " + (Collections.max(usableFigures) + 1)+ " eingeben.");
  71. return -1;
  72. }
  73. }
  74. }