bug in MauMau - setAktiv()

f00bar
Neuling
Neuling
Beiträge: 6
Registriert: 28. Dez 2011 00:08

bug in MauMau - setAktiv()

Beitrag von f00bar »

hallo Herr Heinig!

ich denke fast, ich habe noch einen fehler gefunden.
nachdem ich massive probleme mit den 3 regeln für die Mathode kompatibel() hatte, habe ich mir die regeln mal genauer angesehen.

Soweit ich das jetzt verstanden habe:

regel 1: klar
regel 2: auch

interpretation A:
regel 3: Wenn der stapel NICHT aktiv ist, ....

führt allerdings dazu, das mann gleich zu spielstart nichts legen kann, weil in
mauMau:52 "ablage.ablegen(stapel.ziehen());"

der Stapel aktiviert wird, aber nicht mehr deaktiviert. jetzt muss man glück haben, und da liegt ein Bube oder eine 7...

Interpretation B:
regel 3: unabhängig von allem, ...
führt allerdings dazu, dass man auf eine 7 alle karten nach regel 3 legen kann, und mann kann auf Buben weitere Buben legen.

Jetzt habe ich mir die klasse mal genauer angesehen:
Ich denke, ein Aktiver stapel zeigt an, dass entweder noch keine Wunschfarbe gelegt wurde, ODER dass eine 7 gelegt wurde, für die noch kein Spieler karten kassiert hat.

Der Stapel wird aber nur deaktiviert, wenn der spieler KEINE karte gelegt hat, und die oberste kein Bube ist. sonst nicht. bleibt immer aktiv. was bedeutet, dass nach interpretation A. niemals karten gelegt werden könnten.

ich habe mich mal getraut, und die klasse MauMau leicht modifiziert:

Code: Alles auswählen

ablage.setAktiv(false);
direkt nach der initialisierung der ablage. es wird ja eine karte abgelegt, die den Stapel aktiviert. (ablegen()...)

und ein

Code: Alles auswählen

if (ablage.oberste().wert() != BUBE && ablage.oberste().wert() != SIEBEN) ablage.setAktiv(false);
falls eine karte ebgelegt wurde.


Dann kann man interpretation A verwenden, und alles läuft wunderbar. Zumindest bei mir. Denn eine Interpretation C hab ich nicht gefunden...

Benutzeravatar
Owyn
BSc Spammer
BSc Spammer
Beiträge: 1012
Registriert: 5. Sep 2005 21:53
Wohnort: Rheingau

Re: bug in MauMau - setAktiv()

Beitrag von Owyn »

Hallo Herr Heinig,

oh, falsch. Na ja... :wink:

Die Regel 3 gilt "ansonsten", also wenn weder Regel 1 noch Regel 2 gelten. Ich bin mir nicht ganz sicher, ob Sie das mit Ihrer Interpretation A meinen. Vermutlich schon.

Tatsächlich fehlt in der Klasse MauMau direkt nach dem Ablegen der ersten Karte vom Aufnahme- auf den Ablagestapel die Deaktivierung des Ablagestapels, wie von Ihnen vorgeschlagen.
Vielen Dank für den Hinweis!

Ihre zweite Codezeile für die Klasse MauMau ist aber unnötig, denn bei allen Karten außer Bube und Sieben ist der "aktiv"-Status sowieso egal.

Eine verdeutlichte Version der Aufgabenstellung und eine korrigierte Version der Vorgabe sind online. Dadurch sollten auch keine leeren "Meldung"-Fenster mehr erscheinen. Geändert wurden nur die Klassen MauMau und Benutzeroberflaeche.

Gruß,
Christian Heinig
All those who believe in psycho-kinesis, raise my hand.
(Steven Wright)

snejjj
Mausschubser
Mausschubser
Beiträge: 52
Registriert: 26. Okt 2011 11:21

Re: bug in MauMau - setAktiv()

Beitrag von snejjj »

Nur eine kleine Verfahrensfrage:

Muss man sich die neue Version der klassen herunterladen, oder kann man das ganze auch mit der alten Version abgeben?

edit: hat sich erledigt, steht ja alles schon hier im Forum. Wer lesen kann...

Antworten

Zurück zu „Archiv“