Advertisement
Guest User

Untitled

a guest
Dec 6th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.88 KB | None | 0 0
  1. //Final Project Tic Tac Toe
  2. //Created by Anonymous
  3. /*Play Tic Tac Toe. Hit new game to reset the board. Usually played with 2 players.*/
  4.  
  5. import javafx.application.Application;
  6. import javafx.event.EventHandler;
  7. import javafx.event.ActionEvent;
  8. import javafx.scene.shape.Rectangle;
  9. import javafx.scene.Scene;
  10. import javafx.scene.input.MouseButton;
  11. import javafx.scene.layout.Pane;
  12. import javafx.scene.layout.StackPane;
  13. import javafx.scene.paint.Color;
  14. import javafx.scene.control.Button;
  15. import javafx.scene.text.Text;
  16. import javafx.scene.text.Font;
  17. import javafx.stage.Stage;
  18.  
  19.  
  20. public class TicTacToe extends Application implements EventHandler < ActionEvent > {
  21.  Tile t11, t12, t13, t21, t22, t23, t31, t32, t33;
  22.  boolean currTurn;
  23.  boolean gameCont;
  24.  Text winNote;
  25.  Text credits;
  26.  Button reset;
  27.  Button close;
  28.  public static void main(String[] args) {
  29.   launch(args);
  30.  }
  31.  
  32.  public void start(Stage primaryStage) {
  33.   gameCont = true;
  34.   currTurn = false;
  35.  
  36.   credits = new Text("This app was created by Anonymous with love. Enjoy!");
  37.   credits.setLayoutX(310);
  38.   credits.setLayoutY(695);
  39.  
  40.   winNote = new Text("");
  41.   winNote.setLayoutX(110);
  42.   winNote.setLayoutY(637);
  43.  
  44.   reset = new Button("New Game");
  45.   reset.setLayoutX(25);
  46.   reset.setLayoutY(620);
  47.   reset.setOnAction(new EventHandler < ActionEvent > () {
  48.    public void handle(ActionEvent event) {
  49.     winNote.setText("New Game Started");
  50.     gameCont = true;
  51.     currTurn = false;
  52.     t11.text.setText("");
  53.     t12.text.setText("");
  54.     t13.text.setText("");
  55.     t21.text.setText("");
  56.     t22.text.setText("");
  57.     t23.text.setText("");
  58.     t31.text.setText("");
  59.     t32.text.setText("");
  60.     t33.text.setText("");
  61.    }
  62.   });
  63.  
  64.   close = new Button("Close");
  65.   close.setLayoutX(25);
  66.   close.setLayoutY(655);
  67.   close.setOnAction(new EventHandler < ActionEvent > () {
  68.    public void handle(ActionEvent event) {
  69.     primaryStage.close();
  70.    }
  71.   });
  72.  
  73.   t11 = new Tile(Color.LIGHTBLUE);
  74.   t11.setLayoutY(0);
  75.   t11.setLayoutX(0);
  76.   t12 = new Tile(Color.LIGHTYELLOW);
  77.   t12.setLayoutY(0);
  78.   t12.setLayoutX(200);
  79.   t13 = new Tile(Color.LIGHTBLUE);
  80.   t13.setLayoutY(0);
  81.   t13.setLayoutX(400);
  82.   t21 = new Tile(Color.LIGHTYELLOW);
  83.   t21.setLayoutY(200);
  84.   t21.setLayoutX(0);
  85.   t22 = new Tile(Color.LIGHTBLUE);
  86.   t22.setLayoutY(200);
  87.   t22.setLayoutX(200);
  88.   t23 = new Tile(Color.LIGHTYELLOW);
  89.   t23.setLayoutY(200);
  90.   t23.setLayoutX(400);
  91.   t31 = new Tile(Color.LIGHTBLUE);
  92.   t31.setLayoutY(400);
  93.   t31.setLayoutX(0);
  94.   t32 = new Tile(Color.LIGHTYELLOW);
  95.   t32.setLayoutY(400);
  96.   t32.setLayoutX(200);
  97.   t33 = new Tile(Color.LIGHTBLUE);
  98.   t33.setLayoutY(400);
  99.   t33.setLayoutX(400);
  100.  
  101.  
  102.   primaryStage.setTitle("Tic Tac Toe");
  103.   Pane scene = new Pane();
  104.   primaryStage.setScene(new Scene(scene, 600, 700));
  105.   scene.getChildren().addAll(t11, t12, t13, t21, t22, t23, t31, t32, t33, reset, close, winNote, credits);
  106.   primaryStage.show();
  107.  }
  108.  
  109.  private class Tile extends StackPane {
  110.   private Text text = new Text();
  111.   public Tile(Color color) {
  112.    text.setFont(Font.font("Calibri", 80));
  113.    Rectangle border = new Rectangle(200, 200);
  114.    border.setFill(color);
  115.    border.setStroke(Color.BLACK);
  116.    getChildren().addAll(border, text);
  117.    setOnMouseClicked(event -> {
  118.     if (event.getButton() == MouseButton.PRIMARY) {
  119.      if (gameCont == true) {
  120.       if (text.getText().isEmpty()) {
  121.        if (currTurn == false) {
  122.         text.setText("X");
  123.         currTurn = true;
  124.        } else {
  125.         text.setText("O");
  126.         currTurn = false;
  127.        }
  128.        // BELOW ARE CHECKS FOR ROWS
  129.        if (t11.text.getText().equals("X") && t12.text.getText().equals("X") && t13.text.getText().equals("X")) {
  130.         winNote.setText("X Wins!");
  131.        } else if (t11.text.getText().equals("O") && t12.text.getText().equals("O") && t13.text.getText().equals("O")) {
  132.         winNote.setText("O Wins!");
  133.        } else if (t21.text.getText().equals("X") && t22.text.getText().equals("X") && t23.text.getText().equals("X")) {
  134.         winNote.setText("X Wins!");
  135.        } else if (t21.text.getText().equals("O") && t22.text.getText().equals("O") && t23.text.getText().equals("O")) {
  136.         winNote.setText("O Wins!");
  137.        } else if (t31.text.getText().equals("X") && t32.text.getText().equals("X") && t33.text.getText().equals("X")) {
  138.         winNote.setText("X Wins!");
  139.        } else if (t31.text.getText().equals("O") && t32.text.getText().equals("O") && t33.text.getText().equals("O")) {
  140.         winNote.setText("O Wins!");
  141.        }
  142.        // BELOW ARE CHECKS FOR COLUMNS
  143.        else if (t11.text.getText().equals("X") && t21.text.getText().equals("X") && t31.text.getText().equals("X")) {
  144.         winNote.setText("X Wins!");
  145.        } else if (t11.text.getText().equals("O") && t21.text.getText().equals("O") && t31.text.getText().equals("O")) {
  146.         winNote.setText("O Wins!");
  147.        } else if (t12.text.getText().equals("X") && t22.text.getText().equals("X") && t32.text.getText().equals("X")) {
  148.         winNote.setText("X Wins!");
  149.        } else if (t12.text.getText().equals("O") && t22.text.getText().equals("O") && t32.text.getText().equals("O")) {
  150.         winNote.setText("O Wins!");
  151.        } else if (t13.text.getText().equals("X") && t23.text.getText().equals("X") && t33.text.getText().equals("X")) {
  152.         winNote.setText("X Wins!");
  153.        } else if (t13.text.getText().equals("O") && t23.text.getText().equals("O") && t33.text.getText().equals("O")) {
  154.         winNote.setText("O Wins!");
  155.        }
  156.        // BELOW ARE CHECKS FOR DIAGONALS
  157.        else if (t11.text.getText().equals("X") && t22.text.getText().equals("X") && t33.text.getText().equals("X")) {
  158.         winNote.setText("X Wins!");
  159.        } else if (t11.text.getText().equals("O") && t22.text.getText().equals("O") && t33.text.getText().equals("O")) {
  160.         winNote.setText("O Wins!");
  161.        } else if (t13.text.getText().equals("X") && t22.text.getText().equals("X") && t31.text.getText().equals("X")) {
  162.         winNote.setText("X Wins!");
  163.        } else if (t13.text.getText().equals("O") && t22.text.getText().equals("O") && t31.text.getText().equals("O")) {
  164.         winNote.setText("O Wins!");
  165.        }
  166.        // ENDS THE GAME IF SOMEONE WINS
  167.        if (winNote.getText().equals("X Wins!") || winNote.getText().equals("O Wins!"))
  168.         gameCont = false;
  169.        // BELOW IS THE DRAW CHECK, ENDS THE GAME IF PASSED
  170.        else if (!(t11.text.getText().equals("")) && !(t12.text.getText().equals("")) && !(t13.text.getText().equals("")) && !(t21.text.getText().equals("")) && !(t22.text.getText().equals("")) && !(t23.text.getText().equals("")) && !(t31.text.getText().equals("")) && !(t32.text.getText().equals("")) && !(t33.text.getText().equals(""))) {
  171.         winNote.setText("Draw!");
  172.         gameCont = false;
  173.        }
  174.       }
  175.      }
  176.     }
  177.    });
  178.   }
  179.  }
  180.  
  181.  public void handle(ActionEvent event) {
  182.   System.out.println("What happened?");
  183.  }
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement