Thema: Delphi KI für Spiel

Einzelnen Beitrag anzeigen

Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#4
  Alt 25. Jan 2003, 14:17
K, danke für die Infos Chrys. Werde mich mal umsehen. Die englische Sprache sollte kein Problem darstellen 8)

Hier mal einen Auszug aus der Logik von dem Spiel. Vielleicht habt ihr ja auf Anhieb eine Idee, wie man das "besser" machen könnte:

Hier also die Tabelle mit den 3^3 Möglichkeiten. 14 Möglichkeiten fallen weg, weil sie doppelt vorkommen. Diese 13 bleiben übrig:

Code:
1.   000   a=b; a=c; b=c   1
2.   001   a=b; a<c; b<c   1
3.   010   a<b; a=c; b>c   1
4.   011   a<b; a<c; b=c   1
5.   012   a<b; a<c; b<c   1
6.   021   a<b; a<c; b>c   1
7.   100   a>b; a>c; b=c   2
8.   101   a>b; a=c; b<c   2
9.   102   a>b; a<c: b<c   2
10.   201   a>b; a>c; b<c   2
11.   110   a=b; a>c; b>c   3
12.   120   a<b; a>c; b>c   3
13.   210   a>b; a>c; b>c   3
Die 3 Zahlenkombinationen sind die Möglichkeiten. Danach kommt die Abfrage, die ich brauche, um sie in Delphi reinzubekommen und die letzte Zahl sagt mir, die wievielte Stelle ich auslesen muss.
So habe ich es in Delphi umgesetzt:

Code:
if ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) = StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) = StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) = StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) or

   ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) = StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) or

   ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) = StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) > StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) or

   ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) = StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) or

   ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) or

   ((StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[1])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[0]) < StrToInt(KartenZurAuswahlSpieler2.Strings[2])) and
    (StrToInt(KartenZurAuswahlSpieler2.Strings[1]) > StrToInt(KartenZurAuswahlSpieler2.Strings[2]))) then
Vielleicht fällt euch ja was auf. Wenn ihr sonst Vorschläge oder etwas auszusetzen habt , schreibt einfach...

Gruß Yheeky
  Mit Zitat antworten Zitat