Tic - Tac - Toe Game - Please Help!

Hi everyone, I am attempting to create a tic - tac - toe game (O's & X's).
I would like there to be two playing modes to the game, the first mode will be one player where the user plays against the computer. The second mode is a two - player game, where two users play, one being X's and the other being O's.
Can anyone help me get started with this game, I know there is source code on the internet but I would rather not use this as I would like to learn as I create the game.
Thanks Everyone

its amazing how much code a simple game like tic-tac-toe can require.. well, only if you program the AI of the computer.. i wrote one in c++ last year, for my computer science class, and the whole class had trouble with it, mainly the AI.. a suggestion to you: write it in an object-oriented manner. i ended up writing it procedurally and in the end, it looked very bad, but it worked!
i would prob. setup some objects like: Board (the 3x3 grid), Mark (a user mark, such as an "x" or an "o")..
i dunno.. hope that helps some, if you need help with the AI at all.. i do have the tic-tac-toe program i wrote on my website (http://www.angelfire.com/blues/smb/ ) in the C++ section.. i used a graphics package, but the logic is all there and the code is well commented.
anyway, ill talk to ya later, good luck,
Steven Berardi

Similar Messages

  • Tic tac toe problem please help

    hi,
    My program consists of 4 classes but working bit by bit and currently using 2 classes. I've managed to get an 'X' to appear on the grid but I'm having problems arranging it like a tic tac toe grid and another number appears under the number selected by the player next to the grid, how do i get rid of it?? the output is like this.........
    // output
    Enter player's Name:
    Name:
    dave
    dave to play
    Enter move by selecting number from grid, or 0 to draw
    Move entered:
    1
    1 0X23456789
    it also says "String index out of range:-1 any ideas what this means?????
    heres my source code for the program....
    //Main program
    public class TheTest1
         public static void main( String [] args)
         TheTest TT = new TheTest();
         TT.gridSheet("0123456789", true);
    // TheTest
    import element.* ; // import the package that contains
    // the ConsoleWindow class
    public class TheTest
         String name1;
         String turn;
         int cell, move;
         final static char NOUGHT='O', CROSS='X';
         public TheTest()
              c.out.println("Enter player's Name:");
              c.out.println("Name:");
              name1 = c.input.readString();
              turn = name1;
              move();
    public void move()
                   if(turn.compareTo(name1)==0)
                        c.out.println(name1 + " to play");
              c.out.println("Enter move by selecting number from grid, or 0 to draw");
                   c.out.println("Move entered: ");
                   cell = c.input.readInt();
         public void gridSheet(String fruit, boolean play)
              for(int j = 1; j<9; j=j+3)
                        char index;
                   for(int i = j; i<(j+3); i++)
         if(play==true)
         index = fruit.charAt (i);
         c.out.print (index + " ");
                                  //index = fruit.charAt(i);
                                  if(cell==1 && turn.compareTo(name1)==0)
                                  cell=fruit.indexOf('1');
                                  fruit=fruit.substring(0,cell) + CROSS + fruit.substring(cell+1);
                                  c.out.println(fruit);
                                  //move();
         //c.out.println(" ");
    Any help will be appreciated.
    Many thanks
    Dave

    this is a tic tac toe console and you're having trouble displaying it as a grid?
    if so, this is one way to simulate the board (some of the code is just for display in this example)
    import java.io.*;
    class TicTacToeConsole
      BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
      String[] board = new String[9];
      public TicTacToeConsole()
        for(int x = 0; x < board.length; x++) board[x] = " _ ";
        try{playGame();}catch(Exception e){e.printStackTrace();}
      public void playGame() throws IOException
        System.out.println("Board at game start");
        printBoard();
        System.out.println("\nPlease select an available number to put your X");
        printAvailableSquares();
        int playerMove = Integer.parseInt(input.readLine()) -1;
        board[playerMove] = " X ";
        System.out.println("\nBoard after first move");
        printBoard();
        System.out.println("\nAvailable moves after first move");
        printAvailableSquares();
      public void printBoard()
        System.out.println();
        for(int x = 0; x < board.length; x++)
          System.out.print(board[x]);
          if(x%3 == 2) System.out.println("\n");
      public void printAvailableSquares()
        System.out.println();
        for(int x = 0; x < board.length; x++)
          if(board[x].equals(" _ ")) System.out.print(" " + (x+1) + " ");
          else System.out.print("   ");
          if(x%3 == 2) System.out.println("\n");
      public static void main(String[] args){new TicTacToeConsole();}
    }

  • Test out this Tic Tac Toe game please

    I know this is suppose to be a real java forum, but this is stripped down version of java, but it's still java. Before using real java I used this Judo. So can you guys download the stuff and play it a few times. Give me any suggestions or bug reports. This is v. 1.0 and there isn't a winner decider yet. Thanks and hope you have fun!
    You will need to download JUDO
    http://judo.sourceforge.net/#download
    Open JUDO and paste this code into it and run.
    void main () {
    String Intro = "Tic Tac Toe v 1.0 only funcutions under lower case letters.";
    String Start = "Execute y/n...";
    drawString(Intro, 150,50);
    drawString(Start, 150,70);
    String Go = "y";
    String go;
    go = readString();
    if(equal(go,Go)){
    setColor(blue);
    for(int loading = 0 ; loading < 460; loading++)
    int lpercent = loading;
    //printLine("Loading percent... "+lpercent/460+"%");
    fillRectangle(loading*1,250, 25,25);
    delay(0.01);
    String complete = "Loading Complete...";
    drawString(complete,0,235);
    //Ask what user would like [X or O]
    //get player name
    String PlayerName;
    String PlayerName2;
    printLine("Enter Player 1 name...");
    PlayerName = readString();
    printLine("Enter Player 2 name...");
    PlayerName2 = readString();
    //Recycle program loop here
    String execute = "y";
    String yes = "y";
    //While user would still like to run program
    while(equal(execute, yes)) {
    //decide player symbol
    String PlayerOne;
    String PlayerTwo;
    printLine("Select player 1 character...[x or o]");
    PlayerOne = readString();
    String O = "o";
    String X = "x";
    if(equal(PlayerOne, X) ) {
    PlayerTwo = O;
    else{
    PlayerTwo = X;
    //Printout inputed data
    printLine("Player 1 : ("+ PlayerOne +") " + PlayerName + " Player 2 : (" + PlayerTwo +") "+ PlayerName2);
    //Draw playing board
    String info = "Player 1 : ("+ PlayerOne +") " + PlayerName + " | Player 2 : (" + PlayerTwo +") "+ PlayerName2;
    //clearDrawing();
    for(int roundTime = 0 ; roundTime < 6; roundTime++) {
    setBackgroundColor(azure);
    drawString(info, 150,50);
    //horizontal lines
    setColor(black);
    drawLine(100,100, 400,100);
    drawLine(100,101, 400,101);
    drawLine(100,141, 400,141);
    drawLine(100,142, 400,142);
    drawLine(100,182, 400,182);
    drawLine(100,183, 400,183);
    //verticle lines
    drawLine(200,60, 200,223);
    drawLine(201,60, 201,223);
    drawLine(300,60, 300,223);
    drawLine(301,60, 301,223);
    //code boxed
    String a = "A";
    String b = "B";
    String c = "C";
    String d = "D";
    String one = "1";
    String two = "2";
    String three = "3";
    drawString(a, 100,80);
    drawString(b, 100,120);
    drawString(c, 100,160);
    drawString(d, 100,200);
    drawString(one, 150,230);
    drawString(two, 250,230);
    drawString(three, 350,230);
    //Let X go first then O (continue alternating)
    String pOne = PlayerName + "'s turn to move...";
    String pTwo = PlayerName2 + "'s turn to move...";
    if(equal(PlayerOne,X)) {
    drawString(pOne, 50,243);
    else{
    drawString(pTwo, 50,243);
    //ask user to make move here, then alternate character moves.
    String move;
    String move2;
    String A1 = "a1";
    String A2 = "a2";
    String A3 = "a3";
    String B1 = "b1";
    String B2 = "b2";
    String B3 = "b3";
    String C1 = "c1";
    String C2 = "c2";
    String C3 = "c3";
    String D1 = "d1";
    String D2 = "d2";
    String D3 = "d3";
    printLine("Please enter your character position player(X)...");
    move = readString();
    String CX = "X";
    String CO = "O";
    if(equal(move,A1)) {
    setColor(blue);
    drawString(CX, 42, 140,99);
    else{
    //continue program execution
    if(equal(move,A2)) {
    setColor(blue);
    drawString(CX, 42, 240,99);
    else{
    //continue program execution
    if(equal(move,A3)) {
    setColor(blue);
    drawString(CX, 42, 340,99);
    else{
    //continue program execution
    if(equal(move,B1)) {
    setColor(blue);
    drawString(CX, 42, 140,140);
    else{
    //continue program execution
    if(equal(move,B2)) {
    setColor(blue);
    drawString(CX, 42, 240,140);
    else{
    //continue program execution
    if(equal(move,B3)) {
    setColor(blue);
    drawString(CX, 42, 340,140);
    else{
    //continue program execution
    if(equal(move,C1)) {
    setColor(blue);
    drawString(CX, 42, 140,181);
    else{
    //continue program execution
    if(equal(move,C2)) {
    setColor(blue);
    drawString(CX, 42, 240,181);
    else{
    //continue program execution
    if(equal(move,C3)) {
    setColor(blue);
    drawString(CX, 42, 340,181);
    else{
    //continue program execution
    if(equal(move,D1)) {
    setColor(blue);
    drawString(CX, 42, 140,222);
    else{
    //continue program execution
    if(equal(move,D2)) {
    setColor(blue);
    drawString(CX, 42, 240,222);
    else{
    //continue program execution
    if(equal(move,D3)) {
    setColor(blue);
    drawString(CX, 42, 340,222);
    else{
    //continue program execution
    //clearDrawing();
    if(equal(PlayerOne,X)) {
    drawString(pTwo, 50,243);
    else{
    drawString(pOne, 50,243);
    //O 's movement here
    printLine("Please enter your character position player(O)...");
    move2 = readString();
    if(equal(move2,A1)) {
    setColor(red);
    drawString(CO, 42, 140,99);
    else{
    //continue program execution
    if(equal(move2,A2)) {
    setColor(red);
    drawString(CO, 42, 240,99);
    else{
    //continue program execution
    if(equal(move2,A3)) {
    setColor(red);
    drawString(CO, 42, 340,99);
    else{
    //continue program execution
    if(equal(move2,B1)) {
    setColor(red);
    drawString(CO, 42, 140,140);
    else{
    //continue program execution
    if(equal(move2,B2)) {
    setColor(red);
    drawString(CO, 42, 240,140);
    else{
    //continue program execution
    if(equal(move2,B3)) {
    setColor(red);
    drawString(CO, 42, 340,140);
    else{
    //continue program execution
    if(equal(move2,C1)) {
    setColor(red);
    drawString(CO, 42, 140,181);
    else{
    //continue program execution
    if(equal(move2,C2)) {
    setColor(red);
    drawString(CO, 42, 240,181);
    else{
    //continue program execution
    if(equal(move2,C3)) {
    setColor(red);
    drawString(CO, 42, 340,181);
    else{
    //continue program execution
    if(equal(move2,D1)) {
    setColor(red);
    drawString(CO, 42, 140,222);
    else{
    //continue program execution
    if(equal(move2,D2)) {
    setColor(red);
    drawString(CO, 42, 240,222);
    else{
    //continue program execution
    if(equal(move2,D3)) {
    setColor(red);
    drawString(CO, 42, 340,222);
    else{
    //continue program execution
    /*setBackgroundColor(azure);
    drawString(info, 150,50);
    //horizontal lines
    setColor(black);
    drawLine(100,100, 400,100);
    drawLine(100,101, 400,101);
    drawLine(100,141, 400,141);
    drawLine(100,142, 400,142);
    drawLine(100,182, 400,182);
    drawLine(100,183, 400,183);
    //verticle lines
    drawLine(200,60, 200,223);
    drawLine(201,60, 201,223);
    drawLine(300,60, 300,223);
    drawLine(301,60, 301,223);
    //code boxed
    drawString(a, 100,80);
    drawString(b, 100,120);
    drawString(c, 100,160);
    drawString(d, 100,200);
    drawString(one, 150,230);
    drawString(two, 250,230);
    */ drawString(three, 350,230);
    printLine("would you like to execute program further? Y/N");
    execute = readString();
    else{
    clearDrawing();
    String Fail = "User declined program execution...";
    drawString(Fail, 150,60);

    please format the code..
    RK

  • Need some help with Tic Tac Toe game

    hey. hope u guys can help me out...
    having a problem with my tic tac toe program...
    i have 2 problems.
    1) got the "X" and "O" to appear using a flag(teacher didn't explain)
    using code like this
    if (jb == button[0]){
    if (flag==0)
    button[0].setText("X");
    else
    button[0].setText("O");
    //toggle
    flag = (flag==0)?1:0;
    my problem is how do i get it to stop.(For example button[1] is selected as "X"..how do i stop it from albe to switch to "O")
    2) found this code in javascript online and i want to do what it does in java code
    if(button[0] == " X " && button[1] == " X " && button[2] == " X ")
    alert("You Win!");
    reset();
    how would i do that?
    thanks for the help.

    ok here's my code:
    //TTT.java
    import javax.swing.*;
    import java.awt.*;
    import java .awt.event.*;
    public class TTT extends JFrame
                        implements WindowListener, ActionListener
    private JFrame frFirst;
    private Container cnFirst,cnSecond;
    private     JButton button[]=new JButton[9];
    private JButton btnNewGame,btnExit;
    private FlowLayout southLayout;
    private JPanel southPanel;
    private int flag;
    public TTT()
                   frFirst=new JFrame ("Michael's Tic Tac Toe Game!");
                   cnFirst=frFirst.getContentPane();
                   cnFirst.setLayout (new GridLayout (4,4));
                   cnFirst.setBackground(Color.green);
              for(int i=0;i<button.length;i++)
                        button[i] = new JButton();
                        cnFirst.add(button);
                        flag=0;
              southPanel = new JPanel ();
              btnNewGame = new JButton ("New Game");
              southPanel.add (btnNewGame);
              btnExit = new JButton ("EXIT");
              southPanel.add (btnExit);
              frFirst.add (southPanel,BorderLayout.SOUTH);
              frFirst.setLocation(200, 200);
              frFirst.setSize(400,400);
              frFirst.setResizable(false);
              frFirst.setVisible(true);
              this.frFirst.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   // listeners
                   frFirst.addWindowListener(this);
                   button[0].addActionListener(this);
                   button[1].addActionListener(this);
                   button[2].addActionListener(this);
                   button[3].addActionListener(this);
                   button[4].addActionListener(this);
                   button[5].addActionListener(this);
                   button[6].addActionListener(this);
                   button[7].addActionListener(this);
                   button[8].addActionListener(this);
                   btnNewGame.addActionListener (this);
                   btnExit.addActionListener (this);
         //define methods of WindowListener
    public void windowOpened(WindowEvent we)
         public void windowClosing(WindowEvent we)
         System.exit(0);
         public void windowClosed(WindowEvent we)
         public void windowIconified(WindowEvent we)
         public void windowDeiconified(WindowEvent we)
         public void windowActivated(WindowEvent we)
         public void windowDeactivated(WindowEvent we)
    public void actionPerformed(ActionEvent ae)
    //making the X and O to appear on JButtons
         Object obj = ae.getSource();
              if (obj instanceof JButton){
                   JButton jb = (JButton)obj;
                   if (jb == button[0])
                        if (flag==0)
                        button[0].setText("X");
                   else
                        button[0].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[1])
                        if (flag==0)
                        button[1].setText("X");
                   else
                        button[1].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[2])
                        if (flag==0)
                        button[2].setText("X");
                   else
                        button[2].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[3])
                        if (flag==0)
                        button[3].setText("X");
                   else
                        button[3].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[4])
                        if (flag==0)
                        button[4].setText("X");
                   else
                        button[4].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[5])
                        if (flag==0)
                        button[5].setText("X");
                   else
                        button[5].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[6])
                        if (flag==0)
                        button[6].setText("X");
                   else
                        button[6].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[7])
                        if (flag==0)
                        button[7].setText("X");
                   else
                        button[7].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
                   if(jb==button[8])
                        if (flag==0)
                        button[8].setText("X");
                   else
                        button[8].setText("O");
                        //toggle
                        flag = (flag==0)?1:0;
    //New Game To Reset
              if (ae.getSource () == btnNewGame)
    /*     String text = JOptionPane.showInputDialog(null,"Do You Want To Start A New Game?","Michael's Tic Tac Toe Game!",JOptionPane.WARNING_MESSAGE);
    String YES;
    if (text == YES)
         JOptionPane.showMessageDialog(null,"Do You","Michael's Tic Tac Toe Game!",JOptionPane.WARNING_MESSAGE);
         else{
    add code to reset game
         //Exit Button to Exit
         if (ae.getSource () == btnExit)
              JOptionPane.showMessageDialog(null,"Thanks For Playing!","Michael's Tic Tac Toe Game!",JOptionPane.INFORMATION_MESSAGE);
              this.setVisible(false);
         System.exit(0);
              }     //end of if instanceof
    public static void main(String[]args)
         //instantiate GUI
         new TTT();

  • Need help/advice with tic tac toe game

    Hello all. I am working on a tic tac toe game. I was able to program the first 4 moves fine, but ame having trouble with moves 5 and 6 for reasons that are unknown to me. Everything complies fine, its just that the move is displayed int the wrong space (B1) instead of in B2 or B3. Also the move that is supposed to be in A1 disapppears when B2 or B3 is clicked. Also, I need advice as to how to keep the prior moves from being over written.
    At this point I ahve gone over the code on-screen, printed it out, and stared at my drawings... and I'm not having any luck. I'm sure its a small, stupid thing that I'm missing, that anyone else would easily catch. Once again, thx for all your help.
    import java.awt.event.*;
    import java.awt.*;
    import java.applet.*;
    public class game3 extends Applet implements MouseListener{
         String move = "";
         boolean player1 = true;
         String gameBoard[][] = new String [3][3];
    public void spaceA1(Graphics g){ // MOVE IS A1
         if(gameBoard[0][0] == "X")
              g.drawString("X",65,65);
         if(gameBoard[0][0] == "O")
              g.drawString("O",65,65);
    public void spaceA2(Graphics g){ // MOVE IS A2
         if(gameBoard[0][1] == "X")
              g.drawString("X",95,65);
         if(gameBoard[0][1] == "O")
              g.drawString("O",95,65);                         
    public void spaceA3(Graphics g){ // MOVE IS A3               
         if(gameBoard[0][2] == "X")
              g.drawString("X",125,65);
         if(gameBoard[0][2] == "O")
              g.drawString("O",125,65);
    public void spaceB1(Graphics g){ // MOVE IS B1
         if(gameBoard[1][0] == "X")
              g.drawString("X",65,95);
         if(gameBoard[1][0] == "O")
              g.drawString("O",65,95);                    
    public void spaceB2(Graphics g){ // MOVE IS B2
         if(gameBoard[1][1] == "X")
              g.drawString("X",95,95);
         if(gameBoard[1][1] == "O")
              g.drawString("O",95,95);
    public void spaceB3(Graphics g){ // MOVE IS B3
         if(gameBoard[1][2] == "X")
              g.drawString("X",125,95);
         if(gameBoard[1][2] == "O")
              g.drawString("O",125,95);
    public void spaceC1(Graphics g){ // MOVE IS C1
         if(gameBoard[2][0] == "X")
              g.drawString("X",65,125);
         if(gameBoard[2][0] == "O")     
              g.drawString("O",65,125);     
    public void spaceC2(Graphics g){ // MOVE IS C2
         if(gameBoard[2][1] == "X")
              g.drawString("X",95,125);
         if(gameBoard[2][1] == "O")
              g.drawString("O",95,125);
    public void spaceC3(Graphics g){ // MOVE IS C3
         if(gameBoard[2][2] == "X")
              g.drawString("X",125,125);
         if(gameBoard[2][2] == "O")
              g.drawString("O",125,125);
    public void init(){
         addMouseListener(this);
         public void paint(Graphics g){
              g.drawString("    1       2       3", 50,45);
              g.drawString("A",40,70);
              g.drawString("B",40,100);
              g.drawString("C",40,130);
              // first row of boxes
              g.drawRect(50,50,30,30);
              g.drawRect(80,50,30,30);
              g.drawRect(110,50,30,30);
              // second row of boxes
              g.drawRect(50,80,30,30);
              g.drawRect(80,80,30,30);
              g.drawRect(110,80,30,30);
              // third row of boxes
              g.drawRect(50,110,30,30);
              g.drawRect(80,110,30,30);
              g.drawRect(110,110,30,30);
              if(move == "A1"){
                   spaceA2(g);
                   spaceA3(g);
                   spaceB1(g);
                   spaceB2(g);
                   spaceB3(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[0][0] = "X";
                   g.drawString("X",65,65);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[0][0] = "O";
                   g.drawString("O",65,65);
                   player1 = true;
                   return;
              } // end of A1
              else
              if(move == "A2"){
                   spaceA1(g);
                   spaceA3(g);
                   spaceB1(g);
                   spaceB2(g);
                   spaceB3(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[0][1] = "X";     
                   g.drawString("X",95,65);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[0][1] = "O";
                   g.drawString("O",95,65);
                   player1 = true;
                   return;
              } // end of A2
              else
              if(move == "A3"){
                   spaceA1(g);
                   spaceA2(g);
                   spaceB1(g);
                   spaceB2(g);
                   spaceB3(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[0][2] = "X";
                   g.drawString("X",125,65);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[0][2] = "O";
                   g.drawString("O",125,65);
                   player1 = true;
                   return;
              } // end of A3
              else
              if(move == "B1")
                   spaceA1(g);
                   spaceA2(g);
                   spaceA3(g);
                   spaceB2(g);
                   spaceB3(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[1][0] = "X";
                   g.drawString("X",65,95);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[1][0] = "O";
                   g.drawString("O",65,95);
                   player1 = true;
                   return;
              } // end of B1
              else
              if(move == "B2"){
                   spaceA1(g);
                   spaceA2(g);
                   spaceA3(g);
                   spaceB1(g);
                   spaceB3(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[1][1] = "X";
                   g.drawString("X",95,95);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[1][1] = "O";
                   g.drawString("O",95,95);
                   player1 = true;
                   return;
              } // end of B2
              else
              if(move == "B3"){
                   spaceA1(g);
                   spaceA2(g);
                   spaceA3(g);
                   spaceB1(g);
                   spaceB2(g);
                   spaceC1(g);
                   spaceC2(g);
                   spaceC3(g);
                   if(player1){
                   gameBoard[1][2] = "X";
                   g.drawString("X",125,95);
                   player1 = false;
                   return;
                   else
                   if(!player1){
                   gameBoard[1][2] = "O";
                   g.drawString("O",125,95);
                   player1 = true;
                   return;
              }// end of B3
         }// end of graphics
         public void mouseReleased(MouseEvent me){}
         public void mousePressed(MouseEvent me){}
         public void mouseDragged(MouseEvent me){}
         public void mouseEntered(MouseEvent me){}
         public void mouseExited(MouseEvent me){}
         public void mouseClicked(MouseEvent me){
              int x = me.getX();
              int y = me.getY();
              if((x >=51) && (x<= 79) && (y >= 51) && (y <= 79)) //MOVE IS A1
                   move = "A1";
              else
              if((x >=81) && (x<=109) && (y >=51) && (y <= 79))  //MOVE IS A2
                   move = "A2";
              else
              if((x >=111) && (x<=139) && (y >=51) && (y <= 79))  //MOVE IS A3
                   move = "A3";
              else
              if((x >=51) && (x<= 79) && (y >= 81) && (y <= 109))  //MOVE IS B1
                   move = "B1";
              else
              if((x >=81) && (x<=109) && (y >=81) && (y <= 109))  //MOVE IS B2
                   move = "B2";
              else
              if((x >=111) && (x<=139) && (y >=81) && (y <= 109))  //MOVE IS B3
                   move = "B3";
              repaint();
    //<applet code = "game3.class" height =300 width=300> </applet>     

    writing a tic-tac-toe is harder than it sounds.. i wrote one last year in my computer science class.. i have it on my website, if you want to look at code. i wrote it in c++, but the logic is all that matters :)
    btw-last year, i wasnt too good of an OOP programmer, so the program is procedurely written. heres the url:
    http://www.angelfire.com/blues/smb
    also, to tell if a box is already taken, you can just add an if statement:   if ( gameBoard[selX][selY] == null )  //not taken, fill box:many people resort to a boolean matrix of the same idea, but with booleans that store which boxes are taken. i prefer the way above, saves code, memory, and makes it more understandable.
    hope it helps.

  • Tic tac toe game source code

    Hi,
    can any one give me the source code of tic tac toe game..
    below is the requirement
    1. Multi-Player online Tic-Tac-Toe game
    2. Configurable to set from 3 to 6 sides
    3. Able to create game, select a list of created open game, join the selected game
    Please can i have the distributable war file...
    Thanks in advance

    Hi,
    can any one give me the source code of tic tac toe game..
    below is the requirement
    1. Multi-Player online Tic-Tac-Toe game
    2. Configurable to set from 3 to 6 sides
    3. Able to create game, select a list of created open game, join the selected game
    Please can i have the distributable war file...
    Thanks in advance 

  • Tic Tac Toe game using Graphs

    Does anyone know of an open-source implementation of Tic-Tac-Toe using Graphs? I'm reading through Michael Mann's Data Structures and Other Objects Using Java book and in chapter 14, he briefly mentions the use of directed graphs in implementing a game of Tic Tac Toe. I'm interested in seeing how one would implement something of this sort (and no, it's not a homework assignment).
    If someone would be kind enough as to post a link to a site that offers mini-java applications, along with code that novice developers such as myself can traverse, please do so.
    Thanks in advance.

    As an added though, there's really no need to for each node to keep track of incoming connections, only outgoing ones. What I, personally would do is keep an array of 8 outgoing connections, one for each direction. If no connection was there, then that element in the array would be null. If a connection was there, then that element would be an edge connecting to another node, or the other node itself (depending on whether or not you explicitly implemented 'edges' in your graph).
    That way, you could do something like:
        Node    s         = getOneOfTheEdgeNodes();
        boolean hasWinner = false;    
        try {
            for (int i = 0; i < 8; i ++) {
                if (s.getOutgoing(i).getNode().getOutgoing(i).getNode() != null) {
                    hasWinner = true;
                    break;
        } catch (NullPointerException npx) {
            // No winner.
        if (hasWinner)
            System.out.println(s.getPlayer() + " has won");Yeah, that's a shitty example, but hopefully you get my drift.
    Jason

  • Help with Tic Tac Toe game.

    I have finished my entire game excpet for who wins. Anyone have some insight on how to do this?

    private boolean isRow(char arr[][],char s)
            for (int i=0;i<3;i++)
                if (arr[0]==arr[i][1] && arr[i][1]==arr[i][2])
    if (arr[i][0]==s)
    return true;
    if the condition if (arr[0]==arr[i][1] && arr[i][1]==arr[i][2]) was false so return true; won't work, and so the method is left without a return value.
    you can solve the problem by modifying this code to this:
    private boolean isRow(char arr[][],char s)
            for (int i=0;i<3;i++)
                if (arr[0]==arr[i][1] && arr[i][1]==arr[i][2])
    if (arr[i][0]==s)
    return true;
    return false;

  • Tic Tac Toe game

    Hit there!!
    Does anyone know where can I find exaples of applications whith that game?
    I've seen them somewhere that I cannot remember.
    Thanks in advance
    Maddy

    Hi
    I wrote it a long time ago, but it will give you some ideas.
    import java.awt.*;
    import java.awt.event.*;
    import java.math.*;
    public class TicTac extends Frame
         char board[][] = new char[3][3];
         int c          = 0;
         int p          = 0;
             Button bx[]  = new Button[10];
         Font f1      = new Font("System " , 1, 28);
         int t        = 0;
         boolean endOfGame;    
         MenuBar mb   = new MenuBar();
             Menu mm      = new Menu("Option");
         MenuItem mi  = new MenuItem("New Game");
    public TicTac() 
         super("  TicTacTo");   
         setLayout(null);
         addWindowListener(new WindowAdapter()
        {     public void windowClosing(WindowEvent ev)
              {     dispose();
                   System.exit(0);}
         setBounds(60,60,159,179);
         for (int i = 0; i < 9; i++)
              bx[i] = new Button("");
              bx.setFont(f1);
              bx[i].setActionCommand(""+i);
              bx[i].setSize(50,50);
         bx[i].setForeground(Color.black);
         int x = (i - (i / 3 * 3)) * 51 + 3;
              int y = (i / 3 * 51) + 42;
         bx[i].setLocation(x,y);
    bx[i].addActionListener(new MybAction());
         add(bx[i]);
         mi.addActionListener(new MymnAction());
         mb.add(mm);
         mi.setActionCommand("ng");
         mm.add(mi);
         setMenuBar(mb);
         setVisible(true);
         requestFocus();
    public void newboard()
         t = 0;
         endOfGame = false;
         for (int i = 0; i < 3 ; i=i+1)
              for (int j = 0; j < 3; j++)
                   board[i][j] = '-';
                   bx[i*3+j].setLabel(".");
                   bx[i*3+j].setForeground(Color.black);
                   bx[i*3+j].setEnabled(true);
    public void winboard(int i, int j)
         bx[i*3+j].setForeground(Color.red);
    public void markboard(int i, int j, char tav)
         board[i][j] = tav;
         bx[i*3+ j].setLabel(""+tav);
         t = t + 1;
         if (win(3,tav,tav) == true)
         endOfGame = true;
              System.out.println("" + tav + " win");
         if (t == 9) endOfGame = true;
    public void printboard()
         for (int i = 0; i < 3 ; i=i+1)
              System.out.println(" " + board[i][0] +
         " " + board[i][1] +
                        " " + board[i][2]);
         System.out.println(" ");
    public void play(char tav)
         boolean b = false;
         int i = 0;
         int j = 0;
         if (win(2,tav,tav) == true) return;
         if (tav == 'X') if (win(2,'O',tav) == true) return;
         if (tav == 'O') if (win(2,'X',tav) == true) return;
         if (win(1,tav,tav) == true) return;
         while (b == false)
         i = (int)(Math.random() * 3);
              j = (int)(Math.random() * 3);
              if (board[i][j] == '-') b = true;
         markboard(i,j,tav);
    public void playP(char tav, int mp)
         int i = mp / 3;
         int j = (mp - (mp / 3 * 3));
         if (board[i][j] == '-')     markboard(i,j,tav);
    public boolean win(int cc, char tav,char tavp)
         int i;
         int j;
    c = 0;
         for (i = 0; i < 3 ; i=i+1)
              for (j = 0; j < 3; j++)     winc(j, board[i][j], tav);
              if (winr(cc,i,p,tavp) == true)
              if (cc == 3) for (j = 0; j < 3; j++) winboard(i,j);
                   return true;
         for (j = 0; j < 3 ; j=j+1)
              for (i = 0; i < 3; i++)     winc(i, board[i][j], tav);
              if (winr(cc,p,j,tavp) == true)
                   if (cc == 3) for (i = 0; i < 3; i++) winboard(i,j);
                   return true;
         for (i = 0; i < 3 ; i=i+1) winc(i, board[i][i], tav);
         if (winr(cc,p,p,tavp) == true)
              if (cc == 3) for (i = 0; i < 3; i++) winboard(i,i);
              return true;
         for (j = 0; j < 3 ; j=j+1) winc(j, board[2 - j][j], tav);
         if (winr(cc,2 - p,p,tavp) == true)
              if (cc == 3) for (j = 0; j < 3; j++) winboard(2 - j,j);
              return true;
         return false;
    public void winc(int pi,char tav,char tavc)
    if (tav == tavc) c = c + 1;
              else if (tav != '-') c = 99;
                   else p = pi;
    public boolean winr(int cc, int i, int j, char tav)
         if (cc == 3) if (c == 3) return true;
         if (c == cc)
              markboard(i,j,tav);
         return true;
         c = 0;
         return false;
    class MybAction implements ActionListener
    public void actionPerformed(ActionEvent be)
         String s = be.getActionCommand();
         int h = new Integer(s).intValue();
         if (endOfGame == false)
         playP('X',h);
              if (endOfGame == false) play('O');
         requestFocus();
    class MymnAction implements ActionListener
    public void actionPerformed(ActionEvent be)
         String s = mi.getActionCommand();
         if (s == "ng") newboard();
    public static void main (String[] args)
    TicTac gm = new TicTac();
         gm.newboard();

  • Tic-tac-toe multithreaded server game

    i have written the code for tic-tac-toe game partially.i am stuck at writing the code for "who is the winner"? and adding a button to start the new game ?please help me out to write the remaining?
    iam unable to attach the code now;
    Message was edited by:
    vamshijupally

    i have written the code for tic-tac-toe game
    partially.i am stuck at writing the code for "who is
    the winner"? and adding a button to start the new
    game ?please help me out to write the remaining?That question is almost impossible to answer because you didn't provide two vital pieces of information.
    1) What specific problems you're having.
    2) Relevant code.
    iam unable to attach the code now;So, you call the doctor on the phone, say, "I'm not feeling well. Please make me better. I can't come to your office or tell you anything about what's wrong with me now."

  • Help in swing app. tic tac toe

    Trying to make this tic tac toe game. Need a little help. I want the newGameBUT to start the game over, and I would like turnTF to display if a tie occurs. (I tried using *if button.enabled(false) {* but it didn't work. If anyone could help me out, that'd be great. Oh, also, the new game button currently add's 1 to whoever won so far, which is really weird =x. Thanks beforehand.
    import java.awt.*; //import
    import javax.swing.*; //import
    import java.awt.event.*; //import
    import java.awt.Rectangle; //import
    import java.awt.Font; //import
    import javax.swing.BorderFactory; //import
    import javax.swing.border.TitledBorder; //import
    import java.awt.Color; //import
    public class TicTacToeFrame extends JFrame implements ActionListener {
        public TicTacToeFrame() {
            try { //try the following
                jbInit();
            } catch (Exception ex) { // exit on [X]
                ex.printStackTrace(); //exit and print errors
        int xWon = 0; //counting how many times O has won
        int oWon = 0; //counting how many times X has one
        double i = 0; // loop variable to determine turn
        public void actionPerformed(ActionEvent e) {
            String turn = "null"; //current turn
            String notTurn = "null"; //not current turn
            newGameBUT.setEnabled(false); //disable new game button
            if (i % 2 == 0) { // for determining who's turn it is
                turn = "X"; // X's turn when counter is even
                notTurn = "O"; //notTurn used to show who's turn it is in turnTF
            if (i % 2 != 0) { // for determining who's turn it is
                turn = "O"; // O's turn when counter is odd
                notTurn = "X"; //notTurn used to show who's turn it is in turnTF
            turnTF.setText("Currently " + notTurn + "'s turn"); // displays turn
            if (e.getSource() == sqOneBUT) { //disable and print X or O to button
                sqOneBUT.setText(turn); //printing players symbol
                sqOneBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqTwoBUT) { //disable and print X or O to button
                sqTwoBUT.setText(turn); //printing players symbol
                sqTwoBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqThreeBUT) { //disable and print X or O to button
                sqThreeBUT.setText(turn); //printing players symbol
                sqThreeBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqFourBUT) { //disable and print X or O to button
                sqFourBUT.setText(turn); //printing players symbol
                sqFourBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqFiveBUT) { //disable and print X or O to button
                sqFiveBUT.setText(turn); //printing players symbol
                sqFiveBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqSixBUT) { //disable and print X or O to button
                sqSixBUT.setText(turn); //printing players symbol
                sqSixBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqSevenBUT) { //disable and print X or O to button
                sqSevenBUT.setText(turn); //printing players symbol
                sqSevenBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqEightBUT) { //disable and print X or O to button
                sqEightBUT.setText(turn); //printing players symbol
                sqEightBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqNineBUT) { //disable and print X or O to button
                sqNineBUT.setText(turn); //printing players symbol
                sqNineBUT.setEnabled(false); //disabling button
            String sqOne = sqOneBUT.getText(); // Strings to read to find winner
            String sqTwo = sqTwoBUT.getText(); // Strings to read to find winner
            String sqThree = sqThreeBUT.getText(); // Strings to read to find winner
            String sqFour = sqFourBUT.getText(); // Strings to read to find winner
            String sqFive = sqFiveBUT.getText(); // Strings to read to find winner
            String sqSix = sqSixBUT.getText(); // Strings to read to find winner
            String sqSeven = sqSevenBUT.getText(); // Strings to read to find winner
            String sqEight = sqEightBUT.getText(); // Strings to read to find winner
            String sqNine = sqNineBUT.getText(); // Strings to read to find winner
             OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~O WINS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
    //horizontal, top, o wins
            if (sqOne == "O") { //checking too see if player O has won
                if (sqFour == "O") {
                    if (sqSeven == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    //vertical, left, o wins
            if (sqOne == "O") { //checking too see if player O has won
                if (sqTwo == "O") {
                    if (sqThree == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // diagonal, top left to bottom right, o wins
            if (sqOne == "O") {
                if (sqFive == "O") { //checking too see if player O has won
                    if (sqNine == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // horizontal, mid, o wins
            if (sqTwo == "O") { //checking too see if player O has won
                if (sqFive == "O") {
                    if (sqEight == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // horizontal, bottom, o wins
            if (sqThree == "O") { //checking too see if player O has won
                if (sqSix == "O") {
                    if (sqNine == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // diagonal, top right to bottom left, o wins
            if (sqThree == "O") { //checking too see if player O has won
                if (sqFive == "O") {
                    if (sqSeven == "O") {
                        turnTF.setText("O wins!"); //O wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
             $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~X WINS~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    //horizontal, top, x wins
            if (sqOne == "X") { //checking too see if player X has won
                if (sqFour == "X") {
                    if (sqSeven == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    //vertical, left, x wins
            if (sqOne == "X") { //checking too see if player X has won
                if (sqTwo == "X") {
                    if (sqThree == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // diagonal, top left to bottom right, x wins
            if (sqOne == "X") { //checking too see if player X has won
                if (sqFive == "X") {
                    if (sqNine == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // horizontal, mid, x wins
            if (sqTwo == "X") { //checking too see if player X has won
                if (sqFive == "X") {
                    if (sqEight == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
    // horizontal, bottom, x wins
            if (sqThree == "X") { //checking too see if player X has won
                if (sqSix == "X") {
                    if (sqNine == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
            // diagonal, top right to bottom left, x wins
            if (sqThree == "X") { //checking too see if player X has won
                if (sqFive == "X") {
                    if (sqSeven == "X") {
                        turnTF.setText("X wins!"); //X wins text
                        sqOneBUT.setEnabled(false); //disable all buttons
                        sqTwoBUT.setEnabled(false); //disable all buttons
                        sqThreeBUT.setEnabled(false); //disable all buttons
                        sqFourBUT.setEnabled(false); //disable all buttons
                        sqFiveBUT.setEnabled(false); //disable all buttons
                        sqSixBUT.setEnabled(false); //disable all buttons
                        sqSevenBUT.setEnabled(false); //disable all buttons
                        sqEightBUT.setEnabled(false); //disable all buttons
                        sqNineBUT.setEnabled(false); //disable all buttons
            String wins = turnTF.getText(); //Reading who won to print win winTF
            if (wins.equals("X wins!")) { //if X wins
                xWon++; //adding 1 to X's amount of wins
                String xWonString = Integer.toString(xWon); //converting to String
                xWinsTF.setText(xWonString); //displaying # of wins
                newGameBUT.setEnabled(true); //enable new game button
            if (wins.equals("O wins!")) { //if O wins
                oWon++; //adding 1 to O's amount of wins
                String oWonString = Integer.toString(oWon); //converting to String
                oWinsTF.setText(oWonString); //displaying # of wins
                newGameBUT.setEnabled(true); //enable new game button
            if (e.getSource() == newGameBUT) {
            i++; // turn switch
        /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        private void jbInit() throws Exception {
            this.getContentPane().setLayout(null);
            this.getContentPane().setBackground(Color.darkGray);
            sqTwoBUT.setBounds(new Rectangle(2, 116, 115, 115));
            sqTwoBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqFourBUT.setBounds(new Rectangle(118, 1, 115, 115));
            sqFourBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqFiveBUT.setBounds(new Rectangle(118, 116, 115, 115));
            sqFiveBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqSixBUT.setBounds(new Rectangle(118, 232, 115, 115));
            sqSixBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqOneBUT.setBounds(new Rectangle(2, 1, 115, 115));
            sqOneBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqEightBUT.setBounds(new Rectangle(233, 116, 115, 115));
            sqEightBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqNineBUT.setBounds(new Rectangle(233, 232, 115, 115));
            sqNineBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqSevenBUT.setBounds(new Rectangle(233, 1, 115, 115));
            sqSevenBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            sqOneBUT.addActionListener(this);
            sqTwoBUT.addActionListener(this);
            sqThreeBUT.addActionListener(this);
            sqFourBUT.addActionListener(this);
            sqFiveBUT.addActionListener(this);
            sqSixBUT.addActionListener(this);
            sqSevenBUT.addActionListener(this);
            sqEightBUT.addActionListener(this);
            sqNineBUT.addActionListener(this);
            newGameBUT.addActionListener(this);
            sqThreeBUT.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            turnTF.setFont(new java.awt.Font(
                    "Tw Cen MT Condensed Extra Bold",
                    Font.BOLD, 20));
            turnTF.setEditable(false);
            turnTF.setText("X goes first");
            turnTF.setHorizontalAlignment(SwingConstants.CENTER);
            turnTF.setBounds(new Rectangle(2, 346, 346, 35));
            oWinsTF.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
                                              Font.BOLD, 18));
            oWinsTF.setEditable(false);
            oWinsTF.setHorizontalAlignment(SwingConstants.CENTER);
            oWinsTF.setBounds(new Rectangle(256, 419, 79, 59));
            xWinsTF.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
                                              Font.BOLD, 18));
            xWinsTF.setEditable(false);
            xWinsTF.setHorizontalAlignment(SwingConstants.CENTER);
            xWinsTF.setBounds(new Rectangle(12, 419, 79, 59));
            oWinsLBL.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
                                               Font.PLAIN, 16));
            oWinsLBL.setForeground(Color.white);
            oWinsLBL.setHorizontalAlignment(SwingConstants.CENTER);
            oWinsLBL.setText("O wins:");
            oWinsLBL.setBounds(new Rectangle(256, 399, 78, 21));
            xWinsLBL.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
                                               Font.PLAIN, 16));
            xWinsLBL.setForeground(Color.white);
            xWinsLBL.setDisplayedMnemonic('0');
            xWinsLBL.setHorizontalAlignment(SwingConstants.CENTER);
            xWinsLBL.setText("X wins:");
            xWinsLBL.setBounds(new Rectangle(12, 393, 78, 21));
            newGameBUT.setBounds(new Rectangle(101, 455, 146, 23));
            newGameBUT.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold",
                                                 Font.BOLD, 14));
            newGameBUT.setText("New Game");
            this.getContentPane().add(sqFourBUT);
            this.getContentPane().add(sqThreeBUT);
            this.getContentPane().add(sqTwoBUT);
            this.getContentPane().add(sqOneBUT);
            this.getContentPane().add(sqFiveBUT);
            this.getContentPane().add(sqSixBUT);
            this.getContentPane().add(sqNineBUT);
            this.getContentPane().add(sqEightBUT);
            this.getContentPane().add(sqSevenBUT);
            this.getContentPane().add(turnTF);
            this.getContentPane().add(xWinsLBL);
            this.getContentPane().add(xWinsTF);
            this.getContentPane().add(oWinsLBL);
            this.getContentPane().add(oWinsTF);
            this.getContentPane().add(newGameBUT);
            sqThreeBUT.setBounds(new Rectangle(2, 232, 115, 115));
        JButton sqTwoBUT = new JButton();
        JButton sqThreeBUT = new JButton();
        JButton sqFourBUT = new JButton();
        JButton sqFiveBUT = new JButton();
        JButton sqSixBUT = new JButton();
        JButton sqOneBUT = new JButton();
        JButton sqEightBUT = new JButton();
        JButton sqNineBUT = new JButton();
        JButton sqSevenBUT = new JButton();
        JTextField turnTF = new JTextField();
        JTextField oWinsTF = new JTextField();
        JTextField xWinsTF = new JTextField();
        JLabel oWinsLBL = new JLabel();
        JLabel xWinsLBL = new JLabel();
        JButton newGameBUT = new JButton();
    }

    This code should be the poster-child for every time we tell someone that repeated code can usually be replaced with collections or method calls.
            if (e.getSource() == sqOneBUT) { //disable and print X or O to button
                sqOneBUT.setText(turn); //printing players symbol
                sqOneBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqTwoBUT) { //disable and print X or O to button
                sqTwoBUT.setText(turn); //printing players symbol
                sqTwoBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqThreeBUT) { //disable and print X or O to button
                sqThreeBUT.setText(turn); //printing players symbol
                sqThreeBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqFourBUT) { //disable and print X or O to button
                sqFourBUT.setText(turn); //printing players symbol
                sqFourBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqFiveBUT) { //disable and print X or O to button
                sqFiveBUT.setText(turn); //printing players symbol
                sqFiveBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqSixBUT) { //disable and print X or O to button
                sqSixBUT.setText(turn); //printing players symbol
                sqSixBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqSevenBUT) { //disable and print X or O to button
                sqSevenBUT.setText(turn); //printing players symbol
                sqSevenBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqEightBUT) { //disable and print X or O to button
                sqEightBUT.setText(turn); //printing players symbol
                sqEightBUT.setEnabled(false); //disabling button
            if (e.getSource() == sqNineBUT) { //disable and print X or O to button
                sqNineBUT.setText(turn); //printing players symbol
                sqNineBUT.setEnabled(false); //disabling button
            String sqOne = sqOneBUT.getText(); // Strings to read to find winner
            String sqTwo = sqTwoBUT.getText(); // Strings to read to find winner
            String sqThree = sqThreeBUT.getText(); // Strings to read to find winner
            String sqFour = sqFourBUT.getText(); // Strings to read to find winner
            String sqFive = sqFiveBUT.getText(); // Strings to read to find winner
            String sqSix = sqSixBUT.getText(); // Strings to read to find winner
            String sqSeven = sqSevenBUT.getText(); // Strings to read to find winner
            String sqEight = sqEightBUT.getText(); // Strings to read to find winner
            String sqNine = sqNineBUT.getText(); // Strings to read to find winner

  • Tic tac toe 3x3 multiplaye​r game

    How can i build a tic tac toe game in labview
    What im interested in is the following
    1) A 3x3 multiplayer game
    2) A boolean to move left in the tictactoe grid and another to move down
    3) A boolean array to display the grid an another string array to show the X and O's
    4) A boolean to confirm player's choice
    5) A way to choose whether player 1 or player 2 begins
    6) A way to show which player wins or loses, or if it is a draw.
    Thank You in Advance
    I appreciate your help 

    Some of your classmates with the same assignment already asked this quesiton. Why don't you do a quick search before starting a new thread?
    LabVIEW Champion . Do more with less code and in less time .

  • Tic Tac Toe Java help!

    Hi, I have been trying to create a simple Tic Tac Toe game using Java. I'm currently having problems as to how to create the board using arrays (sorry I don't understand them very well). All I have so far is this,
    public class ticTacToe {
    private int [] [] theBoard = new int [3] [3];
         // *'N' is no winner
         // 'X' is X won
         // 'O' is O won
         // 'C' is a cat's game
         public static char didSomeoneWin(int [] [] currentBoard)
              int winForX = 8000, winForO = 1, checkIfItsAcatsGame = 1, product;
              char winner = 'N';
              for(int column = 0; column < 3; column++) // Check the columns
                   product = currentBoard [0] [column] * currentBoard [1] [column] * currentBoard [2] [column];
                   if(product == winForX) winner = 'X';
                   if(product == winForO) winner = 'O';
              for(int row = 0; row < 3; row++) // Check the rows
                   product = currentBoard [row] [0] * currentBoard [row] [1] * currentBoard [row] [2];
                   if(product == winForX) winner = 'X';
                   if(product == winForO) winner = 'O';
              product = currentBoard [0] [0] * currentBoard [1] [1] * currentBoard [2] [2]; // Check one diagonal
              if(product == winForX) winner = 'X';
              if(product == winForO) winner = 'O';
              product = currentBoard [0] [2] * currentBoard [1] [1] * currentBoard [2] [0]; // Check the other diagonal
              if(product == winForX) winner = 'X';
              if(product == winForO) winner = 'O';
              if(winner == 'N') // If nobody's won, Check for a cat's game
                   for(int row = 0; row < 3; row++)
                        for(int column = 0; column < 3; column++)
                             checkIfItsAcatsGame *=currentBoard [row] [column];
                   if(checkIfItsAcatsGame != 0) winner = 'C'; // any empty space is a zero. So product is zero if there is space left.
              return winner;
         public void markX(int row, int column)
              myBoard [row] [column] = 20;
         public void markO(int row, int column)
              myBoard [row] [column] = 1;
    That is all so far, could someone help me print out the board? And help me out on the arrays? I don't think they are quite right. Thanks in Advance!
    Message was edited by:
    matthews1.7.2.0

    Hi,
    Do you need a GUI ?
    If yes see http://java.sun.com/docs/books/tutorial/uiswing/index.html
    You can also see this : http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-Printing.html about printing.
    --Marc (http://jnative.sf.net)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Tic tac toe pls help! there is clarification

    How can i build a tic tac toe game in labview
    What im interested in is the following, and ive added an image of what the front panel should look like with some clarification
    1) A 3x3 multiplayer game
    2) A boolean to move left in the tictactoe grid and another to move down
    3) A boolean array to display the grid an another string array to show the X and O's
    4) A boolean to confirm player's choice
    5) A way to choose whether player 1 or player 2 begins
    6) A way to show which player wins or loses, or if it is a draw.
    Thank You in Advance
    I appreciate your help !!
    Attachments:
    3.JPG ‏58 KB

    You have already asked the question here.
    You still have to prove that this isn't homework. 

  • Tic Tac Toe--need help!

    Im making a tic tac toe game and everything works fine until you try to click the third set of blocks in order to put your X or Y in it. The program does nothing, it even seems as if the mouseDown function isnt working.......can someone help (Code below)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.lang.*;
    public class TicTacToe extends Applet {
    int test = 0;
    int test1 = 0;
    int score;
    int temp;
    char square[][];
    protected int turn;
    final int width = 117;
    boolean TurnP1;
    boolean TurnP2;
    public void init() {
    square = new char[3][3];
         for(int i = 0; i < 3; i++) {
         for(int j = 0; j < 3; j++) {
         square[i][j] = 0;
         score = 0;
         turn = 0;
         temp = 0;
         TurnP1 = false;
         TurnP2 = false;
    public void paint(Graphics g) {
         Graphics2D g2 = (Graphics2D)g;
    g2.setColor(Color.black);
         for (int i = 0; i < 3; i++)
         for (int j = 0; j < 3; j++) g2.fillRect(i * width / 3, j * width / 3, 35, 35);
         drawXandO(g2);
         g2.drawString(Integer.toString(test) + " " + Integer.toString(test1), 130, 50);
    public void drawXandO(Graphics g) {
         g.setColor(Color.red);
         Font myFont = new Font("Impact", Font.PLAIN, 20);
         g.setFont(myFont);
         for (int i = 0; i < 3; i++) {
         for (int j = 0; j < 3; j++) {
         if (square[i][j] != 0) {
         g.drawString(" " + square[i][j] + " ", i * width / 3 + 10, j * width / 3 - 5);
    public boolean mouseDown(java.awt.Event e, int x, int y) {
    int column = (int)(x / (width / 3));
         int row = (int)(y / (width / 3)+1);
         test = column;
         test1 = row;
         turn++;
         if (square[column][row] != 0) {
         play(getCodeBase(), "beep.wav");
         if (TurnP2) {
         turn = 4;
         } else {
         turn = 3;
         return true;
         if (turn % 2 == 0) {
         //Its Player 2 turn
         TurnP1 = false;
         TurnP2 = true;
         square[column][row] = 'O';
         } else {
         //Its Player 1 turn
         TurnP1 = true;
         TurnP2 = false;
         square[column][row] = 'X';
         repaint();
    return true;

    the method you use should not be overridden without a call to the ancestor like:
    public boolean mouseDown(Event e,int x,int y){
              super.mouseDown(e,x,y);
              //your code here
    }it is more safe.but anyway the best thing to do what you want is to use:
    public MyApplet extends Applet implements MouseListener {
           public init(){
              addMouseListener(this);
          //methods mouseReleased,...
          public void mouseDown(MouseEvent e){

Maybe you are looking for