Results 1 to 10 of 10
Thread: TicTacToe game
- 12-23-2010, 05:10 AM #1
TicTacToe game
Hi all,
I'm new to Java!
At the moment I'm trying to make a Dutch game called "Boter, Kaas, Eieren" (English: Tic Tac Toe) game in Java....
Java Code:public class Main { public static void main(String[] arg) { MyFrame mf = new MyFrame(); } }So far, it pretty works...Java Code:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyFrame extends JFrame implements ActionListener { private JButton b1,b2,b3; private JButton b4, b5,b6; private JButton b7,b8,b9; private int aantal; private String letter; private boolean winnen = false; private boolean setter = false; public MyFrame() { JPanel spel = new JPanel(); spel.setLayout(new GridLayout(3,3)); spel.setPreferredSize(new Dimension(300, 300)); add(spel); b1 = new JButton(""); spel.add(b1); b1.addActionListener(this); b2 = new JButton(""); spel.add(b2); b2.addActionListener(this); b3 = new JButton(""); spel.add(b3); b3.addActionListener(this); b4 = new JButton(""); spel.add(b4); b4.addActionListener(this); b5 = new JButton(""); spel.add(b5); b5.addActionListener(this); b6 = new JButton(""); spel.add(b6); b6.addActionListener(this); b7 = new JButton(""); spel.add(b7); b7.addActionListener(this); b8 = new JButton(""); spel.add(b8); b8.addActionListener(this); b9 = new JButton(""); spel.add(b9); b9.addActionListener(this); pack(); setTitle("Boter Kaas Eiren"); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent a) { aantal++; if(aantal%2==0) { letter="O"; } else { letter="X"; } JButton ingedrukteKnop = (JButton)a.getSource(); ingedrukteKnop.setText(letter); ingedrukteKnop.setEnabled(false); // Horizontaal if(b1.getText().equals(b2.getText()) && b2.getText().equals(b3.getText()) && !b1.getText().equals("")) { winnen = true; } else if(b4.getText().equals(b5.getText()) && b5.getText().equals(b6.getText()) && !b4.getText().equals("")) { winnen = true; } else if(b7.getText().equals(b8.getText())&& b8.getText().equals(b9.getText()) && !b7.getText().equals("")) { winnen = true; } // Verticaal if(b1.getText().equals(b4.getText()) && b4.getText().equals (b7.getText()) && !b1.getText().equals("")) { winnen = true; } else if(b2.getText().equals(b5.getText()) && b5.getText().equals( b8.getText()) && !b2.getText().equals( "")) { winnen = true; } else if(b3.getText().equals(b6.getText())&& b6.getText().equals( b9.getText()) && !b3.getText().equals("")) { winnen = true; } // Diagonaal if(b1.getText().equals(b5.getText()) && b5.getText().equals (b9.getText()) && !b1.getText().equals("")) { winnen = true; } else if(b3.getText().equals(b5.getText()) && b5.getText().equals( b7.getText()) && !b3.getText().equals("")) { winnen = true; } else { winnen = false; } // Result if(aantal==9) { if(!winnen) { JOptionPane.showMessageDialog(null, "Draw!"); setter = true; aantal = 0; } else { JOptionPane.showMessageDialog(null, letter + " Wins!"); setter = true; aantal = 0; } } // Setter if(setter) { setter = false; b1.setText(""); b1.setEnabled(true); b2.setText(""); b2.setEnabled(true); b3.setText(""); b3.setEnabled(true); b4.setText(""); b4.setEnabled(true); b5.setText(""); b5.setEnabled(true); b6.setText(""); b6.setEnabled(true); b7.setText(""); b7.setEnabled(true); b8.setText(""); b8.setEnabled(true); b9.setText(""); b9.setEnabled(true); } } }
But the problem is, the Result (show draw or win, and then clear all the buttons) will only come after 9 attempts.
How can I make the Result shown directly after the person has 3 same "X" or "O" in a row? And btw is this game scripted as it should?
Any help is welcome!
Thx!
- 12-23-2010, 01:54 PM #2
Step through your program with a debugger, or add some print statements to figure out what's going on.
Hint- What is the value of your winnen variable each time? Why? When is it set to that value?
- 12-23-2010, 04:15 PM #3
- 12-23-2010, 04:24 PM #4
- 12-23-2010, 04:27 PM #5
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 11,405
- Blog Entries
- 7
- Rep Power
- 17
When people rob a bank they get a penalty; when banks rob people they get a bonus.
- 12-23-2010, 05:06 PM #6
- 12-23-2010, 05:11 PM #7
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 11,405
- Blog Entries
- 7
- Rep Power
- 17
I'm new to Java...
Could you advice me a Java debugger software?[/QUOTE]
System.out.println( ... ) is the perfect poor man's debugger. Sprinkle those print statement all over your code and print out every value that you suspect to be wrong or interesting or whatever. It really helps, doesn't cost anything and it's easy to use.
kind regards,
JosWhen people rob a bank they get a penalty; when banks rob people they get a bonus.
- 12-23-2010, 05:12 PM #8
- 12-23-2010, 05:26 PM #9
- Join Date
- Sep 2008
- Location
- Voorschoten, the Netherlands
- Posts
- 11,405
- Blog Entries
- 7
- Rep Power
- 17
- 12-23-2010, 05:49 PM #10
Similar Threads
-
Tictactoe game
By Fowler in forum New To JavaReplies: 11Last Post: 10-31-2010, 09:55 PM -
I need feedback on my TicTacToe game
By kiregad in forum New To JavaReplies: 4Last Post: 03-21-2010, 10:09 PM -
Help with tictactoe
By ximenaacucr in forum New To JavaReplies: 3Last Post: 09-16-2009, 08:30 PM -
TicTacToe Game
By Ebtihal in forum New To JavaReplies: 0Last Post: 01-09-2008, 11:01 AM -
TicTacToe
By Joe3161 in forum New To JavaReplies: 4Last Post: 11-25-2007, 06:47 PM


LinkBack URL
About LinkBacks
Reply With Quote

Bookmarks