banner



Design Tic Tac Toe Game In Java

Tic Tac Toe is a fun game to play  .Before discussing tic tac toe java code , we should learn about the rules and regulations first.
This game has many variants  , but the 3x3 variant is most popular .
This game is played between two players . Tic tac toe java  program here  is written for applet  .The game has simple 3 rows and 3 columns , so make it a 3x3 grid.

Rules of the Game

The player whose turn is first has the choice to mark  X or  O   to one of the nine squares  , Here we choose X for first player .
Second player then mark its symbol  O in the remaining 8 squares
The thumb of the rule is to make the three successive square grids of the same sign , it does not matter whether they are horizontal , vertical or diagonal , they just need to be three consecutive squares filled with same symbol X or O.

First player who is able to make three consecutive squares  with same symbol  WINS .

If players press the exit button then the frame closes .

If you are learning java, these are

the striking features of the tic tac toe java code

  :

  • To make the lines thick we have used these two lines in our code

//get a graphics object
g2 = (Graphics2D)g;
/* Then setStroke method adds thickness to the line. Here you can pass the float value to the
method as an argument to control the thickness of the line */
g2.setStroke(new BasicStroke(10.0F));
//It will set the color of the line
g.setColor(new Color(77, 176, 230));

  • When a user press the exit  button the frame closes . It can be achieved by three ways in java

Here f is a frame object .

  1.  To set the visibility of frame to false flag

    f.setVisible(false);

  2. To use the dispose function

           f.dispose();
3. Last one we all know

         System.exit(0);

Pseudo code :

1. Board is drawn first using drawLine and drawOval methods .
2. Player X and Player O click the mouse on the empty grid of the board
3. Now Check at each click on the board
3.1 Is there any three vertical grids with same Mark (i.e X or O)
if true
Player with that mark Wins and display message Player 1/ 2 wins the match
3.2  Is there any three horizontal grids with same Mark (i.e X or O)
if true
Player with that mark Wins and display message Player 1/ 2 wins the match
3.3   All grids filled
if true
Display result is stalemate
4.   Repeat step 2
5.   If Clear then the board is again drawn and ready to play again .
6.   If exit then the frame or window exits from the screen .

This is the second post for the Tic tac toe game . You can find first version here

Simple Tic tac toe game in java

In this post we have made numerous changes .

In this we added two functionality clear and exit button to the window . If the players press the clear button then the frame is redrawn to play the game again .

You can find the console based tic tac toe game code here

Console based Tic tac toe java program

CLICK THIS LINK TO DOWNLOAD   TIC TAC TOE JAVA CODE


tic tac toe game frame java code output image

tic tac toe java code display message output image

