I\'m in java one and need help with this code. please follow the directions give
ID: 3689490 • Letter: I
Question
I'm in java one and need help with this code. please follow the directions given and test your program to make sure it works as it is required. I will apreciate your help. thank you.please use the given code as it is just fill the missing information to complete the program. thank you
here is the code
cp ~lkoperski/1404_Lab/Assignments/TicTacToe.java .
Programming Concepts
• 2-D Arrays
Assignment Description
Write a program that simulates a tic-tac-toe game.
You may copy the partially completed program from my directory into yours. Issue the following command:
cp ~lkoperski/1404_Lab/Assignments/TicTacToe.java .
There will be a total of four methods
o main() – Implements the main game logic
o moveAI() – Randomly marks a location for the AI
o printBoard() – Prints out the game board
o checkWinner() – Checks to see if 'X' or 'O' is the winner, or if the game is a tie
§? Thismethodreturns'X' if 'X' is the winner
§? Tismetho dreturns 'O' if 'O' is the winner
§? This method returns 'T' if the game is a tie
§? This method returns 'N' if the game is not finished
However, I will be implementing printBoard() and checkWinner().
You need to implement these two methods:
public static void main( String[] args )
o This method implements the game logic. o Print the board
o While the game is not finished:
§? Print the board
§? Get the location from the user and validate it in a loop
>>The location cannot be out of bounds
>>The location also cannot be already filled
§? Mark the position in the board with an 'X', according to the user's specified location
§? Print the board
§? Check to see if the game is finished. If it is, break out of the loop
§? Have the AI make a move
§? Print the board
o Print out the result of the game (if 'X' or 'O' wins, or if the game is a tie)
• public static void moveAI( char[][] board )
o This method is the AI. It will randomly mark a spot on the board for the computer, who is player 'O'.
o The location needs to be a random row between 0 and 2 (inclusive), and a random column between 0 and 2 (inclusive).
o If the random location is invalid (the location is not empty), then keep recalculating the random location. This will need to be done in a loop.
o Mark the position in the board with an 'O', based on the random row and column
Assignment Suggestions
When you initially create a char array, it will initialize every value to the int value 0. You should then manually initialize every element in the array to a space:
So, to check to see if a spot in the board is empty, then check to see if that spot is equal to a space: ' '. As you play the game, the board will start to look like this:
User input is underlined
''
''
''
''
''
''
''
''
''
'X'
''
''
''
'O'
''
'X'
'O'
''
output Example
user@loki:~$ java TicTacToe
X's turn!
Enter the row and column, separated by spaces: -1 0
Enter the row and column, separated by spaces: 43 19
Enter the row and column, separated by spaces: 0 0
O's turn!
X's turn!
Enter the row and column, separated by spaces: 1 1
O's turn!
X's turn!
Enter the row and column, separated by spaces: 2 2
Enter the row and column, separated by spaces: 2 0
O's turn!
O wins!
''
''
''
''
''
''
''
''
''
1 import java.util.Random; 2 import java.util.Scanner; 3 public class TicTacToe 4 5 public static void main (String[1 args) 7 Scanner in -new Scanner( System.in); char[][] board = new char [ ] [ ]; // Initialize the board to spaces // Print the game board //Keep playing while the game isn't finished 10 12 13 14 15 16 17 18 19 20 21 /Get the location from the user and validate it // Mark the position in the board according to the user's specified location // Print the board after the user plays //Check to see if the game is finished. If it is, break out of the loop /Have the AI make a move // Print the board after the AI plays 23 24 25 26 27 28 29 30 31 32 33 /x 34 Makes a move for the AI, and marks the board with an '0' 35 36 37 38 39 40 41 42 43 /I Check to see who the winner is //If the winner is 'X' or '0',print that, otherwise, it is a tie * @param boardThe game board public static void moveAIchar [][] board) // Validate that the random location generated is valid. // Keep recalculating the location if the one generated is not /7 an empty space //Be sure to mark the position in the board with an '0 45Explanation / Answer
import java.applet.Applet; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.io.PrintStream; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; public class GameApplet extends Applet implements MouseListener, ActionListener, WindowListener { JFrame f; int flag = 2; int n; int m; int i = 0; static int bug = 0; char[] ch = new char[9]; JButton first; JButton second; String s1 = ""; public GameApplet() { this.f = new JFrame("Tic Tac Toe"); this.first = new JButton("CLEAR"); this.second = new JButton("EXIT"); this.f.add(this.first); this.f.add(this.second); this.f.addWindowListener(this); this.f.getContentPane().setBackground(Color.BLUE); this.f.setLayout(null); this.f.setVisible(true); this.f.setSize(800, 600); this.first.setBounds(650, 50, 90, 60); this.second.setBounds(650, 250, 90, 60); this.f.addMouseListener(this); for (this.i = 0; this.i < 9; this.i += 1) this.ch[this.i] = 'B'; this.first.addActionListener(this); this.second.addActionListener(this); String message = "Please click on the frame !!!!! to start the game "; JOptionPane pane = new JOptionPane(message); JDialog dialog = pane.createDialog(new JFrame(), "Dilaog"); dialog.show(); Graphics g = this.f.getGraphics(); g.drawLine(200, 0, 200, 600); g.drawLine(400, 0, 400, 600); g.drawLine(0, 200, 600, 200); g.drawLine(0, 400, 600, 400); g.drawLine(600, 0, 600, 600); } public void keyPressed(KeyEvent k) { System.out.print(""); } public void keyTyped(KeyEvent k) { this.s1 += k.getKeyChar(); } public void keyReleased(KeyEvent k) { System.out.print(""); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == this.first) { this.f.setVisible(false); bug = 0; new GameApplet(); } if (ae.getSource() == this.second) { System.exit(0); } } public void windowClosing(WindowEvent de) { System.exit(0); } public void windowOpened(WindowEvent de) { } public void windowClosed(WindowEvent de) { } public void windowActivated(WindowEvent de) { } public void windowDeactivated(WindowEvent de) { } public void windowIconified(WindowEvent de) { } public void windowDeiconified(WindowEvent de) { } public void mouseClicked(MouseEvent e) { Graphics2D g2; Graphics g = this.f.getGraphics(); g.drawLine(200, 0, 200, 600); g.drawLine(400, 0, 400, 600); g.drawLine(0, 200, 600, 200); g.drawLine(0, 400, 600, 400); g.drawLine(600, 0, 600, 600); this.flag -= 1; int x = e.getX(); int y = e.getY(); if (this.flag == 1) { if ((x < 200) && (y < 200)) { this.m = 0; this.n = 0; this.ch[0] = 'R'; } if ((x > 200) && (x < 400) && (y < 200)) { this.m = 200; this.n = 0; this.ch[1] = 'R'; } if ((x > 400) && (x < 600) && (y < 200)) { this.m = 400; this.n = 0; this.ch[2] = 'R'; } if ((x < 200) && (y > 200) && (y < 400)) { this.m = 0; this.n = 200; this.ch[3] = 'R'; } if ((x > 200) && (x < 400) && (y > 200) && (y < 400)) { this.m = 200; this.n = 200; this.ch[4] = 'R'; } if ((x > 400) && (x < 600) && (y > 200) && (y < 400)) { this.m = 400; this.n = 200; this.ch[5] = 'R'; } if ((x < 200) && (y > 400) && (y < 600)) { this.m = 0; this.n = 400; this.ch[6] = 'R'; } if ((x > 200) && (x < 400) && (y > 400) && (y < 600)) { this.m = 200; this.n = 400; this.ch[7] = 'R'; } if ((x > 400) && (x < 600) && (y > 400) && (y < 600)) { this.m = 400; this.n = 400; this.ch[8] = 'R'; } g.setColor(new Color(77, 176, 230)); g2 = (Graphics2D)g; g2.setStroke(new BasicStroke(10.0F)); g.drawOval(this.m + 10, this.n + 10, 159, 159); } if (this.flag == 0) { if ((x < 200) && (y < 200)) { this.m = 0; this.n = 20; this.ch[0] = 'P'; } if ((x > 200) && (x < 400) && (y < 200)) { this.m = 200; this.n = 20; this.ch[1] = 'P'; } if ((x > 400) && (x < 600) && (y < 200)) { this.m = 400; this.n = 20; this.ch[2] = 'P'; } if ((x < 200) && (y > 200) && (y < 400)) { this.m = 0; this.n = 200; this.ch[3] = 'P'; } if ((x > 200) && (x < 400) && (y > 200) && (y < 400)) { this.m = 200; this.n = 200; this.ch[4] = 'P'; } if ((x > 400) && (x < 600) && (y > 200) && (y < 400)) { this.m = 400; this.n = 200; this.ch[5] = 'P'; } if ((x < 200) && (y > 400) && (y < 600)) { this.m = 0; this.n = 400; this.ch[6] = 'P'; } if ((x > 200) && (x < 400) && (y > 400) && (y < 600)) { this.m = 200; this.n = 400; this.ch[7] = 'P'; } if ((x > 400) && (x < 600) && (y > 400) && (y < 600)) { this.m = 400; this.n = 400; this.ch[8] = 'P'; } g2 = (Graphics2D)g; g2.setStroke(new BasicStroke(10.0F)); g.setColor(new Color(77, 176, 230)); g.drawLine(this.m + 10, this.n + 13, this.m + 169, this.n + 164); g.drawLine(this.m + 169, this.n + 10, this.m + 10, this.n + 169); this.flag += 2; } for (this.i = 0; this.i < 3; this.i += 1) { if ((this.ch[this.i] != 'B') && (this.ch[(this.i + 3)] == this.ch[this.i]) && (this.ch[(this.i + 6)] == this.ch[this.i])) { new Board().win(); bug = 1; } } for (this.i = 0; this.i < 7; this.i += 1) { if (this.ch[this.i] != 'B') { if ((this.ch[this.i] == this.ch[(this.i + 1)]) && (this.ch[this.i] == this.ch[(this.i + 2)])) { new Board().win(); bug = 1; } this.i += 2; } else { this.i += 2; } } if ((this.ch[4] != 'B') && (( ((this.ch[0] == this.ch[4]) && (this.ch[4] == this.ch[8])) || ((this.ch[2] == this.ch[4]) && (this.ch[4] == this.ch[6]))))) { new Board().win(); bug = 1; } for (this.i = 0; (this.i < 9) && (this.ch[this.i] != 'B'); this.i += 1) { if (this.i == 8) { if (bug == 0) new Board().draw(); bug = 0; } } } public void mouseReleased(MouseEvent e) { System.out.print(""); } public void mouseEntered(MouseEvent e) { System.out.print(""); } public void mouseExited(MouseEvent e) { System.out.print(""); } public void mousePressed(MouseEvent e) { System.out.print(""); } public static void main(String[] args) { new GameApplet(); } } Board.java import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JOptionPane; class Board implements WindowListener { public void win() { String message = "Congratulations !!!!! You win "; JOptionPane pane = new JOptionPane(message); JDialog dialog = pane.createDialog(new JFrame(), "Dilaog"); dialog.show(); } public void draw() { String message = "Players the result is !!!!! STALEMATE "; JOptionPane pane = new JOptionPane(message); JDialog dialog = pane.createDialog(new JFrame(), "Dilaog"); dialog.show(); } public void windowClosing(WindowEvent we) { System.exit(0); } public void windowOpened(WindowEvent we) { } public void windowClosed(WindowEvent we) { } public void windowActivated(WindowEvent we) { } public void windowDeactivated(WindowEvent we) { } public void windowIconified(WindowEvent we) { } public void windowDeiconified(WindowEvent we) { } }Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.