Guten Abend Community,
Ich versuche zurzeit eine mehr oder weniger gute KI für mein 4Gewinnt zu basteln.
Funktioniert soweit alles ganz gut, aber ich hab ein sehr komisches Problem:
In der Konstruktion sind die wichtigeren Befehle weiter oben und die weniger wichtigen weiter unten, also dass der PC gewinnt ist ganz oben und dass er den Sieg des Spielers verhindert weiter unten. Wenn ich das aber ausprobiere und es zu einer Situation kommt, wo ich UND der PC mit dem nächsten Stein/Münze gewinnen würden, dann blockiert der PC meinen Sieg, anstatt zu gewinnen!
Der Teil des Problems:
(.Player ist die Art von Stein/Münze die auf dem Feld ist (ich weiß der Name Player passt nicht wirklich
) 1 = Spieler, 2 = PC, 0 = NIX)
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
if(Field[x][y].Player == 2 && Field[x+1][y].Player == 2 && Field[x+2][y].Player == 2 && Field[x+3][y].Player == 0 &&
Field[x+3][y+1].Player != 0)
{SetPCCoin(x+3); x=8; y=7; Nothing = false;} //Rechts setzen
else if(Field[x][y].Player == 2 && Field[x-1][y].Player == 2 && Field[x-2][y].Player == 2 && Field[x-3][y].Player == 0 &&
Field[x-3][y+1].Player != 0)
{SetPCCoin(x-3); x=8; y=7; Nothing = false;} //Links setzen
else if(Field[x][y].Player == 2 && Field[x][y-1].Player == 2 && Field[x][y-2].Player == 2 && Field[x][y-3].Player == 0)
{SetPCCoin(x); x=8; y=7; Nothing = false;} //Oben setzen
.
.
.
else if(Field[x][y].Player == 1 && Field[x+1][y].Player == 1 && Field[x+2][y].Player == 1 && Field[x+3][y].Player == 0 &&
Field[x+3][y+1].Player != 0)
{SetPCCoin(x+3); x=8; y=7; Nothing = false;} //Rechts blockieren
else if(Field[x][y].Player == 1 && Field[x-1][y].Player == 1 && Field[x-2][y].Player == 1 && Field[x-3][y].Player == 0 &&
Field[x-3][y+1].Player != 0)
{SetPCCoin(x-3); x=8; y=7; Nothing = false;} //Links blockieren
else if(Field[x][y].Player == 1 && Field[x][y-1].Player == 1 && Field[x][y-2].Player == 1 && Field[x][y-3].Player == 0)
{SetPCCoin(x); x=8; y=7; Nothing = false;} //Oben blockieren
.
.
.
|
Fals ihr noch etwas wissen wollt einfach fragen
Danke fürs Lesen, einen schönen Abend noch und vielleicht könnt ihr mir ja weiterhelfen...
MfG Geheim!