/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Tic;
import java.awt.Point;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author gulde
*/
public class IO {
private boolean run = true;
data d = new data();
KI ki = new KI();
public void print() {
for (int i = 0; i < 4; i++) {
System.out.println("");
}
for (int y = 0; y < d.feldLength().y; y++) {
for (int x = 0; x < d.feldLength().x; x++) {
System.out.print(d.getElement(x, y) + " ");
if (x == 0 || x == 1) {
System.out.print("|");
}
}
System.out.println("");
if (y == 0 || y == 1) {
System.out.print("--------");
System.out.println("");
}
}
for (int i = 0; i < 3; i++) {
System.out.println("");
}
try {
Thread.sleep(300); //sleep for 1000 ms
} catch (InterruptedException ex) {
Logger.getLogger(IO.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void gameLoop() {
while (run) {
/*
1. einlesen
2.KI zug
3.Gewinnabfrage
4. print
*/
print();
Point p1 = readPos();
while (true) {
if (p1 != null) {
break;
} else {
p1 = readPos();
}
}
d.setElement(p1.x - 1, p1.y - 1, 1);
if (gewinnAbfrage(1)) {
System.out.println("Du hast gewonnen! Herzlichen Glückwunsch");
break;
}
Point p2 = ki.getPosRandom();
d.setElement(p2.x, p2.y, 2);
if (gewinnAbfrage(2)) {
System.out.println("You lost! FAIL");
break;
}
}
}
public Point readPos() {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Bitte Koordinaten eingeben (x,y)");
String input = in.readLine();
String[] lol = new String[2];
lol = input.split(",");
Point p = new Point(Integer.parseInt(lol[0]), Integer.parseInt(lol[1]));
if ((p.x == 1 || p.x == 2 || p.x == 3) && (p.y == 1 || p.y == 2 || p.y == 3)) {
return p;
} else {
System.err.println("Deine Werte sind inkompatibel, mois");
}
} catch (IOException ex) {
Logger.getLogger(IO.class.getName()).log(Level.SEVERE, null, ex);
System.err.println(
"Konnte Position nicht einlesen!");
}
return null;
}
public boolean gewinnAbfrage(int Element) {
if (remis() || winCol(Element) || winRow(Element) || winDiag_lr(Element) || winDiag_rl(Element)) {
run = false;
return true;
}
return false;
}
public boolean remis() {
int counter = 0;
for (int y = 0; y < d.feldLength().y; y++) {
for (int x = 0; x < d.feldLength().x; x++) {
if (d.getElement(x, y) != 0) {
counter++;
}
}
}
if (counter == 9) {
System.out.println("unentschieden!");
run = false;
return true;
}
return false;
}
private boolean winCol(int Element) {
return false;
}
private boolean winRow(int Element) {
return false;
}
private boolean winDiag_lr(int Element) {
return false;
}
private boolean winDiag_rl(int Element) {
return false;
}
}