Probleme mit gettern und settern!

Status
Nicht offen für weitere Antworten.
hallo!
ich habe folgende aufgabenstellung bekommen:

Die Klasse Chip im Paket jpp.simpleGammon.basics repräsentiert Spielsteine des Simple Gammon Spiels; sie verwaltet die ID des zugehörigen Spielers (entweder PlayerID.PL_1 für weiße Steine oder PlayerID.PL_2 für schwarze Steine), einen boolean-Wert out der angibt, ob der Spielstein aktuell im Aus liegt, einen boolean-Wert done für die Darstellung ob der Spielstein erfolgreich zu Ende (= vom Brett) gespielt wurde, sowie ein Spike-Objekt zur Verwaltung des Spielfelds auf welchem sich der Spielstein aktuell befindet. Die Klasse soll (mindestens) folgende Schnittstelle bereitstellen:

*
public Chip ( PlayerID player )
Der Konstruktor der Spielstein-Klasse; er setzt die ID des Spielers auf den übergebenen Wert und initialisiert die Werte für out und done mit false.
*
public PlayerID getPlayerID ( )
liefert die ID des Spielers.
*
public boolean isDone ( )
gibt an, ob der Spielstein bereits erfolgreich vom Brett gespielt wurde.
*
public void setDone ( boolean done )
setzt den Status des Spielsteins, d.h. ob er erfolgreich vom Brett gespielt werden konnte oder nicht.
*
public boolean isOut ( )
gibt an, ob der Stein aktuell im Aus steht.
*
public void setOut ( boolean out )
setzt den Aus-Status des Spielsteins auf den übergebenen Wert.
*
public Spike getCurrentSpike ( )
liefert das Spielfeld, auf dem sich der Spielstein aktuell befindet.
*
public void setCurrentSpike ( Spike spike )
setzt das aktuelle Spielfeld auf dem sich der Spielstein befindet.

und dazu folgenden Code geschrieben:
Java:
public class Chip {
    boolean out;
    boolean done;
    PlayerID player;
    Spike CurrentSpike;

    public Chip(PlayerID player) {
        this.player = player;
        this.out = false;
        this.done = false;

    }

    public PlayerID getPlayerID() {
        return this.player;
    }

    public void setDone(boolean done) {
        this.done = true;
    }

    public boolean isDone() {
        return done;
    }

    public void setOut(boolean out) {
        this.out = true;
    }

    public boolean isOut() {
        return out;
    }

    public void setCurrentSpike(Spike spike) {
        this.CurrentSpike = spike;

    }

    public Spike getCurrentSpike() {
        return this.CurrentSpike;

    }

}

und dann folgende fehlermeldung erhalten:

3Test(s) saved.
Compilation successful.
Testsuite: level_1.TestChip
Tests run:5, Failures: 2, Errors: 0, Time elapsed: 0.05 sec

Testcase: testConstructor took 0.005 sec
Testcase: testGetPlayerID took 0.004 sec
Testcase: testSetGetDone took 0.007 sec
FAILED
problems with setDone() and getDone() expected:<false> but was:<true>
junit.framework.AssertionFailedError: problems with setDone() and getDone() expected:<false> but was:<true>
at level_1.TestChip.testSetGetDone(TestChip.java:49)

Testcase: testSetGetOut took 0 sec
FAILED
problems with setOut() and getOut() expected:<false> but was:<true>
junit.framework.AssertionFailedError: problems with setOut() and getOut() expected:<false> but was:<true>
at level_1.TestChip.testSetGetOut(TestChip.java:65)

Testcase: testSetGetCurrSpike took -0.001 sec

woran kanns liegen, dass in den methoden die werte vertauscht werden??

wäre für hilfe dankbar🙂
 
Java:
    public void setDone(boolean done) {
        this.done = true;
    }

--->

Java:
    public void setDone(boolean done) {
        this.done = done;
    }

EDIT:
dito setOut
 
hat sich geändert:
das is der code:
Java:
package jpp.simpleGammon.basics;

/**
 * Verwaltet einen Spielzug, welcher aus dem Start-Spielfeld sowie einem
 * Ziel-Spielfeld besteht.
 * 
 * @author alexandervilling
 * 
 */
public class Move {

    private Spike Start;
    private Spike Destination;
    private boolean bool;
    private Move move;

    public Move(Spike start, Spike destination) {
        this.Start = start;
        this.Destination = destination;

    }

    public Spike getStartPos() {
        return Start;
    }

    public Spike getEndPos() {
        return Destination;
    }

    public int getMoveLength() {
        /*int helper;
        helper = Math
                .abs(Destination.getSpikeNumber() - Start.getSpikeNumber());*/
        move = new Move(Start, Destination);
        int helper = Math.abs(move.getEndPos().getSpikeNumber() - move.getStartPos().getSpikeNumber());
        
        return helper;

    }

    public void canBeat(boolean bool) {
        if (Destination.hasZeroChips())
            bool = false;
        else
            bool = true;
    }

    public boolean beats() {
        return bool;
    }

    public void canSetDone(boolean bool) {
        if (move.setsDone()) {
            bool = true;
        } else {
            bool = false;
        }

    }

    public boolean setsDone() {
        return bool = true;
    }

    @Override
    public String toString() {
        String Ausgabe = "";
        Move move = new Move(Start, Destination);
        if (Destination.hasZeroChips())
            Ausgabe = (move.getStartPos() + "-- >" + move.getEndPos());
        else if (move.setsDone())
            Ausgabe = (move.getStartPos() + "-- >" + "Chip reaches goal");
        else if (Destination.hasSingleChip())
            Ausgabe = ("Beating an opposing chip");
        return Ausgabe;

    }

}

bei der getMoveLength methode hab ich das problem, dass ich immer ne falsche länge zurück bekomme! zb 103 statt 3, was kann man da tun?
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben