import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class tictac2b1 implements ActionListener {
/*Instance Variables*/
private int[][] winCombinations = new int[][] {
{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, //horizontal wins
{0, 3, 6}, {1, 4, 7}, {2, 5, 8}, //virticle wins
{0, 4, 8}, {2, 4, 6} //diagonal wins
};
private JFrame window = new JFrame("Tic-Tac-Toe");
private JButton buttons[] = new JButton[9];
private int count = 0;
private String letter = "";
private boolean win = false;
public tictac2b1(){
/*Create Window*/
window.setSize(300,300);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(new GridLayout(3,3));
/*Add Buttons To The Window*/
for(int i=0; i<=8; i++){
buttons[i] = new JButton();
window.add(buttons[i]);
buttons[i].addActionListener(this);
}
/*Make The Window Visible*/
window.setVisible(true);
}
/**
When an object is clicked, perform an action.
@param a action event object
*/
public void actionPerformed(ActionEvent a) {
count++;
/*Calculate whose turn it is*/
if(count % 2 == 0){
letter = "1";
} else {
letter = "2";
}
/*Write the letter to the button and deactivate it*/
JButton pressedButton = (JButton)a.getSource();
pressedButton.setText(letter);
pressedButton.setEnabled(false);
/*Determine who won*/
for(int i=0; i<=7; i++){
if( buttons[winCombinations[i][0]].getText().equals(buttons[winCombinations[i][1]].getText()) &&
buttons[winCombinations[i][1]].getText().equals(buttons[winCombinations[i][2]].getText()) &&
buttons[winCombinations[i][0]].getText() != ""){
win = true;
}
}
/*Show a dialog when game is over*/
if(win == true){
JOptionPane.showMessageDialog(null, letter + " wins the game!");
System.exit(0);
} else if(count == 9 && win == false){
JOptionPane.showMessageDialog(null, "The game was tie!");
System.exit(0);
}
}
public static void main(String[] args){
tictac2b1 starter = new tictac2b1();
}
}
marcel25
0
Newbie Poster
Recommended Answers
Jump to Postwhat have you tried so far, what does it do, what is it supposed to do?
looks to me like your teacher gave you that code and said:
'put an undo and hint option into the following code'
All 3 Replies
stultuske
1,116
Posting Maven
Featured Poster
marcel25
0
Newbie Poster
BestJewSinceJC
700
Posting Maven
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.