Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Algorithmen » Wert einer Klasse in Java abfragen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 4 Beiträge
Haevelin

Habe es jetzt trivial gelöst: in eigeneEntscheidung ist immer der Wert gespeichert den die Methode vor ihrer Ausführung hatte.

/*
* implementiert GefStrategie
*/
public class Pavlov implements GefStrategie {
boolean lastdecision;
boolean eigeneEntscheidung;
int zugnummer = 1;

/*
* legt die letzte Entscheidung des Gegenuebers fest
*
* @see GefStrategie#setOpponentsLastDecision(boolean)
*/
@Override
public void setOpponentsLastDecision(boolean decision) {
// TODO Auto-generated method stub
this.lastdecision = decision;

}

/*
* der erste Zug kooperiert; kooperiert, falls seine letzte Entscheidung von
* der des Gegenuebers abweicht, sonst kooperiert er nicht
* @return Zugwahl true ist kooperieren, false ist nicht kooperieren
* @see GefStrategie#getNextDecision()
*/
@Override
public boolean getNextDecision() {
// TODO Auto-generated method stub
if (zugnummer == 1) {
zugnummer++;
eigeneEntscheidung = true;
return true;
}
if (eigeneEntscheidung == lastdecision) {
eigeneEntscheidung = false;
return false;
} else {
eigeneEntscheidung = true;
return true;
}
}

}
eulerscheZahl

Hallo,
in deinem ursprünglichen Programm sehe ich gleich zwei Probleme.
1.: System.out.println(this.getNextDecision());
if (this.getNextDecision()!=lastdecision){
hier rufst du die Methode zweimal auf, bei deiner Implementierung würde ich aber nicht davon ausgehen, dass sie beide Male das selbe Ergebnis ausspuckt.
2.: die Methode getNextDecision() ruft die Methode getNextDecision() auf.
Die wiederum ruft dann erneut getNextDecision() auf und so weiter.
Du hast eine rekursive Funktion ohne Abbruchbedingung geschrieben, die Methode ruft sich immer wieder selbst auf, bis kein Speicher mehr vorhanden ist.
Haevelin RE: Wert einer Klasse in Java abfragen

Eine einfache Lösung besteht darin für den Zustand von getNextDecision eine eigene Variable zu benamen und diese dann in der Methode zu belegen. Die Frage ist: Geht es auch auf die Weise, wie ich es zunächst angefangen habe. Mit einem Befehl analog zu Arrays.toString jetzt eine Art wert.toboolean?
Haevelin Wert einer Klasse in Java abfragen

Ich muss ein Programm schreiben, welches das Gefangenendilemma modelliert. Insbesondere soll in einer Klasse Pavlov die Strategie so gewählt werden, dass bei Abweichen der Strategie von Spieler 1 und Spieler 2 im vorhergehenden Zug der Spieler, der am Zug ist mit dieser Strategie nicht kooperieren. Mein Code sieht so aus:

public class Pavlov implements GefStrategie{
boolean lastdecision;
int zugnummer=0;
@Override
public void setOpponentsLastDecision(boolean decision) {
// TODO Auto-generated method stub
this.lastdecision=decision;

}


@Override
public boolean getNextDecision() {
// TODO Auto-generated method stub
zugnummer++;
if (zugnummer==1){
return true;
}
System.out.println(this.getNextDecision());
if (this.getNextDecision()!=lastdecision){
return false;
} else {
return true;
}
}



}

d.h. ich rufe in getNextDecision den aktuellen Wert von getNextDecision durch this.getNextDecision() ab; was führt aber zu einer Fehlermeldung. Wie gelingt es mir auf den aktuellen Wert, der wäre bei Zug 2 bspw. true, von getNextDecision zuzugreifen?