D
Dracor1588
Gast
Guten Abend,
ich sitze gerade an einem Uni Abschlussprojekt namens Knobel (nein, NICHT Kniffel, weil das hat ja copyright, so unser Prof *gg*).
Folgendes Problem. Die ganze Swing GUI läuft gut, als Punktezettel verwende ich eine JTable. ich kann würfeln, bla bla, summa summarum klappt auch das eintragen der Werte in die JTable gut, aber ich habe Probleme zwischen den 4 möglichen Spielern zu wechseln. Meine Vier Spieler sind bool'sche Werte
über
lass ich mir, sobald meine 3 Würfe um sind, durch einen Klick auf die Tabelle angeben, wo die Punkte eingetragen werden sollen.
Die Berechnung der einzelnen Einträge mach ich über eine switch/case Anweisung
ganz am Ende aller Case Anweisung schalte ich den aktuellen Spieler auf false und den nächsten auf true:
Problem ist: Das überswitchen in den nächsten Spieler klappt nicht. Jedesmal wenn eigentlich spieler 1 = false sein sollte und ich was bei spieler 2 eintragen will springt er mir aus der gesamten schleife raus und trägt mir nur den standard return wert -1 ein....
Ein bisschen schlauer bin ich schon:
Wenn ich den Wechsel gleich zu Beginn der if Schleife mache, also:
klappen die ersten 3 spielerwechsel gut (mal davon abgesehen, dass meine checksum Funktion dann umgeschrieben werden müsste, aber das is wurst)..nur der Spielerwechsel von 3 auf 4 klappt wieder nicht. Ich habs 3 mal überprüft, der code is genau der selbe ^^ auch keinen zahlendreher oder so nen blödsinn drin.
Ich weiß nicht mehr weiter...was mach ich falsch? Um Fragen vorwegzunehmen...die Funktionen reset() und checksum() nehmen keinen einfluss auf die bool'schen Spieler und auch sonst ändere ich die werte NUR in den if Schleifen.
ich dachte erst, weil ich standardmäßig spieler1 als true initialisiert habe, dass es daran liegen könnte, aber ich hab mir jetzt nen spiel starten button geschrieben, wodurch spieler1 auch als default false initialisiert wird, und dann erst mit klick auf true gesetzt wird -> keine Wirkung.
ich muss da irgendwo nen Denkfehler drin haben, aber ich seh ihn einfach nicht, deshalb hoffe ich dass ein paar Augenpaare mehr in erkennbar machen ^^
Liebe Grüße
Dracor
ich sitze gerade an einem Uni Abschlussprojekt namens Knobel (nein, NICHT Kniffel, weil das hat ja copyright, so unser Prof *gg*).
Folgendes Problem. Die ganze Swing GUI läuft gut, als Punktezettel verwende ich eine JTable. ich kann würfeln, bla bla, summa summarum klappt auch das eintragen der Werte in die JTable gut, aber ich habe Probleme zwischen den 4 möglichen Spielern zu wechseln. Meine Vier Spieler sind bool'sche Werte
Java:
public class KnobelModel {
static int wurfzaehler = 0;
static boolean spieler1;
static boolean spieler2;
static boolean spieler3;
static boolean spieler4;
über
Java:
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int f = jTable1.getSelectedColumn();
int e = jTable1.getSelectedRow();
jTable1.setValueAt(KnobelModel.tabelleneintrag(e, f), e, f);
lass ich mir, sobald meine 3 Würfe um sind, durch einen Klick auf die Tabelle angeben, wo die Punkte eingetragen werden sollen.
Die Berechnung der einzelnen Einträge mach ich über eine switch/case Anweisung
Java:
public static int tabelleneintrag(int reihe, int spalte){
//(...)
if((spieler1 == true)&&(spalte == 1)){
switch(reihe){
case (1):
for(int i=0;i<wurfaugen2.length; i++){
if(KnobelModel.wurfaugen2[i] == 1){
ergebnis = ergebnis + KnobelModel.wurfaugen2[i];
}
}
ergebnisse[0] = ergebnis;
KnobelView21.jTable1.setValueAt(ergebnis, 1, 1);
checksum();
reset();
return ergebnis;
//(...)
ganz am Ende aller Case Anweisung schalte ich den aktuellen Spieler auf false und den nächsten auf true:
Java:
//(hier oben der letzte return aus der case schleife)
}
spieler1 =false;
spieler2 = true;
} //(Hier geht die große if schleife if((spieler1==true)&&(spalte ==1)) zuende
Problem ist: Das überswitchen in den nächsten Spieler klappt nicht. Jedesmal wenn eigentlich spieler 1 = false sein sollte und ich was bei spieler 2 eintragen will springt er mir aus der gesamten schleife raus und trägt mir nur den standard return wert -1 ein....
Ein bisschen schlauer bin ich schon:
Wenn ich den Wechsel gleich zu Beginn der if Schleife mache, also:
Java:
if((spieler1 == true)&&(spalte == 1)){
spieler1 =false;
spieler2 = true;
klappen die ersten 3 spielerwechsel gut (mal davon abgesehen, dass meine checksum Funktion dann umgeschrieben werden müsste, aber das is wurst)..nur der Spielerwechsel von 3 auf 4 klappt wieder nicht. Ich habs 3 mal überprüft, der code is genau der selbe ^^ auch keinen zahlendreher oder so nen blödsinn drin.
Ich weiß nicht mehr weiter...was mach ich falsch? Um Fragen vorwegzunehmen...die Funktionen reset() und checksum() nehmen keinen einfluss auf die bool'schen Spieler und auch sonst ändere ich die werte NUR in den if Schleifen.
ich dachte erst, weil ich standardmäßig spieler1 als true initialisiert habe, dass es daran liegen könnte, aber ich hab mir jetzt nen spiel starten button geschrieben, wodurch spieler1 auch als default false initialisiert wird, und dann erst mit klick auf true gesetzt wird -> keine Wirkung.
ich muss da irgendwo nen Denkfehler drin haben, aber ich seh ihn einfach nicht, deshalb hoffe ich dass ein paar Augenpaare mehr in erkennbar machen ^^
Liebe Grüße
Dracor