Simples Risiko-Spiel

Isildurs_Erbe

Neues Mitglied
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!
 

Isildurs_Erbe

Neues Mitglied
Du hast ja anscheinend noch gar nichts. Wir versuchen dir gerne Hilfestellung zu geben, aber du musst den Anfang machen.
danke erstmal für die Antwort.
Genau darum geht es ja. Ich weiss nicht recht, wie ich die ganze Sache anpacken soll.
Ich würde wahrscheinlich für den Würfel eine Klasse erstellen mit einem String, in dem die möglichen Augenzahlen vorkommen.
Den String zum Getter/Setter machen.
Dann brauche ich vermutlich eine Reihe an Funktionen für Angreifer, Verteidiger, die zufälligen Würfelzahlen usw.
Genau dabei brauche ich aber gerade Hilfe
 

MoxxiManagarm

Top Contributor
Klingt für mich viel zu kompliziert für dieses einfache Programm. Manchmal will man zu viel und kommt dann nicht weiter.
Ich gebe dir mal einen Rahmen vor, der ausreichen sollte.

Java:
class Risiko {
    // Hilfsmethoden, z.B. rollDice

    public void attack(int na, int nv) {
        // ...
    }

    public static void main(String... args) {
        Risiko risiko = new Risiko();
        risiko.attack(3, 3);
    }
}
 
K

kneitzel

Gast
Also es geht bei der objektorientierten Modellierung doch nur drum, ein Model dessen zu bekommen, das da beschrieben wurde.

Also geh doch einfach einmal die Beschreibung durch. Zur Not erst einmal alle Substantive unterstreichen. Dann hast Du schon einmal alle Kandidaten für Klassen.

Wenn Du das hast, dann kannst Du Dir im zweiten durchlauf zu jedem Substantiv überlegen, was für Verhalten und Eigenschaften da im Text zugewiesen wurde.

