Hallo,
ich habe eine Aufgabe, bei der ich nicht recht weiss, wie ich sie umsetzen soll.
Es geht darum, eine sehr vereinfachte Form des Spiels „Risiko“ in Java zu implementieren.
Ich bin leider blutiger Anfänger und weiss nicht ganz, wie ich das in vernünftig in Klassen bringe etc.
Vielleicht kann mir jemand ein wenig helfen.
Danke im Vorraus.
Risiko:
Bei dem Spiel Risiko kann ein Spieler versuchen, ein Land zu erobern. Hierfür gelten folgende Regeln:
Der Angreifer hat in einem benachbarten Land eine bestimmte Anzahl Steine na. Der Verteidiger hat das angegriffene Land mit nv Steinen besetzt.
Jeder Spieler hat drei Würfel. Zunächst würfelt der Angreifer. Die Anzahl der Würfel, die benutzt werden darf, ist das Minimum von na und 3. Anschließend würfelt der Verteidiger. Die Anzahl der Würfel ist analog zum Angreifer.
Nach dem Würfeln werden die Würfel in nicht steigender (fallender) Reihenfolge angeordnet und beginnend beim höchsten Wert nebeneinander gelegt.
Der Verteidiger verliert einen Stein, falls der korrespondierende Würfel des Angreifers einen höheren Wert hat. Bei Gleichstand oder kleinerem Wert verliert der Angreifer einen Stein. Das Ganze wird solange durchgeführt, bis eine Seite keinen Stein mehr hat.
Beispiel:
Der Angreifer hat 4 Steine der Verteidiger 2. Der Angreifer darf mit drei Würfel würfeln, der Verteidiger nur mit zwei. Das Ergebnis sei
Angreifer: 5 3 1
Verteidiger: 4 3
Für den ersten Würfel (5 zu 4) verliert der Verteidiger einen Stein. Beim zweiten Würfel ist Gleichstand, damit verliert der Angreifer einen Stein. Die 1 wird nicht berücksichtigt.
Hinweis: Damit die vordefinierte Methode sort der Klasse Arrays benutzt werden kann darf nicht der Datentyp int für ganzzahlige Werte, sondern muss der Wrappertyp Integer benutzt werden.
Bsp.:
import java-util.*
...
Integer[] feld = new Integer[n];
...
// Sortierung in nicht fallender (aufsteigender) Reihenfolge Arrays.sort(feld);
// Sortierung in nicht steigender (fallender) Reihenfolge Arrays.sort(feld, Collections.reverseOrder());
Die Ausgabe sollte ungefähr so aussehen:
1te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 7, Truppen/Steine Verteidiger: 7
Wurf Angreifer: [5, 3, 1], Wurf Verteidiger: [4, 3, 1]
2te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 5, Truppen/Steine Verteidiger: 6
Wurf Angreifer: [5, 5, 2], Wurf Verteidiger: [2, 2, 2]
3te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 4, Truppen/Steine Verteidiger: 4
Wurf Angreifer: [5, 4, 1], Wurf Verteidiger: [5, 1, 1]
4te Runde:
Würfel Angreifer: 2, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 2, Truppen/Steine Verteidiger: 3
Wurf Angreifer: [5, 2], Wurf Verteidiger: [5, 3, 1]
Spiel zu Ende!
Verteidiger hat gewonnen! Land verteidigt!
ich habe eine Aufgabe, bei der ich nicht recht weiss, wie ich sie umsetzen soll.
Es geht darum, eine sehr vereinfachte Form des Spiels „Risiko“ in Java zu implementieren.
Ich bin leider blutiger Anfänger und weiss nicht ganz, wie ich das in vernünftig in Klassen bringe etc.
Vielleicht kann mir jemand ein wenig helfen.
Danke im Vorraus.
Risiko:
Bei dem Spiel Risiko kann ein Spieler versuchen, ein Land zu erobern. Hierfür gelten folgende Regeln:
Der Angreifer hat in einem benachbarten Land eine bestimmte Anzahl Steine na. Der Verteidiger hat das angegriffene Land mit nv Steinen besetzt.
Jeder Spieler hat drei Würfel. Zunächst würfelt der Angreifer. Die Anzahl der Würfel, die benutzt werden darf, ist das Minimum von na und 3. Anschließend würfelt der Verteidiger. Die Anzahl der Würfel ist analog zum Angreifer.
Nach dem Würfeln werden die Würfel in nicht steigender (fallender) Reihenfolge angeordnet und beginnend beim höchsten Wert nebeneinander gelegt.
Der Verteidiger verliert einen Stein, falls der korrespondierende Würfel des Angreifers einen höheren Wert hat. Bei Gleichstand oder kleinerem Wert verliert der Angreifer einen Stein. Das Ganze wird solange durchgeführt, bis eine Seite keinen Stein mehr hat.
Beispiel:
Der Angreifer hat 4 Steine der Verteidiger 2. Der Angreifer darf mit drei Würfel würfeln, der Verteidiger nur mit zwei. Das Ergebnis sei
Angreifer: 5 3 1
Verteidiger: 4 3
Für den ersten Würfel (5 zu 4) verliert der Verteidiger einen Stein. Beim zweiten Würfel ist Gleichstand, damit verliert der Angreifer einen Stein. Die 1 wird nicht berücksichtigt.
Hinweis: Damit die vordefinierte Methode sort der Klasse Arrays benutzt werden kann darf nicht der Datentyp int für ganzzahlige Werte, sondern muss der Wrappertyp Integer benutzt werden.
Bsp.:
import java-util.*
...
Integer[] feld = new Integer[n];
...
// Sortierung in nicht fallender (aufsteigender) Reihenfolge Arrays.sort(feld);
// Sortierung in nicht steigender (fallender) Reihenfolge Arrays.sort(feld, Collections.reverseOrder());
Die Ausgabe sollte ungefähr so aussehen:
1te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 7, Truppen/Steine Verteidiger: 7
Wurf Angreifer: [5, 3, 1], Wurf Verteidiger: [4, 3, 1]
2te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 5, Truppen/Steine Verteidiger: 6
Wurf Angreifer: [5, 5, 2], Wurf Verteidiger: [2, 2, 2]
3te Runde:
Würfel Angreifer: 3, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 4, Truppen/Steine Verteidiger: 4
Wurf Angreifer: [5, 4, 1], Wurf Verteidiger: [5, 1, 1]
4te Runde:
Würfel Angreifer: 2, Würfel Verteidiger: 3
Truppen/Steine Angreifer: 2, Truppen/Steine Verteidiger: 3
Wurf Angreifer: [5, 2], Wurf Verteidiger: [5, 3, 1]
Spiel zu Ende!
Verteidiger hat gewonnen! Land verteidigt!