V1 no objects no bot
commit
c948549907
|
|
@ -0,0 +1,5 @@
|
||||||
|
public class Bot {
|
||||||
|
boolean archive;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Game {
|
||||||
|
ArrayList<Grid> game = new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class GameLogic {
|
||||||
|
|
||||||
|
public static boolean checkWin(String[] top, String[] mid, String[] bottom) {
|
||||||
|
boolean run = true;
|
||||||
|
if(!Objects.equals(top[0], " ") &&top[0].equals(top[1])&&top[1].equals(top[2])){
|
||||||
|
run=false;
|
||||||
|
}else if (!Objects.equals(mid[0], " ") &&mid[0].equals(mid[1])&&mid[1].equals(mid[2])){
|
||||||
|
run=false;
|
||||||
|
} else if ((!Objects.equals(bottom[0], " ") &&bottom[0].equals(bottom[1])&&bottom[1].equals(bottom[2]))) {
|
||||||
|
run=false;
|
||||||
|
}else if(!Objects.equals(top[0], " ")&&top[0].equals(mid[0])&&mid[0].equals(bottom[0])){
|
||||||
|
run=false;
|
||||||
|
}else if(!Objects.equals(top[1], " ")&&top[1].equals(mid[1])&&mid[1].equals(bottom[1])){
|
||||||
|
run=false;
|
||||||
|
}else if(!Objects.equals(top[2], " ")&&top[2].equals(mid[2])&&mid[2].equals(bottom[2])){
|
||||||
|
run=false;
|
||||||
|
}else if(!Objects.equals(mid[1], " ")&&top[0].equals(mid[1])&&mid[1].equals(bottom[2])){
|
||||||
|
run=false;
|
||||||
|
}else if(!Objects.equals(mid[1], " ")&&top[2].equals(mid[1])&&mid[1].equals(bottom[0])){
|
||||||
|
run=false;
|
||||||
|
}
|
||||||
|
return run;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,123 @@
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class GamePlay {
|
||||||
|
|
||||||
|
public static void run() {
|
||||||
|
boolean running = true;
|
||||||
|
String[] top = {" ", " ", " "};
|
||||||
|
String[] mid = {" ", " ", " "};
|
||||||
|
String[] bottom = {" ", " ", " "};
|
||||||
|
Scanner input = new Scanner(System.in);
|
||||||
|
int i = 2;
|
||||||
|
String o = " O ";
|
||||||
|
String x = " X ";
|
||||||
|
while (running) {
|
||||||
|
String icon = o;
|
||||||
|
if (i % 2 == 1) {
|
||||||
|
icon = o;
|
||||||
|
} else {
|
||||||
|
icon = x;
|
||||||
|
}
|
||||||
|
printGrid(top, mid, bottom);
|
||||||
|
System.out.println("player " + (i % 2 + 1) + " turn");
|
||||||
|
String[][] newGrid = takeInput(icon, top, mid, bottom);
|
||||||
|
top = newGrid[0];
|
||||||
|
mid = newGrid[1];
|
||||||
|
bottom = newGrid[2];
|
||||||
|
if (GameLogic.checkWin(top, mid, bottom)==false){
|
||||||
|
printGrid(top, mid, bottom);
|
||||||
|
System.out.println("player " + (i % 2 + 1) + " wins");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if(i>9){
|
||||||
|
printGrid(top, mid, bottom);
|
||||||
|
System.out.println("unentschieden");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String[][] takeInput(String icon, String[] top, String[] mid, String[] bottom) {
|
||||||
|
Scanner input = new Scanner(System.in);
|
||||||
|
String[] zug = input.nextLine().split("");
|
||||||
|
try {
|
||||||
|
if (Integer.parseInt(zug[1]) > 3) {
|
||||||
|
System.out.println("out of field");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
System.out.println("invalid input");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (zug[0].toUpperCase()) {
|
||||||
|
case "A":
|
||||||
|
if (top[Integer.parseInt(zug[1]) - 1].equals(" ") == false) {
|
||||||
|
System.out.println("field already occupied");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
top[Integer.parseInt(zug[1]) - 1] = icon;
|
||||||
|
break;
|
||||||
|
case "B":
|
||||||
|
if (mid[Integer.parseInt(zug[1]) - 1].equals(" ") == false) {
|
||||||
|
System.out.println("fiel already occupied");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
mid[Integer.parseInt(zug[1]) - 1] = icon;
|
||||||
|
break;
|
||||||
|
case "C":
|
||||||
|
if (bottom[Integer.parseInt(zug[1]) - 1].equals(" ") == false) {
|
||||||
|
System.out.println("fiel already occupied");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
bottom[Integer.parseInt(zug[1]) - 1] = icon;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
System.out.println("out of field");
|
||||||
|
takeInput(icon, top, mid, bottom);
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
return grid;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String[][] grid = {top, mid, bottom};
|
||||||
|
|
||||||
|
return grid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void printGrid(String[] top, String[] mid, String[] bottom) {
|
||||||
|
|
||||||
|
for (String s : top) {
|
||||||
|
System.out.print("|" + s);
|
||||||
|
}
|
||||||
|
System.out.println("|");
|
||||||
|
|
||||||
|
System.out.println("-------------");
|
||||||
|
for (String s : mid) {
|
||||||
|
System.out.print("|" + s);
|
||||||
|
}
|
||||||
|
System.out.println("|");
|
||||||
|
|
||||||
|
System.out.println("-------------");
|
||||||
|
for (String s : bottom) {
|
||||||
|
System.out.print("|" + s);
|
||||||
|
}
|
||||||
|
System.out.println("|");
|
||||||
|
|
||||||
|
System.out.println("-------------");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
public class Grid {
|
||||||
|
String[] top = {" ", " ", " "};
|
||||||
|
String[] mid = {" ", " ", " "};
|
||||||
|
String[] bottom = {" ", " ", " "};
|
||||||
|
|
||||||
|
public String[] getTop() {
|
||||||
|
return top;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTop(String[] top) {
|
||||||
|
this.top = top;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getBottom() {
|
||||||
|
return bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBottom(String[] bottom) {
|
||||||
|
this.bottom = bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String[] getMid() {
|
||||||
|
return mid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMid(String[] mid) {
|
||||||
|
this.mid = mid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
GamePlay.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue