Hi,
ich bin dabei Mastermind zu programmieren und bis auf eine Sache läuft es. Das wichtigste, die Treffer abfrage läuft noch nicht wie gewünscht und Abgabetermin ist auch noch morgen :### .
Einen absoluten Treffer bekomme ich ohne Probleme, doch wenn das siegMuster z.B. "gelb" "gelb" "gruen" "gruen" ist un der Spieler "gelb" und 3-mal "rot" eingibt, bekomme ich einen absoluten (schwarzes pinnchen) Treffer (ist ja auch klar, weil an der Stelle [0] beides "gelb" ist), aber auserdem bekomme ich einen halben (weisses pinnchen) Treffer.
Hier die Methode dazu:
! siegMuster ist das random Muster, welches man erraten muss, !
! spielFeldString ist das vom Spieler eingegebene Muster. !
Bedanke mich schon mal,
Lenny!
EDIT:
Habe es hinbekommen :applaus:
ich bin dabei Mastermind zu programmieren und bis auf eine Sache läuft es. Das wichtigste, die Treffer abfrage läuft noch nicht wie gewünscht und Abgabetermin ist auch noch morgen :### .
Einen absoluten Treffer bekomme ich ohne Probleme, doch wenn das siegMuster z.B. "gelb" "gelb" "gruen" "gruen" ist un der Spieler "gelb" und 3-mal "rot" eingibt, bekomme ich einen absoluten (schwarzes pinnchen) Treffer (ist ja auch klar, weil an der Stelle [0] beides "gelb" ist), aber auserdem bekomme ich einen halben (weisses pinnchen) Treffer.
Hier die Methode dazu:
! siegMuster ist das random Muster, welches man erraten muss, !
! spielFeldString ist das vom Spieler eingegebene Muster. !
Code:
private void treffer() {
genaueTreffer = 0;
halbeTreffer = 0;
for (int i = 0; i < siegMuster.length; i++) {
if (siegMuster[i].equals(spielfeldString[i][spielRunden])) {
genaueTreffer++;
} else
for (int j = 0; j < siegMuster.length; j++) {
if (j == i) {
continue;
}
if (siegMuster[i].equals(spielfeldString[j][spielRunden])) {
halbeTreffer++;
}
}
}
if (genaueTreffer == 4) {
getSiegDialog();
}
}
Bedanke mich schon mal,
Lenny!
EDIT:
Habe es hinbekommen :applaus:
Code:
private void treffer() {
genaueTreffer = 0;
halbeTreffer = 0;
for (int i = 0; i < siegMuster.length; i++) {
if (siegMuster[i].equals(spielfeldString[i][spielRunden])) {
genaueTreffer++;
siegMuster[i]=siegMuster[i]+"a";
spielfeldString[i][spielRunden]=spielfeldString[i][spielRunden]+"z";
} else
for (int j = 0; j < siegMuster.length; j++) {
if (j == i) {
continue;
}
if (siegMuster[i].equals(spielfeldString[j][spielRunden])) {
halbeTreffer++;
}
}
if (siegMuster[i].charAt(siegMuster[i].length()-1) == 'a'){
siegMuster[i] = siegMuster[i].substring(0, siegMuster[i].length()-1);
}
}
if (genaueTreffer == 4) {
getSiegDialog();
}
}