Help - Search - Members - Calendar
Full Version: Tic Tac Toe In Java
RuneCrypt Forum > General Board > General Chat > Homework, Tasks, and Work Help
junkdude101
well in my ap comp sci class, we have to make a tictactoe game in both 2 player and AI version.

for the 2P version, i kinda have it but somehow i can't win wacko.gif

CODE
import cs1.Keyboard;

public class tictactoe {
public String[][] board;
  public tictactoe() {
    board = new String[3][3];
    for(int i=0;i<3;i++){
      for (int j=0;j<3;j++)
        board[i][j]=" ";
    }
  }
  
  public static void main(String[] args) {
    tictactoe myboard = new tictactoe();
    boolean turn = true;
    while(true){
      for (int steps=1;steps<10;){
        if (turn == true){
          System.out.print("Player 1: ");
          String y = Keyboard.readString();
          if (y.length()>2){
            System.out.println ("Error!!");
            break;
          }
          if (y.charAt(0)== 'a'&&y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[0][0]==" "){
              myboard.board[0][0]="X";
              if ((myboard.board[0][0]==myboard.board[1][0]&&myboard.board[0][0]==myboard.board[2][0])||
                  (myboard.board[0][0]==myboard.board[0][1]&&myboard.board[0][0]==myboard.board[0][2])||
                  (myboard.board[0][0]==myboard.board[1][1]&&myboard.board[0][0]==myboard.board[2][2])){
                System.out.println("Player 1 WINS!");
                steps=9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[0][1]==" "){
              myboard.board[0][1]="X";
              if ((myboard.board[0][1]==myboard.board[0][0]&&myboard.board[0][1]==myboard.board[0][2])||
                  (myboard.board[0][1]==myboard.board[1][1]&&myboard.board[0][1]==myboard.board[2][1])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[0][2]==" "){
              myboard.board[0][2]="X";
              if ((myboard.board[0][2]==myboard.board[0][0]&&myboard.board[0][2]==myboard.board[0][1])||
                  (myboard.board[0][2]==myboard.board[1][2]&&myboard.board[0][2]==myboard.board[2][2])||
                  (myboard.board[0][2]==myboard.board[1][1]&&myboard.board[0][2]==myboard.board[2][0])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          else if(y.charAt(0)=='b'&&y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[1][0]==" "){
              myboard.board[1][0]="X";
              if ((myboard.board[1][0]==myboard.board[0][0]&&myboard.board[1][0]==myboard.board[2][0])||
                  (myboard.board[1][0]==myboard.board[1][1]&&myboard.board[1][0]==myboard.board[1][2])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[1][1]==" "){
              myboard.board[1][1]="X";
              if ((myboard.board[1][1]==myboard.board[0][1]&&myboard.board[1][1]==myboard.board[2][1])||
                  (myboard.board[1][1]==myboard.board[1][0]&&myboard.board[1][1]==myboard.board[1][2])||
                  (myboard.board[1][1]==myboard.board[0][0]&&myboard.board[1][1]==myboard.board[2][2])||
                  (myboard.board[1][1]==myboard.board[0][2]&&myboard.board[1][1]==myboard.board[2][0])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[1][2]==" "){
              myboard.board[1][2]="X";
              if ((myboard.board[1][2]==myboard.board[0][2]&&myboard.board[1][2]==myboard.board[2][2])||
                  (myboard.board[1][2]==myboard.board[1][0]&&myboard.board[1][2]==myboard.board[1][1])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          else if(y.charAt(0)=='c'&& y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[2][0]==" "){
              myboard.board[2][0]="X";
              if ((myboard.board[2][0]==myboard.board[0][0]&&myboard.board[2][0]==myboard.board[1][0])||
                  (myboard.board[2][0]==myboard.board[2][1]&&myboard.board[2][0]==myboard.board[2][2])||
                  (myboard.board[2][0]==myboard.board[1][1]&&myboard.board[2][0]==myboard.board[0][2])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[2][1]==" "){
              myboard.board[2][1]="X";
              if ((myboard.board[2][1]==myboard.board[0][1]&&myboard.board[2][1]==myboard.board[1][1])||
                  (myboard.board[2][1]==myboard.board[2][0]&&myboard.board[2][1]==myboard.board[2][2])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[2][2]==" "){
              myboard.board[2][2]="X";
              if ((myboard.board[2][2]==myboard.board[0][0]&&myboard.board[2][2]==myboard.board[1][1])||
                  (myboard.board[2][2]==myboard.board[0][2]&&myboard.board[2][2]==myboard.board[1][2])||
                  (myboard.board[2][2]==myboard.board[2][0]&&myboard.board[2][2]==myboard.board[2][1])){
                System.out.println("Player 1 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          System.out.println ("             1   2   3  ");
          System.out.println ("          A  "+myboard.board[0][0]+" | "+myboard.board[0][1]+" | "+myboard.board[0][2]);
          System.out.println ("            ------------");
          System.out.println ("          B  "+myboard.board[1][0]+" | "+myboard.board[1][1]+" | "+myboard.board[1][2]);
          System.out.println ("            ------------");
          System.out.println ("          C  "+myboard.board[2][0]+" | "+myboard.board[2][1]+" | "+myboard.board[2][2]);
        }
        if (turn == false){
          System.out.print("Player 2: ");
          String y = Keyboard.readString();
          if (y.charAt(0)== 'a'&&y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[0][0]==" "){
              myboard.board[0][0]="O";
              if ((myboard.board[0][0]==myboard.board[1][0]&&myboard.board[0][0]==myboard.board[2][0])||
                  (myboard.board[0][0]==myboard.board[0][1]&&myboard.board[0][0]==myboard.board[0][2])||
                  (myboard.board[0][0]==myboard.board[1][1]&&myboard.board[0][0]==myboard.board[2][2])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[0][1]==" "){
              myboard.board[0][1]="O";
              if ((myboard.board[0][1]==myboard.board[0][0]&&myboard.board[0][1]==myboard.board[0][2])||
                  (myboard.board[0][1]==myboard.board[1][1]&&myboard.board[0][1]==myboard.board[2][1])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[0][2]==" "){
              myboard.board[0][2]="O";
              if ((myboard.board[0][2]==myboard.board[0][0]&&myboard.board[0][2]==myboard.board[0][1])||
                  (myboard.board[0][2]==myboard.board[1][2]&&myboard.board[0][2]==myboard.board[2][2])||
                  (myboard.board[0][2]==myboard.board[1][1]&&myboard.board[0][2]==myboard.board[2][0])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          else if(y.charAt(0)=='b'&&y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[1][0]==" "){
              myboard.board[1][0]="O";
              if ((myboard.board[1][0]==myboard.board[0][0]&&myboard.board[1][0]==myboard.board[2][0])||
                  (myboard.board[1][0]==myboard.board[1][1]&&myboard.board[1][0]==myboard.board[1][2])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[1][1]==" "){
              myboard.board[1][1]="O";
              if ((myboard.board[1][1]==myboard.board[0][1]&&myboard.board[1][1]==myboard.board[2][1])||
                  (myboard.board[1][1]==myboard.board[1][0]&&myboard.board[1][1]==myboard.board[1][2])||
                  (myboard.board[1][1]==myboard.board[0][0]&&myboard.board[1][1]==myboard.board[2][2])||
                  (myboard.board[1][1]==myboard.board[0][2]&&myboard.board[1][1]==myboard.board[2][0])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[1][2]==" "){
              myboard.board[1][2]="O";
              if ((myboard.board[1][2]==myboard.board[0][2]&&myboard.board[1][2]==myboard.board[2][2])||
                  (myboard.board[1][2]==myboard.board[1][0]&&myboard.board[1][2]==myboard.board[1][1])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          else if(y.charAt(0)=='c'&& y.length()==2){
            if (y.charAt(1)=='1'&& myboard.board[2][0]==" "){
              myboard.board[2][0]="O";
              if ((myboard.board[2][0]==myboard.board[0][0]&&myboard.board[2][0]==myboard.board[1][0])||
                  (myboard.board[2][0]==myboard.board[2][1]&&myboard.board[2][0]==myboard.board[2][2])||
                  (myboard.board[2][0]==myboard.board[1][1]&&myboard.board[2][0]==myboard.board[0][2])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='2'&& myboard.board[2][1]==" "){
              myboard.board[2][1]="O";
              if ((myboard.board[2][1]==myboard.board[0][1]&&myboard.board[2][1]==myboard.board[1][1])||
                  (myboard.board[2][1]==myboard.board[2][0]&&myboard.board[2][1]==myboard.board[2][2])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else if (y.charAt(1)=='3'&& myboard.board[2][2]==" "){
              myboard.board[2][2]="O";
              if ((myboard.board[2][2]==myboard.board[0][0]&&myboard.board[2][2]==myboard.board[1][1])||
                  (myboard.board[2][2]==myboard.board[0][2]&&myboard.board[2][2]==myboard.board[1][2])||
                  (myboard.board[2][2]==myboard.board[2][0]&&myboard.board[2][2]==myboard.board[2][1])){
                System.out.println("Player 2 WINS!");
                steps = 9;
              }
              ++steps;
            }
            else {
              System.out.println ("Error!!");
              --steps;
              break;
            }
          }
          System.out.println ("             1   2   3  ");
          System.out.println ("          A  "+myboard.board[0][0]+" | "+myboard.board[0][1]+" | "+myboard.board[0][2]);
          System.out.println ("            ------------");
          System.out.println ("          B  "+myboard.board[1][0]+" | "+myboard.board[1][1]+" | "+myboard.board[1][2]);
          System.out.println ("            ------------");
          System.out.println ("          C  "+myboard.board[2][0]+" | "+myboard.board[2][1]+" | "+myboard.board[2][2]);        
        }
        if(turn)
          turn=false;
        else
          turn=true;
      }
    }
  }
}


can anyone help me out by debugging it or w/e. yea i know, mine looks nooby

for the AI version, can you guys give me like hints on how to make it?
Timmaaaay
You did it a lot differently than how my school does. We includes the classes, and then another file as the tester (using 'public static void main(String[] args)'). Looks like you did most of the work in the tester file. I'd help debug it, except it'd take a long time to go through your program to see the reasoning you went through.
junkdude101
edit- thanks anyway tim, i figured out why it didnt print out who won

but, how do i go about doing the AI version?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.