Tic tac toe java code   :

              import              java.applet.Applet              ;              import              java.awt.BasicStroke              ;              import              java.awt.Color              ;              import              java.awt.Container              ;              import              java.awt.Graphics              ;              import              java.awt.Graphics2D              ;              import              java.awt.event.ActionEvent              ;              import              java.awt.event.ActionListener              ;              import              java.awt.event.KeyEvent              ;              import              java.awt.event.MouseEvent              ;              import              java.awt.event.MouseListener              ;              import              java.awt.event.WindowEvent              ;              import              java.awt.event.WindowListener              ;              import              java.io.PrintStream              ;              import              javax.swing.JButton              ;              import              javax.swing.JDialog              ;              import              javax.swing.JFrame              ;              import              javax.swing.JOptionPane              ;              public              class              GameApplet              extends              Applet              implements              MouseListener,              ActionListener,              WindowListener              {              JFrame f;              int              flag              =              2              ;              int              n;              int              m;              int              i              =              0              ;              static              int              bug              =              0              ;              char              []              ch              =              new              char              [              9              ];              JButton first;              JButton second;              String s1              =              ""              ;              public              GameApplet              ()              {              this              .              f              =              new              JFrame(              "Tic Tac Toe"              );              this              .              first              =              new              JButton(              "CLEAR"              );              this              .              second              =              new              JButton(              "EXIT"              );              this              .              f              .              add              (              this              .              first              );              this              .              f              .              add              (              this              .              second              );              this              .              f              .              addWindowListener              (              this              );              this              .              f              .              getContentPane              ().              setBackground              (Color.              BLUE              );              this              .              f              .              setLayout              (              null              );              this              .              f              .              setVisible              (              true              );              this              .              f              .              setSize              (              800              ,              600              );              this              .              first              .              setBounds              (              650              ,              50              ,              90              ,              60              );              this              .              second              .              setBounds              (              650              ,              250              ,              90              ,              60              );              this              .              f              .              addMouseListener              (              this              );              for              (              this              .              i              =              0              ;              this              .              i              <              9              ;              this              .              i              +=              1              )              this              .              ch              [              this              .              i              ]              =              'B'              ;              this              .              first              .              addActionListener              (              this              );              this              .              second              .              addActionListener              (              this              );              String message              =              "Please click on the frame   !!!!! \n    \nto start the game \n"              ;              JOptionPane pane              =              new              JOptionPane(message);              JDialog dialog              =              pane.              createDialog              (              new              JFrame(),              "Dilaog"              );              dialog.              show              ();              Graphics g              =              this              .              f              .              getGraphics              ();              g.              drawLine              (              200              ,              0              ,              200              ,              600              );              g.              drawLine              (              400              ,              0              ,              400              ,              600              );              g.              drawLine              (              0              ,              200              ,              600              ,              200              );              g.              drawLine              (              0              ,              400              ,              600              ,              400              );              g.              drawLine              (              600              ,              0              ,              600              ,              600              );              }              public              void              keyPressed              (KeyEvent k)              {              System.              out              .              print              (              ""              );              }              public              void              keyTyped              (KeyEvent k)              {              this              .              s1              +=              k.              getKeyChar              ();              }              public              void              keyReleased              (KeyEvent k)              {              System.              out              .              print              (              ""              );              }              public              void              actionPerformed              (ActionEvent ae)              {              if              (ae.              getSource              ()              ==              this              .              first              )              {              this              .              f              .              setVisible              (              false              );              bug              =              0              ;              new              GameApplet              ();              }              if              (ae.              getSource              ()              ==              this              .              second              )              {              System.              exit              (              0              );              }              }              public              void              windowClosing              (WindowEvent de)              {              System.              exit              (              0              );              }              public              void              windowOpened              (WindowEvent de)              {              }              public              void              windowClosed              (WindowEvent de)              {              }              public              void              windowActivated              (WindowEvent de)              {              }              public              void              windowDeactivated              (WindowEvent de)              {              }              public              void              windowIconified              (WindowEvent de)              {              }              public              void              windowDeiconified              (WindowEvent de)              {              }              public              void              mouseClicked              (MouseEvent e)              {              Graphics2D g2;              Graphics g              =              this              .              f              .              getGraphics              ();              g.              drawLine              (              200              ,              0              ,              200              ,              600              );              g.              drawLine              (              400              ,              0              ,              400              ,              600              );              g.              drawLine              (              0              ,              200              ,              600              ,              200              );              g.              drawLine              (              0              ,              400              ,              600              ,              400              );              g.              drawLine              (              600              ,              0              ,              600              ,              600              );              this              .              flag              -=              1              ;              int              x              =              e.              getX              ();              int              y              =              e.              getY              ();              if              (              this              .              flag              ==              1              )              {              if              ((x              <              200              )              &&              (y              <              200              ))              {              this              .              m              =              0              ;              this              .              n              =              0              ;              this              .              ch              [              0              ]              =              'R'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              <              200              ))              {              this              .              m              =              200              ;              this              .              n              =              0              ;              this              .              ch              [              1              ]              =              'R'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              <              200              ))              {              this              .              m              =              400              ;              this              .              n              =              0              ;              this              .              ch              [              2              ]              =              'R'              ;              }              if              ((x              <              200              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              0              ;              this              .              n              =              200              ;              this              .              ch              [              3              ]              =              'R'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              200              ;              this              .              n              =              200              ;              this              .              ch              [              4              ]              =              'R'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              400              ;              this              .              n              =              200              ;              this              .              ch              [              5              ]              =              'R'              ;              }              if              ((x              <              200              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              0              ;              this              .              n              =              400              ;              this              .              ch              [              6              ]              =              'R'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              200              ;              this              .              n              =              400              ;              this              .              ch              [              7              ]              =              'R'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              400              ;              this              .              n              =              400              ;              this              .              ch              [              8              ]              =              'R'              ;              }              g.              setColor              (              new              Color(              77              ,              176              ,              230              ));              g2              =              (Graphics2D)g;              g2.              setStroke              (              new              BasicStroke(              10.0F));              g.              drawOval              (              this              .              m              +              10              ,              this              .              n              +              10              ,              159              ,              159              );              }              if              (              this              .              flag              ==              0              )              {              if              ((x              <              200              )              &&              (y              <              200              ))              {              this              .              m              =              0              ;              this              .              n              =              20              ;              this              .              ch              [              0              ]              =              'P'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              <              200              ))              {              this              .              m              =              200              ;              this              .              n              =              20              ;              this              .              ch              [              1              ]              =              'P'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              <              200              ))              {              this              .              m              =              400              ;              this              .              n              =              20              ;              this              .              ch              [              2              ]              =              'P'              ;              }              if              ((x              <              200              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              0              ;              this              .              n              =              200              ;              this              .              ch              [              3              ]              =              'P'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              200              ;              this              .              n              =              200              ;              this              .              ch              [              4              ]              =              'P'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              >              200              )              &&              (y              <              400              ))              {              this              .              m              =              400              ;              this              .              n              =              200              ;              this              .              ch              [              5              ]              =              'P'              ;              }              if              ((x              <              200              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              0              ;              this              .              n              =              400              ;              this              .              ch              [              6              ]              =              'P'              ;              }              if              ((x              >              200              )              &&              (x              <              400              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              200              ;              this              .              n              =              400              ;              this              .              ch              [              7              ]              =              'P'              ;              }              if              ((x              >              400              )              &&              (x              <              600              )              &&              (y              >              400              )              &&              (y              <              600              ))              {              this              .              m              =              400              ;              this              .              n              =              400              ;              this              .              ch              [              8              ]              =              'P'              ;              }              g2              =              (Graphics2D)g;              g2.              setStroke              (              new              BasicStroke(              10.0F));              g.              setColor              (              new              Color(              77              ,              176              ,              230              ));              g.              drawLine              (              this              .              m              +              10              ,              this              .              n              +              13              ,              this              .              m              +              169              ,              this              .              n              +              164              );              g.              drawLine              (              this              .              m              +              169              ,              this              .              n              +              10              ,              this              .              m              +              10              ,              this              .              n              +              169              );              this              .              flag              +=              2              ;              }              for              (              this              .              i              =              0              ;              this              .              i              <              3              ;              this              .              i              +=              1              )              {              if              ((              this              .              ch              [              this              .              i              ]              !=              'B'              )              &&              (              this              .              ch              [(              this              .              i              +              3              )]              ==              this              .              ch              [              this              .              i              ])              &&              (              this              .              ch              [(              this              .              i              +              6              )]              ==              this              .              ch              [              this              .              i              ]))              {              new              Board              ().              win              ();              bug              =              1              ;              }              }              for              (              this              .              i              =              0              ;              this              .              i              <              7              ;              this              .              i              +=              1              )              {              if              (              this              .              ch              [              this              .              i              ]              !=              'B'              )              {              if              ((              this              .              ch              [              this              .              i              ]              ==              this              .              ch              [(              this              .              i              +              1              )])              &&              (              this              .              ch              [              this              .              i              ]              ==              this              .              ch              [(              this              .              i              +              2              )]))              {              new              Board              ().              win              ();              bug              =              1              ;              }              this              .              i              +=              2              ;              }              else              {              this              .              i              +=              2              ;              }              }              if              ((              this              .              ch              [              4              ]              !=              'B'              )              &&              ((              ((              this              .              ch              [              0              ]              ==              this              .              ch              [              4              ])              &&              (              this              .              ch              [              4              ]              ==              this              .              ch              [              8              ]))              ||              ((              this              .              ch              [              2              ]              ==              this              .              ch              [              4              ])              &&              (              this              .              ch              [              4              ]              ==              this              .              ch              [              6              ])))))              {              new              Board              ().              win              ();              bug              =              1              ;              }              for              (              this              .              i              =              0              ;              (              this              .              i              <              9              )              &&              (              this              .              ch              [              this              .              i              ]              !=              'B'              );              this              .              i              +=              1              )              {              if              (              this              .              i              ==              8              )              {              if              (bug              ==              0              )              new              Board              ().              draw              ();              bug              =              0              ;              }              }              }              public              void              mouseReleased              (MouseEvent e)              {              System.              out              .              print              (              ""              );              }              public              void              mouseEntered              (MouseEvent e)              {              System.              out              .              print              (              ""              );              }              public              void              mouseExited              (MouseEvent e)              {              System.              out              .              print              (              ""              );              }              public              void              mousePressed              (MouseEvent e)              {              System.              out              .              print              (              ""              );              }              public              static              void              main              (String[]              args)              {              new              GameApplet              ();              }              }              Board.              java              import              java.awt.event.WindowEvent              ;              import              java.awt.event.WindowListener              ;              import              javax.swing.JDialog              ;              import              javax.swing.JFrame              ;              import              javax.swing.JOptionPane              ;              class              Board              implements              WindowListener              {              public              void              win              ()              {              String message              =              "Congratulations !!!!! \n    \nYou win \n"              ;              JOptionPane pane              =              new              JOptionPane(message);              JDialog dialog              =              pane.              createDialog              (              new              JFrame(),              "Dilaog"              );              dialog.              show              ();              }              public              void              draw              ()              {              String message              =              "Players the result is  !!!!! \n    \nSTALEMATE \n"              ;              JOptionPane pane              =              new              JOptionPane(message);              JDialog dialog              =              pane.              createDialog              (              new              JFrame(),              "Dilaog"              );              dialog.              show              ();              }              public              void              windowClosing              (WindowEvent we)              {              System.              exit              (              0              );              }              public              void              windowOpened              (WindowEvent we)              {              }              public              void              windowClosed              (WindowEvent we)              {              }              public              void              windowActivated              (WindowEvent we)              {              }              public              void              windowDeactivated              (WindowEvent we)              {              }              public              void              windowIconified              (WindowEvent we)              {              }              public              void              windowDeiconified              (WindowEvent we)              {              }              }            

Please mention in the comments in case you have any doubts regarding tic tac toe java code.

Design Tic Tac Toe Game In Java

Source: https://javahungry.blogspot.com/2013/05/tic-tac-toe-game-best-graphics-perfect.html

Posted by: northshoundow.blogspot.com

0 Response to "Design Tic Tac Toe Game In Java"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel