Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import basicpackage.BasicBoard;
- import basicpackage.Game;
- public class TicTacToe extends BasicBoard implements Game {
- String s = "";
- private String player1 = "Spieler 1 ";
- private String player2 = "Spieler 2 ";
- public boolean won = false;
- String id = "";
- private String[] line = { "A", "B", "C" };
- private String[] row = { "D", "E", "F" };
- int spalte;
- int zeile;
- int[][] content = new int[3][3];
- private Scanner scan = new Scanner(System.in);
- boolean state = false;
- public void initBoard() {
- this.board = new int[3][3];
- this.boardname = "Tic Tac Toe";
- setBoardname("Tic Tac Toe");
- for (String x : line) {
- System.out.print(" " + x + " ");
- }
- System.out.println();
- for (int i = 0; i < board.length; i++) {
- System.out.print(row[i]);
- for (int j = 0; j < board.length; j++) {
- int cell = board[i][j];
- cell = 0;
- System.out.print(" " + cell + " ");
- }
- System.out.println("");
- }
- System.out.println();
- for (int i = 0; i < content.length; i++) {
- for (int j = 0; j < content.length; j++) {
- content[i][j] = 0;
- }
- }
- }
- public void drawBoard(int player) {
- // zeichne board mit neuen werten
- for (String x : line) {
- System.out.print(" " + x + " ");
- }
- System.out.println();
- for (int i = 0; i < board.length; i++) {
- System.out.print(row[i]);
- for (int j = 0; j < board.length; j++) {
- int cell = board[i][j];
- // //überschreiben
- if (i == zeile && j == spalte) {
- cell = board[spalte][zeile];
- content[i][j] = board[spalte][zeile];
- } else {
- cell = content[i][j];
- }
- System.out.print(" " + cell + " ");
- }
- System.out.println("");
- }
- System.out.println();
- }
- public void play(int player) {
- move(player);
- winGame();
- noWin();
- System.out.println(gameStatus());
- }
- public void move(int player) {
- spalte = -1;
- zeile = -1;
- if (player == 1) {
- System.out.println("Spieler 1 ist dran. Bitte gib eine gültige Position ein (SpalteZeile). \n");
- } else {
- System.out.println("Spieler 2 ist dran. Bitte gib eine gültige Position ein (SpalteZeile). \n");
- }
- s = scan.next();
- String rows = s.substring(0, 1);
- String lines = s.substring(1, 2);
- // eingabe auswerten
- for (int i = 0; i <= line.length - 1; i++) {
- if (line[i].equals(rows)) {
- spalte = i;
- break;
- }
- }
- if (spalte == -1) {
- System.out.println(
- "Das war keine gültige Eingabe. Bitte bleib im Spielfeld und achte auf die Eingabe. \nIn Großbuchstaben erst die Spalte, dann die Zeile");
- move(player);
- }
- for (int i = 0; i <= row.length - 1; i++) {
- if (row[i].equals(lines)) {
- zeile = i;
- break;
- }
- }
- if (zeile == -1) {
- System.out.println("Das war keine gültige Eingabe. Bitte bleib im Spielfeld und achte auf die Eingabe. \nIn Großbuchstaben erst die Spalte, dann die Zeile");
- move(player);
- }
- // prüfe feld leer
- if (board[spalte][zeile] == 0) {
- board[spalte][zeile] = player;
- drawBoard(player);
- } else {
- System.out.println("Dieses Feld ist bereits belegt. Bitte suche dir ein neues Feld aus.");
- move(player);
- }
- }
- public void winGame() {
- int i = 0;
- int j = 0;
- // columns
- while (j < board.length) {
- for (i = 0; i < board.length - 1; i++) {
- if (board[i][j] == board[i + 1][j] && board[i][j] != 0) {
- state = true;
- } else {
- break;
- }
- }
- if (state == false) {
- j++;
- } else {
- whoWon(i, j);
- break;
- }
- }
- // rows
- while (i < board.length) {
- for (j = 0; j < board.length - 1; j++) {
- if (board[i][j] == board[i][j + 1] && board[i][j] != 0) {
- state = true;
- } else {
- break;
- }
- }
- if (state == false) {
- i++;
- } else {
- whoWon(i, j);
- break;
- }
- }
- // dia
- while (i < board.length && j < board.length) {
- if (board[i][j] == board[i + 1][j + 1] && board[i][j] != 0) {
- state = true;
- } else {
- break;
- }
- i++;
- j++;
- break;
- }
- // dia return
- int ii = board.length - 1;
- int jj = board.length - 1;
- while (ii > 0 && jj > 0) {
- if (board[ii][jj] == board[ii - 1][jj - 1] && board[ii][jj] != 0) {
- state = true;
- } else {
- break;
- }
- ii--;
- jj--;
- break;
- }
- }
- public void noWin() {
- // zähle belegte plätze
- int count = 0;
- for (int k = 0; k <= board.length - 1; k++) {
- for (int l = 0; l <= board.length - 1; l++) {
- if (board[k][l] != 0) {
- count++;
- }
- }
- }
- // alle Felder belegt aber kein Gewinner
- if (count == 9) {
- System.out.println("Es steht unentschieden");
- won = true;
- }
- }
- private void whoWon(int i, int j) {
- if (board[i][j] == 1) {
- System.out.println(player1 + " hat gewonnen! Glückwunsch!");
- state = true;
- } else if (board[i][j] == 2) {
- System.out.println(player2 + " hat gewonnen! Glückwunsch!");
- state = true;
- }
- won = true;
- }
- @Override
- public String gameStatus() {
- String status = "Das Spiel läuft...";
- String stat = "Das Spiel ist beendet.";
- if (won == true) {
- return stat;
- }
- return status;
- }
- public void finish() {
- scan.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement