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.
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
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.
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. !
PHP:
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
PHP:
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();
}
}
Zuletzt bearbeitet: