Strategiespiel (Vererbung)

chillerStudent

Bekanntes Mitglied
Guten Tag,

es ist das folgende Spiel vorgegeben:

Java:
class Player {

  String name;
  Player successor;

  Player(String name) {
    this.name = name;
    System.out.println("Spieler " + name + " nimmt teil");
  }

  String getName() {
    return name;
  }

  void setSuccessor(Player successor) {
    this.successor = successor;
    System.out.println("Der Nachfolger von " + name + " ist " 
                + successor.getName()); 
  }

  void play(boolean[] box) {
    int i1 = (int) (Math.random() * 6) + 1;
    int i2 = (int) (Math.random() * 6) + 1;
    System.out.println(name + " wuerfelt " + i1 + " und " + i2);
    int sum = i1 + i2;
    boolean successful = false;
    for (int b1 = 1; b1 <= sum / 2 && !successful; b1++) {
      int b2 = sum - b1;
      if (!box[b1] && b2 < box.length && !box[b2] && b1 != b2) {
        box[b1] = true;
        box[b2] = true;
        System.out.println("Schliesse " + b1 + " und " + b2);
        successful = true;
      }
    }
    if (!successful && sum < box.length && !box[sum]) {
      box[sum] = true;
      System.out.println("Schliesse " + sum);
      successful = true;
    }
    if (successful) {
      successor.play(box);
    } else {
    	System.out.println(name + " hat verloren");
    }
  }

}

Java:
class SomeGame {

  static final int N = 9;

  public static void main(String[] args) {
    boolean[] box = new boolean[N+1];  // box[0] wird nicht genutzt
    for (int i = 1; i <= N; ++i) { 
      box[i] = false;     // kennzeichnet geoeffnet
    }
    Player susi = new Player("Susi");
    Player fritz = new Player("Fritz");
    Player egon = new Player("Egon");
    susi.setSuccessor(fritz);
    fritz.setSuccessor(egon);
    egon.setSuccessor(susi);
    susi.play(box);
  }

}

Ich muss die Klasse Player so umschreiben, dass es eine abstracte Oberklasse ist und die Klasse Unterklassen hat. PlayerType1, PlayerType2 und PlayerType3.
Jeweils in einer Klasse muss eine Strategie programmiert werden:

Type1 :
Spieler des Typs 1 schliessen vorzugsweise zwei möglichst weit auseinanderliegende Klappen, d.h., 8 = 1+7 ist besser als 8 = 3+5, und dieses wiederum besser als 8 = 8.

Type2 :
Spieler des Typs 2 schliessen vorzugsweise zwei möglichst nahe beieinander liegende Klappen, d.h., 8 = 3+5 ist besser als 8 = 1+7, und dieses wiederum besser als 8 = 8.

Type3 :
Spieler des Typs 3 schliessen vorzugsweise nur eine Klappe und sonst möglichst weit auseinander liegende Klappen, d.h., 8 = 8 ist besser als 8 = 1+7, und dieses wiederumbesser als 8 = 3+5.

Jetzt hab ich die drei Unterklassen erstellt. Die erste Strategieklasse sieht so aus.
Java:
public class PlayerType1 extends Player{

	PlayerType1(String name){
		super(name);
	}
}

Das Spiel soll bis 20 Spielern funktionieren. Der erste Spieler heißt A, zweiter B, usw.
Kann mir bitte jemand einen Ansatz geben, was ich als nächstes machen kann/soll. Danke schon mal.
 

ARadauer

Top Contributor
die Logik was du schließt in eine eigene Methode auslagern, in der Oberklasse nur den Rumpf mit abstract davor schreiben und in den Unterklassen überschreiben.
 

ARadauer

Top Contributor
naja was genau macht die Methode play? (so ungefähr... ganz genau hab ichs nicht verstanden)
würfeln
entscheiden
machen

Entscheiden soll jeder anders machen, also jede Unterklasse. Jetzt machst du genau für den Code eine eigene Methode und überschreibst sie in den Unterklassen...
 

chillerStudent

Bekanntes Mitglied
Der erste Spieler würfelt mit zwei würfeln. Die summe davon ist jetzt z.b. eine 8. Dann gibt es eine Box mit 9 seiten, die mit zahlen von 1 bis 9 nummeriert ist. Man guckt dann in die box, welche kombinationen (summen) es für die 8 gibt. Eine kombination schließt man dann. Wenn die seiten mit der nummer 3 und die seite mit der nummer 5 noch in der box enthalten sind, werden diese gelöscht oder halt beim nächsten würfeln dürfen diese seiten nicht mehr existieren.
Verlieren tut der spieler der keine kombination mehr findet.

Und jetzt muss ich halt strategien einbauen.
 

ARadauer

Top Contributor
ah ja shut the box... silvester 2010 und viel jägermeister... ich kann ich dumpf erinnern... :lol:


ja würfeln, entscheiden, box verändern, alles was zum enscheiden gehört machst du in einer eigenen methode und machst du dir durch vererbung austauschbar...
 

chillerStudent

Bekanntes Mitglied

Also die übungsaufgabe habe ich so abgegeben, bis wohin wir gekommen sind. Jetzt hab ich die lösung vom prof und die nächste übung ist die lösung zu erweitern. Hatte die hälfte der punkte bekommen mit meiner lösung.
Ich habe deswegen einen neuen Thread gestartet, weil http://www.java-forum.org/java-basics-anfaenger-themen/130295-augensummen.html zu unübersichtlicher wurde.
Ich werde den augensumme als erledigt markieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
G Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
O Vererbung änderung des Konstruktors Java Basics - Anfänger-Themen 8
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben