Hallo,
bin seit längerem mal wieder hier online. Es hat sich designtechnisch ja wirklich sehr viel geändert hier, sieht richtig gut aus. Und das Forum selber ist auch viel besser als ich es aus früheren Zeiten kenne. Großes Lob an die Admins!
So nun aber zu meinem Problem:
Momentan programmiere ich Skat und nun bin ich mit dem Reizen dran. Für die KI des Computers habe ich eine Funktion geschrieben, die bestimmen soll, ob ein Reizen sinnvoll ist oder nicht. Dazu zähle ich zunächst alle Farben (und die Buben) und später soll dies ausgewertet werden.
Bevor ich nun weitermache, habe ich natürlich kontrolliert ob das mit dem Zählen der Farben auch funktioniert und das tut es auch, nur manchmal kommt ein falscher Wert zurück. Hier mein Code:
Reizblatt ist ein Array aus Integern und die Variablen, die die Farben zählen sollen (Buben, Kreuz, Pik, Herz und Karo) sind auch vom Typ Integer.
Im Code stelle ich die Karten mit Zahlen da:
Buben: 0-3
Kreuz: 4-10
Pik: 11-17
Herz: 18-24
Karo: 25-31
Wie gesagt, das Zählen funktioniert in den meisten Fällen, nur manchmal kommt trotzdem ein falscher Wert am Ende heraus.
Ich hoffe ihr könnt mir bei meinem Problem helfen.
Gruß
kai996
bin seit längerem mal wieder hier online. Es hat sich designtechnisch ja wirklich sehr viel geändert hier, sieht richtig gut aus. Und das Forum selber ist auch viel besser als ich es aus früheren Zeiten kenne. Großes Lob an die Admins!
So nun aber zu meinem Problem:
Momentan programmiere ich Skat und nun bin ich mit dem Reizen dran. Für die KI des Computers habe ich eine Funktion geschrieben, die bestimmen soll, ob ein Reizen sinnvoll ist oder nicht. Dazu zähle ich zunächst alle Farben (und die Buben) und später soll dies ausgewertet werden.
Bevor ich nun weitermache, habe ich natürlich kontrolliert ob das mit dem Zählen der Farben auch funktioniert und das tut es auch, nur manchmal kommt ein falscher Wert zurück. Hier mein Code:
C#-Quellcode
- for (int i = 0; i < Reizblatt.Count(); i++)
- {
- if (Reizblatt[i] == 0 || Reizblatt[i] == 1 || Reizblatt[i] == 2 || Reizblatt[i] == 3)
- Buben++;
- else if (Reizblatt[i] == 4 || Reizblatt[i] == 5 || Reizblatt[i] == 6 || Reizblatt[i] == 7 || Reizblatt[i] == 8 || Reizblatt[i] == 9 || Reizblatt[i] == 10)
- Kreuz++;
- else if (Reizblatt[i] == 11 || Reizblatt[i] == 12 || Reizblatt[i] == 13 || Reizblatt[i] == 14 || Reizblatt[i] == 15 && Reizblatt[i] == 16 || Reizblatt[i] == 17)
- Pik++;
- else if (Reizblatt[i] == 18 || Reizblatt[i] == 19 || Reizblatt[i] == 20 || Reizblatt[i] == 21 || Reizblatt[i] == 22 && Reizblatt[i] == 23 || Reizblatt[i] == 24)
- Herz++;
- else if (Reizblatt[i] == 25 || Reizblatt[i] == 26 || Reizblatt[i] == 27 || Reizblatt[i] == 28 || Reizblatt[i] == 29 && Reizblatt[i] == 30 || Reizblatt[i] == 31)
- Karo++;
- }
Reizblatt ist ein Array aus Integern und die Variablen, die die Farben zählen sollen (Buben, Kreuz, Pik, Herz und Karo) sind auch vom Typ Integer.
Im Code stelle ich die Karten mit Zahlen da:
Buben: 0-3
Kreuz: 4-10
Pik: 11-17
Herz: 18-24
Karo: 25-31
Wie gesagt, das Zählen funktioniert in den meisten Fällen, nur manchmal kommt trotzdem ein falscher Wert am Ende heraus.
Ich hoffe ihr könnt mir bei meinem Problem helfen.
Gruß
kai996