1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Amiraneli [1.4K]
3 years ago
15

Write a program for playing tic tac toe. Two players take turns marking an available cell in a 3 X 3 grid with their respective

tokens (either X or O). When one player has placed the three tokens in a horizontal, vertical, or diagonal row on the grid, the game is over and that player has won. A draw occurs when all the cells on the grid have been filled with tokens and neither player has achieved a win. When a token is entered, the program redisplays the board on the console and determines the status of the game. (Win or Draw).
Computers and Technology
1 answer:
Fynjy0 [20]3 years ago
3 0

Answer:

import java.util.*;

public class tictactoe{

  //array to store values inserted in the bord

  static char[][] board = {{' ',' ',' '},{' ',' ',' '},{' ',' ',' '}};

  //method to display board

  public static void display(){

      System.out.println("-------------");

      for(int i=0;i<3;i++){

          for(int j=0;j<3;j++){

              System.out.print("|");

              if(board[i][j] != ' ')

                  System.out.print(board[i][j]);

          }

          System.out.println("|");

      }

      System.out.println("-------------");

  }

  //method for player1 to make choice

  public static void player1(){

      Scanner in = new Scanner(System.in);

      System.out.print("Enter a row for player X: ");

      int row = in.nextInt();

      System.out.print("Enter a column for player X: ");

      int col = in.nextInt();

      //if the value are not valid and not between 0-2

      if(row > 2 || row < 0 || col > 2 || col < 0){

          System.out.println("Invalid Choice");

          player1();

      }

      //if selected position is empty

      else if(board[row][col] == ' '){

          board[row][col] = 'X';

          check('X',row,col);

          player2();

      }

      //if selected position is not empty

      else{

          System.out.println("Already filed, Enter another choice");

          player1();

      }

  }

  //method for player2 to make choice

  public static void player2(){

      Scanner in = new Scanner(System.in);

      System.out.print("Enter a row for player O: ");

      int row = in.nextInt();

      System.out.print("Enter a column for player O: ");

      int col = in.nextInt();

      //if the value are not valid and not between 0-2

      if(row > 2 || row < 0 || col > 2 || col < 0){

          System.out.println("Invalid Choice");

          player2();

      }

      //if selected position is empty

      else if(board[row][col] == ' '){

          board[row][col] = 'O';

          check(')',row,col);

          player1();

      }

      //if selected position is not empty

      else{

          System.out.println("Already filed, Enter another choice");

          player2();

      }

  }

  //method to check whether a player has won

  public static void check(char s, int row, int col){

      display();

      //check row has same 3 values

      int count = 0;

      for(int i=0;i<3;i++){

          if(board[row][i] == s)

              count++;

      }

      if(count == 3){

          System.out.println(s + " player won");

          System.exit(0);

      }

      //checking column has same 3 values

      count = 0;

      for(int i=0;i<3;i++){

          if(board[i][col] == s)

              count++;

      }

      if(count == 3){

          System.out.println(s + " player won");

          System.exit(0);

      }

      //checking first diagonal has same 3 values

      count = 0;

      for(int i=0;i<3;i++){

          if(board[i][i] == s)

              count++;

      }

      if(count == 3){

          System.out.println(s + " player won");

          System.exit(0);

      }

      //checking second diagonal has same 3 values

      count = 0;

      for(int i=0;i<3;i++){

          if(board[i][2-i] == s)

              count++;

      }

      if(count == 3){

          System.out.println(s + " player won");

          System.exit(0);

      }

      //checking whether all places are filled

      count = 0;

      for(int i=0;i<3;i++)

          for(int j=0;j<3;j++)

              if(board[i][j] == ' ')

                  count++;

      if(count == 0){

          System.out.println("Game tied");

          System.exit(0);

      }

  }

  public static void main(String[] args){

      display();

      player1();

  }

}

Explanation:

You might be interested in
What is the minimum number of data points you should usually have to look for signs of improvement on a run chart?
nexus9112 [7]

Answer:

There Should be at least 10 Points

Explanation:

An execution graph becomes more powerful as you add more data points because there will be more opportunities to identify patterns. If you are looking for signs of improvement, you usually need at least 10 data points.

Performance charts (frequently acknowledged as line graphs outside the excellence management field) display the performance of the process over time

6 0
3 years ago
What are scientists going to explore next on Kepler-186f? A) evidence of the existence of life B) types of plant life that exist
Volgvan

Answer:

the answer is  a)

Explanation:

4 0
3 years ago
Read 2 more answers
Assuming a 1-KB page size, what are the page numbers and offsets for the following address references (provided as decimal numbe
bagirrra123 [75]

<u>Answer:</u>

(a) page = 3; offset = 13

(b) page = 41; offset = 111

(c) page = 210; offset = 161

(d) page = 634; offset = 784

(e) page = 1953; offset = 129

8 0
2 years ago
A group of N stations share a 56-kbps pure ALOHA channel. Each station outputs a 1000-bit frame on average once every 100 sec, e
Sunny_sXe [5.5K]

Explanation:

Here, in the given statement, maximum flow capacity of the ALOHA channel = 18.4% = 0.184

Then, the stations N share 56 kbps

And, the channel rate = 0.184*56 = 10.304 kbps.  

Then, the outputs of the wach stations is 1000-bit frames/100 sec

\therefore, the output of the bits/ sec by each stations = \frac{1000}{100} bits/sec = 10 bits/sec

So, The output of the N stations is 10 bits/sec on the channel that having 10.304kb/sec

Finally, N = \frac{(10.304 \times 10^{3})}{10} = 1030 stations

3 0
3 years ago
The text discusses three approaches to combining overall cost leadership and differentiation competitive advantages. Which of th
dedylja [7]

Answer:

C. deriving benefits from highly focused and high technology markets

Explanation:

Firms that engage in cost-leadership approach seek to combine a low per-unit income with large sales for profit making purposes. Typically, but not always, they are more inclined to market their products and services to a large population base or a niche with a high demand volume. While differentiation enables a company to accomplish a competitive advantage. A Competitive advantage enables a company to achieve more strides over other companies offering related product substitutes. It is an important marketing process that is of critical economic importance to a business.

It should be noted that deriving benefits from highly focused and high technology markets is not part of the approaches to combining overall cost leadership and differentiation competitive advantages.

3 0
3 years ago
Other questions:
  • HELP ME RIGHT NOW !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    8·1 answer
  • Does anybody know how to use these showers?
    11·2 answers
  • Big Data often involves a form of distributed storage and processing using Hadoop and MapReduce.
    12·1 answer
  • The World Wide Web is full of unstructured data. Search engines like Google, Bing and Yahoo have been doing a good job of allowi
    6·1 answer
  • What are the cues that a website is safe to use for exchanging sensitive information?
    10·1 answer
  • Write a cash register program that calculates change for a restaurant of your choice. Your program should include: Ask the user
    11·1 answer
  • State the functions of all the parts of the computer​
    14·1 answer
  • Sistem komponen mekanikal yang terdapat pada sebuah basikal?​
    13·1 answer
  • Why is the Microsoft website considered the best source for information about pagefile.sys?​
    15·1 answer
  • A manager suspects that one of his team members has been fraudulently accessing confidential and sensitive information and breac
    8·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!