Crenox

TicTacToeEvent

Jun 10th, 2014
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.45 KB | None | 0 0
  1. // By: Sammy Samkough
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6.  
  7. public class TicTacToeEvent implements ActionListener
  8. {
  9. private static final int WIDTH = 400;
  10. private static final int HEIGHT = 400;
  11.  
  12. JFrame frame;
  13. JPanel p;
  14. Font f;
  15. // Dimension d;
  16.  
  17. JButton b1, b2, b3, b4, b5, b6, b7, b8, b9;
  18.  
  19. int x = 0;
  20.  
  21. public TicTacToeEvent()
  22. {
  23. frame = new JFrame("TicTacToe");
  24. p = new JPanel();
  25. f = new Font("Arial", Font.BOLD, 30);
  26. // d = new Dimension(100, 100);
  27.  
  28. frame.setContentPane(p);
  29. p.setLayout(new GridLayout(3, 3));
  30.  
  31. b1 = new JButton(" ");
  32. b2 = new JButton(" ");
  33. b3 = new JButton(" ");
  34. b4 = new JButton(" ");
  35. b5 = new JButton(" ");
  36. b6 = new JButton(" ");
  37. b7 = new JButton(" ");
  38. b8 = new JButton(" ");
  39. b9 = new JButton(" ");
  40.  
  41. b1.setFont(f);
  42. b2.setFont(f);
  43. b3.setFont(f);
  44. b4.setFont(f);
  45. b5.setFont(f);
  46. b6.setFont(f);
  47. b7.setFont(f);
  48. b8.setFont(f);
  49. b9.setFont(f);
  50.  
  51. // With GridLayout, you only have to set one button to change the size and it'll do it to all of them.
  52. // b1.setPreferredSize(d);
  53.  
  54. p.add(b1);
  55. p.add(b2);
  56. p.add(b3);
  57. p.add(b4);
  58. p.add(b5);
  59. p.add(b6);
  60. p.add(b7);
  61. p.add(b8);
  62. p.add(b9);
  63.  
  64. b1.addActionListener(this);
  65. b2.addActionListener(this);
  66. b3.addActionListener(this);
  67. b4.addActionListener(this);
  68. b5.addActionListener(this);
  69. b6.addActionListener(this);
  70. b7.addActionListener(this);
  71. b8.addActionListener(this);
  72. b9.addActionListener(this);
  73.  
  74. frame.setSize(WIDTH, HEIGHT);
  75. frame.setLocationRelativeTo(null);
  76. frame.setResizable(false);
  77. // frame.setTitle("Sammy");
  78. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  79. frame.setVisible(true);
  80. }
  81.  
  82. public void actionPerformed(ActionEvent e)
  83. {
  84. // So that when you click the button twice, it stays the same
  85. if (!e.getActionCommand().equals(" "))
  86. {
  87. return;
  88. }
  89.  
  90. // To determine whether or not it's an X or an O
  91. if (e.getSource() == b1)
  92. {
  93. if (x == 0)
  94. {
  95. b1.setText("X");
  96. x += 1;
  97. }
  98. else if (x == 1)
  99. {
  100. b1.setText("O");
  101. x -= 1;
  102. }
  103. }
  104.  
  105. if (e.getSource() == b2)
  106. {
  107. if (x == 0)
  108. {
  109. b2.setText("X");
  110. x += 1;
  111. }
  112. else if (x == 1)
  113. {
  114. b2.setText("O");
  115. x -= 1;
  116. }
  117. }
  118.  
  119. if (e.getSource() == b3)
  120. {
  121. if (x == 0)
  122. {
  123. b3.setText("X");
  124. x += 1;
  125. }
  126. else if (x == 1)
  127. {
  128. b3.setText("O");
  129. x -= 1;
  130. }
  131. }
  132.  
  133. if (e.getSource() == b4)
  134. {
  135. if (x == 0)
  136. {
  137. b4.setText("X");
  138. x += 1;
  139. }
  140. else if (x == 1)
  141. {
  142. b4.setText("O");
  143. x -= 1;
  144. }
  145. }
  146.  
  147. if (e.getSource() == b5)
  148. {
  149. if (x == 0)
  150. {
  151. b5.setText("X");
  152. x += 1;
  153. }
  154. else if (x == 1)
  155. {
  156. b5.setText("O");
  157. x -= 1;
  158. }
  159. }
  160.  
  161. if (e.getSource() == b6)
  162. {
  163. if (x == 0)
  164. {
  165. b6.setText("X");
  166. x += 1;
  167. }
  168. else if (x == 1)
  169. {
  170. b6.setText("O");
  171. x -= 1;
  172. }
  173. }
  174.  
  175. if (e.getSource() == b7)
  176. {
  177. if (x == 0)
  178. {
  179. b7.setText("X");
  180. x += 1;
  181. }
  182. else if (x == 1)
  183. {
  184. b7.setText("O");
  185. x -= 1;
  186. }
  187. }
  188.  
  189. if (e.getSource() == b8)
  190. {
  191. if (x == 0)
  192. {
  193. b8.setText("X");
  194. x += 1;
  195. }
  196. else if (x == 1)
  197. {
  198. b8.setText("O");
  199. x -= 1;
  200. }
  201. }
  202.  
  203. if (e.getSource() == b9)
  204. {
  205. if (x == 0)
  206. {
  207. b9.setText("X");
  208. x += 1;
  209. }
  210. else if (x == 1)
  211. {
  212. b9.setText("O");
  213. x -= 1;
  214. }
  215. }
  216.  
  217. // If X has won
  218. // Horizontal
  219. if (b1.getText().equals("X") && b2.getText().equals("X") && b3.getText().equals("X"))
  220. {
  221. JOptionPane.showMessageDialog(null, "X has won!");
  222. System.exit(0);
  223. }
  224.  
  225. if (b4.getText().equals("X") && b5.getText().equals("X") && b6.getText().equals("X"))
  226. {
  227. JOptionPane.showMessageDialog(null, "X has won!");
  228. System.exit(0);
  229. }
  230.  
  231. if (b7.getText().equals("X") && b8.getText().equals("X") && b9.getText().equals("X"))
  232. {
  233. JOptionPane.showMessageDialog(null, "X has won!");
  234. System.exit(0);
  235. }
  236.  
  237. // Vertical
  238. if (b1.getText().equals("X") && b4.getText().equals("X") && b7.getText().equals("X"))
  239. {
  240. JOptionPane.showMessageDialog(null, "X has won!");
  241. System.exit(0);
  242. }
  243.  
  244. if (b2.getText().equals("X") && b5.getText().equals("X") && b8.getText().equals("X"))
  245. {
  246. JOptionPane.showMessageDialog(null, "X has won!");
  247. System.exit(0);
  248. }
  249.  
  250. if (b3.getText().equals("X") && b6.getText().equals("X") && b9.getText().equals("X"))
  251. {
  252. JOptionPane.showMessageDialog(null, "X has won!");
  253. System.exit(0);
  254. }
  255.  
  256. // Diagnol
  257. if (b1.getText().equals("X") && b5.getText().equals("X") && b9.getText().equals("X"))
  258. {
  259. JOptionPane.showMessageDialog(null, "X has won!");
  260. System.exit(0);
  261. }
  262.  
  263. if (b3.getText().equals("X") && b5.getText().equals("X") && b7.getText().equals("X"))
  264. {
  265. JOptionPane.showMessageDialog(null, "X has won!");
  266. System.exit(0);
  267. }
  268.  
  269. // If O has won
  270. // Horizontal
  271. if (b1.getText().equals("O") && b2.getText().equals("O") && b3.getText().equals("O"))
  272. {
  273. JOptionPane.showMessageDialog(null, "O has won!");
  274. System.exit(0);
  275. }
  276.  
  277. if (b4.getText().equals("O") && b5.getText().equals("O") && b6.getText().equals("O"))
  278. {
  279. JOptionPane.showMessageDialog(null, "O has won!");
  280. System.exit(0);
  281. }
  282.  
  283. if (b7.getText().equals("O") && b8.getText().equals("O") && b9.getText().equals("O"))
  284. {
  285. JOptionPane.showMessageDialog(null, "O has won!");
  286. System.exit(0);
  287. }
  288.  
  289. // Vertical
  290. if (b1.getText().equals("O") && b4.getText().equals("O") && b7.getText().equals("O"))
  291. {
  292. JOptionPane.showMessageDialog(null, "O has won!");
  293. System.exit(0);
  294. }
  295.  
  296. if (b2.getText().equals("O") && b5.getText().equals("O") && b8.getText().equals("O"))
  297. {
  298. JOptionPane.showMessageDialog(null, "O has won!");
  299. System.exit(0);
  300. }
  301.  
  302. if (b3.getText().equals("O") && b6.getText().equals("O") && b9.getText().equals("O"))
  303. {
  304. JOptionPane.showMessageDialog(null, "O has won!");
  305. System.exit(0);
  306. }
  307.  
  308. // Diagnol
  309. if (b1.getText().equals("O") && b5.getText().equals("O") && b9.getText().equals("O"))
  310. {
  311. JOptionPane.showMessageDialog(null, "O has won!");
  312. System.exit(0);
  313. }
  314.  
  315. if (b3.getText().equals("O") && b5.getText().equals("O") && b7.getText().equals("O"))
  316. {
  317. JOptionPane.showMessageDialog(null, "O has won!");
  318. System.exit(0);
  319. }
  320.  
  321.  
  322. if (!b1.getText().equals(" ") && !b2.getText().equals(" ") && !b3.getText().equals(" ") && !b4.getText().equals(" ") &&
  323. !b5.getText().equals(" ") && !b6.getText().equals(" ") && !b7.getText().equals(" ") && !b8.getText().equals(" ") &&
  324. !b9.getText().equals(" "))
  325. {
  326. JOptionPane.showMessageDialog(null, "It looks like no one has won.");
  327. JOptionPane.showMessageDialog(null, "Game will close.");
  328. System.exit(0);
  329. }
  330.  
  331. }
  332. }
  333.  
  334. -------------------------------------------------------------------------------------------------------------------------------------
  335. // By: Sammy Samkough
  336.  
  337. public class TicTacToeEventTester
  338. {
  339. public static void main(String args[])
  340. {
  341. TicTacToeEvent t1 = new TicTacToeEvent();
  342. }
  343. }
Advertisement
Add Comment
Please, Sign In to add comment