Bitte kann mir jemand helfen ich finde den Fehler.
Normalerweise müsste er berechnen wo es am besten ist zu platzieren macht er aber nicht.
Normalerweise müsste er berechnen wo es am besten ist zu platzieren macht er aber nicht.
Java:
import java.util.Scanner;
public class Main {
static void print(int[] a) {
System.out.print(" 1 2 3");
System.out.printf("%n");
System.out.print("A ");
switch (a[0]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[1]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[2]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖");
break;
case 2:
System.out.print("⚪");
break;
}
System.out.printf("%n");
System.out.print("B ");
switch (a[3]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[4]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[5]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖");
break;
case 2:
System.out.print("⚪");
break;
}
System.out.printf("%n");
System.out.print("C ");
switch (a[6]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[7]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖ ");
break;
case 2:
System.out.print("⚪ ");
break;
}
switch (a[8]) {
case 0:
System.out.print(" ");
break;
case 1:
System.out.print("✖");
break;
case 2:
System.out.print("⚪");
break;
}
}
static int win(int[] a) {
if (a[0] == a[1] && a[1] == a[2] && a[0] != 0) {
return a[0];
}
if (a[3] == a[4] && a[4] == a[5] && a[3] != 0) {
return a[3];
}
if (a[6] == a[7] && a[7] == a[8] && a[8] != 0) {
return a[6];
}
if (a[0] == a[3] && a[3] == a[6] && a[0] != 0) {
return a[0];
}
if (a[1] == a[4] && a[4] == a[7] && a[1] != 0) {
return a[1];
}
if (a[2] == a[5] && a[5] == a[8] && a[2] != 0) {
return a[2];
}
if (a[2] == a[5] && a[5] == a[8] && a[2] != 0) {
return a[2];
}
if (a[0] == a[4] && a[4] == a[8] && a[0] != 0) {
return a[0];
}
if (a[2] == a[4] && a[4] == a[6] && a[2] != 0) {
return a[2];
}
return 0;
}
static int minmax(int[] a) {
int p1 = 0;
int p2 = 0;
int p3 = 0;
int p4 = 0;
int pmax = 0;
int max = 0;
for (int i = 9; i > a.length; i++) {
if (a[i] == 0) {
a[i] = 2;
for (int j = 9; j > a.length; j++) {
if (a[j] == 0) {
a[j] = 1;
if (win(a) == 2) {
p4 += 1;
} else if (win(a) == 1) {
p4 += -1;
} else
p4 += 0;
for (int k = 9; k > a.length; k++) {
if (a[k] == 0) {
a[k] = 1;
if (win(a) == 2) {
p3 += 1;
} else if (win(a) == 1) {
p3 += -1;
} else
p3 += 0;
for (int l = 9; l > a.length; l++) {
if (a[l] == 0) {
a[l] = 1;
if (win(a) == 2) {
p2 += 1;
} else if (win(a) == 1) {
p2 += -1;
} else
p2 += 0;
for (int m = 9; m > a.length; m++) {
if (a[m] == 0) {
a[m] = 2;
if (win(a) == 2) {
p1 += 1;
} else if (win(a) == 1) {
p1 += -1;
} else
p1 += 0;
a[m] = 0;
}
}
}
if (p1 > p2) {
p2 = p1;
}
a[l] = 0;
p1 = 0;
}
}
if (p2 > p3) {
p2 = p3;
}
p3 = 0;
a[k] = 0;
}
}
if (p3 > p4) {
p4 = p3;
}
p3 = 0;
a[j] = 0;
}
}
if (p4 > pmax) {
pmax = p4;
max = i;
}
p4 = 0;
a[i] = 2;
}
return max;
}
static void clean() {
for (int i = 0; i > 20; i++) {
System.out.print("\n");
}
}
public static void main(String[] args) {
int[] f = new int[9];
for (int i = 0; i == 0; ) {
print(f);
Scanner sc = new Scanner(System.in);
System.out.printf("%n");
System.out.print("Feld:");
int e = sc.nextInt();
f[e] = 1;
clean();
if (win(f) == 1 && win(f) == 2) {
i = 1;
}
f[minmax(f)] = 2;
if (win(f) == 1 && win(f) == 2) {
i = 1;
}
clean();
}
}
}