Dann musst Du nur noch überlegen, wie die Zusammenhänge sind und Du hast ein erstes, einfaches Model. Das kann man dann vereinfachen. Beispiel aus der Luft gegriffen. Ein Spieler hat ein Namen. Also landest Du dann am Ende zu einem Spieler mit Attribut Name vom Typ Name. Name hat aber keinerlei Attribute oder Verhalten. Also wird das dann vereinfacht: Name ist einfach ein String. (Muss nicht zwingend so sein. Wenn Name ein Verhalten hätte, dann wäre es eine Klasse. Wenn der Name immer anders ausgegeben werden sollte z.B. dann hätte man ein Verhalten, das eine Klasse rechtfertigen könnte!

Das ist generell nicht immer so trivial aber das ist ein erstes einfaches Vorgehen um zu irgend etwas sinnvollen zu kommen.
 

temi

Top Contributor
Generell können wir nicht wissen, was dein Wissenstand ist, bzw. was verlangt sein wird. Das kann vom Ansatz "alles in einer Klasse Risiko" bis sauberes OO-Design mit mehreren Klassen alles sein. Das müsstest allerdings du uns mitteilen.

Ich würde wahrscheinlich für den Würfel eine Klasse erstellen mit einem String, in dem die möglichen Augenzahlen vorkommen.
Den String zum Getter/Setter machen.
Eine Klasse Würfel könnte kein schlechter Beginn sein, das ist allerdings vom o.g. abhängig. Die Sache mit dem String (Wozu, soll der denn gut sein?) und den Gettern/Settern klingen falsch. Es ist nicht generell erforderlich und sinnvoll Getter/Setter für alle Eigenschaften zu haben. Beim Würfel fällt mir auch kein besonders guter Grund dafür ein. Aber auch das ist, wiederum, abhängig von deinem Wissenstand. Ein sinnvoller Würfel könnte, für mich, einen Konstruktor mit ggf. einem Parameter haben, der aussagt, wieviele Seiten der Würfel hat (evtl. als Enum, gängige Würfeltypen sind W4, W6, W8, W10, W12, W20 und W100) und dann noch eine Methode roll() mit einem int als Rückgabewert. Das war's.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
L Simples Spielfeld erzeugen Java Basics - Anfänger-Themen 1
P Simples Kartenspiel Java Basics - Anfänger-Themen 1
Olis Erste Schritte Simples Memory Spiel möglich? Java Basics - Anfänger-Themen 1
J Suche simples Beispiel für die EOFException Java Basics - Anfänger-Themen 1
S Simples JNI zum laufen bringen Java Basics - Anfänger-Themen 5
P simples Program läuft nicht ;? Java Basics - Anfänger-Themen 9
J Starthilfe für ein "simples" Spiel Java Basics - Anfänger-Themen 2
J Simples Programm - Fehler im Konstruktor Java Basics - Anfänger-Themen 2
C simples Formel programm Java Basics - Anfänger-Themen 5
C simples Umbennen in Klasse File Java Basics - Anfänger-Themen 4
T Problem mit Abstract Windowing Toolkit(simples Problem) Java Basics - Anfänger-Themen 8
F Ganz simples Problem: Kovertieren von Double zu Integer Java Basics - Anfänger-Themen 2
D Ein simples Problem . *verwirrt sei* Java Basics - Anfänger-Themen 2
E Risiko Java Basics - Anfänger-Themen 2
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
I Threads Spiel gol Java Basics - Anfänger-Themen 6
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
enesss tictactoe spiel Java Basics - Anfänger-Themen 5
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
Jxhnny.lpz TicTacToe Spiel vs Computer. (Probleme) Java Basics - Anfänger-Themen 7
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
Kennewick Basketball Spiel Ergebnisse Java Basics - Anfänger-Themen 11
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
R Hangman-Spiel-zufälliges Wort ermitteln Java Basics - Anfänger-Themen 4
JEP1 Java Dialog Fenster schließen Spiel Java Basics - Anfänger-Themen 0
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
M Java Spiel wie Wer wird Millionär Java Basics - Anfänger-Themen 1
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
C Java Spiel Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
B Memory Spiel Java Basics - Anfänger-Themen 29
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
Kamy Ein einfaches "Vier Gewinnt" Spiel für Anfängerin Java Basics - Anfänger-Themen 51
A Breakout-Spiel , Ball mit Platten abprallen lassen Java Basics - Anfänger-Themen 1
S Spiel programmieren mit Java Java Basics - Anfänger-Themen 11
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
C Rekursives Backtracking beim Spiel Peg Java Basics - Anfänger-Themen 22
M Spiel programmieren Java Basics - Anfänger-Themen 16
Spencer Reid Feedback zu kleinem Spiel Java Basics - Anfänger-Themen 4
kokojamboo92 Spiel programmieren Java Basics - Anfänger-Themen 1
R Kleines Java Spiel funktioniert nicht. Java Basics - Anfänger-Themen 2
I Spiel Java Basics - Anfänger-Themen 34
H ein einfaches Tic Tac Toe Spiel Java Basics - Anfänger-Themen 1
I Spiel programmieren. Java Basics - Anfänger-Themen 16
B Hilfe bei Escape - Spiel Java Basics - Anfänger-Themen 6
S Java-Spiel Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
K Klassen Registrierungsseite für ein Spiel Java Basics - Anfänger-Themen 6
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 3
J Programmierung Quiz Spiel Java Basics - Anfänger-Themen 2
M Brauche Tipps für ein Spiel Java Basics - Anfänger-Themen 4
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
Mxxxt Mosaik Spiel - Steuerpanel wird nicht angezeigt Java Basics - Anfänger-Themen 5
M Erste Schritte Zufallszahl Spiel Problem Java Basics - Anfänger-Themen 7
Z Erste Schritte Kleines 2D. Spiel Objekt Bewegung funktioniert nicht Java Basics - Anfänger-Themen 2
H Spiel Kniffel: Gesamtes Array untersuchen. Java Basics - Anfänger-Themen 15
Tacofan Hangman als fertiges Spiel Java Basics - Anfänger-Themen 7
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
K Kleines Spiel auf Java programmieren Java Basics - Anfänger-Themen 2
W Tic Tac Toe Spiel ohne Arrays Java Basics - Anfänger-Themen 7
S Im objektorientiertem "Spiel" kämpfen Java Basics - Anfänger-Themen 3
I Klassen Umsetzungsfrage zu Spiel "Zuul" Java Basics - Anfänger-Themen 3
F Mastermind Spiel Java Basics - Anfänger-Themen 9
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
F Game-Engine für textbasierendes Spiel: Architektur? Java Basics - Anfänger-Themen 9
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
J Java Spiel Zufallsauswahl für Zugbeginn Java Basics - Anfänger-Themen 3
J Frage Antwort Spiel - Wie Zeitcountdown realisieren? Java Basics - Anfänger-Themen 2
L Erste Schritte Spiel: Glückliches Sieben Java Basics - Anfänger-Themen 3
T Hangman spiel Java Basics - Anfänger-Themen 5
J 2 Pc's - Spiel gegeneinander ?! Java Basics - Anfänger-Themen 3
V Spiel Programmieren Java Basics - Anfänger-Themen 9
P 2D-Spiel und Bildschirmgröße Java Basics - Anfänger-Themen 2
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
T Blöcke für ein Jump and Run Spiel Java Basics - Anfänger-Themen 8
S 2D-Spiel mit Threads... Java Basics - Anfänger-Themen 3
S 2D-Spiel im Vollbild an größe anpassen? Java Basics - Anfänger-Themen 3
M hangman spiel Java Basics - Anfänger-Themen 1
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
S Mosaik Spiel Java Basics - Anfänger-Themen 19
pinar memory spiel Java Basics - Anfänger-Themen 10
T OOP Mein erstes Java-Spiel - Schiffe versenken! Java Basics - Anfänger-Themen 2
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
K Schere Stein Papier Spiel Java Basics - Anfänger-Themen 3
A Feedback zum Spiel Java Basics - Anfänger-Themen 5
F Hilfe bei meinem Spiel Java Basics - Anfänger-Themen 3
C Lotto Spiel Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben