Tic - Tac - Toe Application

Ghost Ghost is offline Offline Feb 27th, 2005, 4:40 am |
-1
The source of my COPYRIGHTED tictactoe java game. It shows how to use multiple classes, methods, etc.
Quick reply to this message  
Java Syntax
  1. /*************************
  2.  * Copyright 2004 CRD *
  3.  * Author Ian Cinnamon *
  4.  * Version Number: 1.0 *
  5.  * Tic-Tac-Toe Game *
  6.  *
  7.  ************************/
  8.  
  9.  
  10. import javax.swing.*;
  11. import java.awt.*;
  12. import java.awt.event.*;
  13. import java.math.*;
  14.  
  15.  
  16. /*Layout of Tic Tac Toe Board:
  17.   1 2 3 _|_|_
  18.   4 5 6 _|_|_
  19.   7 8 9 | |
  20. */
  21.  
  22.  
  23. /*Artifical Intelligence Class
  24.   Artifical Intelligence Class
  25.   Artifical Intelligence Class
  26.   Artifical Intelligence Class
  27.   Artifical Intelligence Class*/
  28.  
  29. class TicTacToeAI extends JFrame implements ActionListener
  30. {
  31. public String playerX = JOptionPane.showInputDialog(
  32. "Computer edition. Enter player X's name.");
  33. public String playerO = "Computer";
  34.  
  35. public float player = Math.round(Math.random() * 10);
  36. public String play = (playerX + "'s turn.");
  37. public String one1 = " ";
  38. public String two2 = " ";
  39. public String three3 = " ";
  40. public String four4 = " ";
  41. public String five5 = " ";
  42. public String six6 = " ";
  43. public String seven7 = " ";
  44. public String eight8 = " ";
  45. public String nine9 = " ";
  46. public boolean xTurn = true;
  47. public double cwins = 0;
  48. public double hwins = 0;
  49. public double ties = 0;
  50.  
  51. JLabel lbl = new JLabel("Cinnamon's Tic-Tac-Toe");
  52. JButton one = new JButton(one1);
  53. JButton two = new JButton(two2);
  54. JButton three = new JButton(three3);
  55. JButton four = new JButton(four4);
  56. JButton five = new JButton(five5);
  57. JButton six = new JButton(six6);
  58. JButton seven = new JButton(seven7);
  59. JButton eight = new JButton(eight8);
  60. JButton nine = new JButton(nine9);
  61. JLabel status = new JLabel(play);
  62. JButton redo = new JButton("Restart Game");
  63. JButton help = new JButton("Who's who?");
  64. JButton exit = new JButton("Exit");
  65. JButton multi = new JButton("Multi-Player");
  66. JButton single = new JButton("Single-Player");
  67. JLabel wins = new JLabel("Wins: Computer (O): "+cwins+". Human (X): "+hwins+". Ties: "+ties+".");
  68.  
  69. public TicTacToeAI() {
  70. super("Tic-Tac-Toe");
  71. setSize(800, 725);
  72. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  73. setVisible(true);
  74.  
  75. Container contentArea = getContentPane();
  76. GridBagLayout flowManager = new GridBagLayout();
  77. GridBagConstraints pos = new GridBagConstraints();
  78. contentArea.setLayout(flowManager);
  79.  
  80. getContentPane().setBackground(Color.RED);
  81.  
  82. redo.setFont(new Font("Arial", Font.PLAIN, 12));
  83. help.setFont(new Font("Arial", Font.PLAIN, 12));
  84. exit.setFont(new Font("Arial", Font.PLAIN, 12));
  85. multi.setFont(new Font("Arial", Font.PLAIN, 12));
  86. single.setFont(new Font("Arial", Font.PLAIN, 12));
  87. one.setFont(new Font("Serif", Font.BOLD, 62));
  88. two.setFont(new Font("Serif", Font.BOLD, 62));
  89. three.setFont(new Font("Serif", Font.BOLD, 62));
  90. four.setFont(new Font("Serif", Font.BOLD, 62));
  91. five.setFont(new Font("Serif", Font.BOLD, 62));
  92. six.setFont(new Font("Serif", Font.BOLD, 62));
  93. seven.setFont(new Font("Serif", Font.BOLD, 62));
  94. eight.setFont(new Font("Serif", Font.BOLD, 62));
  95. nine.setFont(new Font("Serif", Font.BOLD, 62));
  96. status.setFont(new Font("Times New Roman", Font.ITALIC + Font.BOLD, 24));
  97. lbl.setFont(new Font("Cooper Black", Font.PLAIN, 45));
  98. wins.setFont(new Font("Times New Roman", Font.PLAIN, 18));
  99.  
  100.  
  101. one.addActionListener(this);
  102. two.addActionListener(this);
  103. three.addActionListener(this);
  104. four.addActionListener(this);
  105. five.addActionListener(this);
  106. six.addActionListener(this);
  107. seven.addActionListener(this);
  108. eight.addActionListener(this);
  109. nine.addActionListener(this);
  110. redo.addActionListener(this);
  111. help.addActionListener(this);
  112. exit.addActionListener(this);
  113. multi.addActionListener(this);
  114. single.addActionListener(this);
  115.  
  116. single.setEnabled(false);
  117.  
  118. if (! (player >= 5)) {
  119. play = "O's turn.";
  120. xTurn = false;
  121. }
  122. else {
  123. play = "X's turn.";
  124. xTurn = true;
  125. }
  126.  
  127. pos.gridx=1;
  128. pos.gridy=0;
  129. contentArea.add(lbl, pos);
  130.  
  131. pos.gridx = 0;
  132. pos.gridy = 1;
  133. contentArea.add(one, pos);
  134.  
  135. pos.gridx = 1;
  136. pos.gridy = 1;
  137. contentArea.add(two, pos);
  138.  
  139. pos.gridx = 2;
  140. pos.gridy = 1;
  141. contentArea.add(three, pos);
  142.  
  143. pos.gridx = 0;
  144. pos.gridy = 2;
  145. contentArea.add(four, pos);
  146.  
  147. pos.gridx = 1;
  148. pos.gridy = 2;
  149. contentArea.add(five, pos);
  150.  
  151. pos.gridx = 2;
  152. pos.gridy = 2;
  153. contentArea.add(six, pos);
  154.  
  155. pos.gridx = 0;
  156. pos.gridy = 3;
  157. contentArea.add(seven, pos);
  158.  
  159. pos.gridx = 1;
  160. pos.gridy = 3;
  161. contentArea.add(eight, pos);
  162.  
  163. pos.gridx = 2;
  164. pos.gridy = 3;
  165. contentArea.add(nine, pos);
  166.  
  167. pos.gridx = 1;
  168. pos.gridy = 4;
  169. contentArea.add(status, pos);
  170.  
  171. pos.gridx = 1;
  172. pos.gridy = 5;
  173. contentArea.add(redo, pos);
  174.  
  175. pos.gridx = 1;
  176. pos.gridy = 6;
  177. contentArea.add(help, pos);
  178.  
  179. pos.gridx = 1;
  180. pos.gridy = 7;
  181. contentArea.add(exit, pos);
  182.  
  183. pos.gridx = 1;
  184. pos.gridy = 8;
  185. contentArea.add(multi, pos);
  186.  
  187. pos.gridx = 1;
  188. pos.gridy = 9;
  189. contentArea.add(single, pos);
  190.  
  191. pos.gridx = 1;
  192. pos.gridy = 11;
  193. contentArea.add(wins, pos);
  194.  
  195. setContentPane(contentArea);
  196. Checker();
  197. }
  198.  
  199. public void Checker() {
  200. if ( (one.getText() == "X" && two.getText() == "X" &&
  201. three.getText() == "X") ||
  202. (four.getText() == "X" && five.getText() == "X" && six.getText() == "X") ||
  203. (seven.getText() == "X" && eight.getText() == "X" &&
  204. nine.getText() == "X") ||
  205. (one.getText() == "X" && four.getText() == "X" &&
  206. seven.getText() == "X") ||
  207. (two.getText() == "X" && five.getText() == "X" &&
  208. eight.getText() == "X") ||
  209. (three.getText() == "X" && six.getText() == "X" &&
  210. nine.getText() == "X") ||
  211. (one.getText() == "X" && five.getText() == "X" && nine.getText() == "X") ||
  212. (three.getText() == "X" && five.getText() == "X" &&
  213. seven.getText() == "X")) {
  214. hwins+=0.5;
  215.  
  216.  
  217. status.setText("X (" + playerX + ") wins!!!");
  218. one.setEnabled(false);
  219. two.setEnabled(false);
  220. three.setEnabled(false);
  221. four.setEnabled(false);
  222. five.setEnabled(false);
  223. six.setEnabled(false);
  224. seven.setEnabled(false);
  225. eight.setEnabled(false);
  226. nine.setEnabled(false);
  227. }
  228. else if ( (one.getText() == "O" && two.getText() == "O" &&
  229. three.getText() == "O") ||
  230. (four.getText() == "O" && five.getText() == "O" &&
  231. six.getText() == "O") ||
  232. (seven.getText() == "O" && eight.getText() == "O" &&
  233. nine.getText() == "O") ||
  234. (one.getText() == "O" && four.getText() == "O" &&
  235. seven.getText() == "O") ||
  236. (two.getText() == "O" && five.getText() == "O" &&
  237. eight.getText() == "O") ||
  238. (three.getText() == "O" && six.getText() == "O" &&
  239. nine.getText() == "O") ||
  240. (one.getText() == "O" && five.getText() == "O" &&
  241. nine.getText() == "O") ||
  242. (three.getText() == "O" && five.getText() == "O" &&
  243. seven.getText() == "O")) {
  244. cwins+=0.5;
  245.  
  246.  
  247. status.setText("O (" + playerO + ") wins!!!");
  248. one.setEnabled(false);
  249. two.setEnabled(false);
  250. three.setEnabled(false);
  251. four.setEnabled(false);
  252. five.setEnabled(false);
  253. six.setEnabled(false);
  254. seven.setEnabled(false);
  255. eight.setEnabled(false);
  256. nine.setEnabled(false);
  257. }
  258.  
  259. else if(one.getText()!=" " && two.getText()!=" " && three.getText()!=" " &&
  260. four.getText()!=" " && five.getText()!=" " && six.getText()!=" " &&
  261. seven.getText()!=" " && eight.getText()!=" " && nine.getText()!=" ")
  262. {
  263. ties=(ties+0.5);
  264.  
  265.  
  266. status.setText("Cat's Game!");
  267. one.setEnabled(false);
  268. two.setEnabled(false);
  269. three.setEnabled(false);
  270. four.setEnabled(false);
  271. five.setEnabled(false);
  272. six.setEnabled(false);
  273. seven.setEnabled(false);
  274. eight.setEnabled(false);
  275. nine.setEnabled(false);
  276. }
  277.  
  278. }
  279.  
  280. public void AI() {
  281. //AI Part of the Program
  282.  
  283. double r = Math.random() * 10;
  284. int ran = (int) Math.ceil(r);
  285. int rand = ran - 1;
  286.  
  287.  
  288.  
  289.  
  290. //Offense move if statements
  291.  
  292. if((one.getText()=="O")&&(five.getText() == "O")&&(nine.getText()==" ")) {
  293. nine.setText("O");
  294. status.setText(playerX + "'s turn.");
  295. Checker();
  296. if (xTurn)
  297. xTurn = false;
  298. else if (! (xTurn))
  299. xTurn = true;
  300.  
  301. }
  302. else if((three.getText()=="O")&&(five.getText() == "O")&&(seven.getText()==" ")) {
  303. seven.setText("O");
  304. status.setText(playerX + "'s turn.");
  305. Checker();
  306. if (xTurn)
  307. xTurn = false;
  308. else if (! (xTurn))
  309. xTurn = true;
  310.  
  311. }
  312. else if((seven.getText()=="O")&&(five.getText() == "O")&&(three.getText()==" ")) {
  313. three.setText("O");
  314. status.setText(playerX + "'s turn.");
  315. Checker();
  316. if (xTurn)
  317. xTurn = false;
  318. else if (! (xTurn))
  319. xTurn = true;
  320.  
  321. }
  322. else if((nine.getText()=="O")&&(five.getText() == "O")&&(one.getText()==" ")) {
  323. one.setText("O");
  324. status.setText(playerX + "'s turn.");
  325. Checker();
  326. if (xTurn)
  327. xTurn = false;
  328. else if (! (xTurn))
  329. xTurn = true;
  330.  
  331. }
  332.  
  333.  
  334.  
  335.  
  336.  
  337. else if((one.getText()=="O")&&(nine.getText() == "O")&&(five.getText()==" ")) {
  338. five.setText("O");
  339. status.setText(playerX + "'s turn.");
  340. Checker();
  341. if (xTurn)
  342. xTurn = false;
  343. else if (! (xTurn))
  344. xTurn = true;
  345.  
  346. }
  347. else if((three.getText()=="O")&&(seven.getText() == "O")&&(five.getText()==" ")) {
  348. five.setText("O");
  349. status.setText(playerX + "'s turn.");
  350. Checker();
  351. if (xTurn)
  352. xTurn = false;
  353. else if (! (xTurn))
  354. xTurn = true;
  355.  
  356. }
  357. else if((six.getText()=="O")&&(nine.getText() == "O")&&(three.getText()==" ")) {
  358. three.setText("O");
  359. status.setText(playerX + "'s turn.");
  360. Checker();
  361. if (xTurn)
  362. xTurn = false;
  363. else if (! (xTurn))
  364. xTurn = true;
  365.  
  366. }
  367. else if((three.getText()=="O")&&(six.getText() == "O")&&(nine.getText()==" ")) {
  368. nine.setText("O");
  369. status.setText(playerX + "'s turn.");
  370. Checker();
  371. if (xTurn)
  372. xTurn = false;
  373. else if (! (xTurn))
  374. xTurn = true;
  375.  
  376. }
  377. else if((five.getText()=="O")&&(eight.getText() == "O")&&(two.getText()==" ")) {
  378. two.setText("O");
  379. status.setText(playerX + "'s turn.");
  380. Checker();
  381. if (xTurn)
  382. xTurn = false;
  383. else if (! (xTurn))
  384. xTurn = true;
  385.  
  386. }
  387. else if((two.getText()=="O")&&(five.getText() == "O")&&(eight.getText()==" ")) {
  388. eight.setText("O");
  389. status.setText(playerX + "'s turn.");
  390. Checker();
  391. if (xTurn)
  392. xTurn = false;
  393. else if (! (xTurn))
  394. xTurn = true;
  395.  
  396. }
  397. else if((four.getText()=="O")&&(seven.getText() == "O")&&(one.getText()==" ")) {
  398. one.setText("O");
  399. status.setText(playerX + "'s turn.");
  400. Checker();
  401. if (xTurn)
  402. xTurn = false;
  403. else if (! (xTurn))
  404. xTurn = true;
  405.  
  406. }
  407. else if((one.getText()=="O")&&(four.getText() == "O")&&(seven.getText()==" ")) {
  408. seven.setText("O");
  409. status.setText(playerX + "'s turn.");
  410. Checker();
  411. if (xTurn)
  412. xTurn = false;
  413. else if (! (xTurn))
  414. xTurn = true;
  415.  
  416. }
  417. else if((one.getText()=="O")&&(two.getText() == "O")&&(three.getText()==" ")) {
  418. three.setText("O");
  419. status.setText(playerX + "'s turn.");
  420. Checker();
  421. if (xTurn)
  422. xTurn = false;
  423. else if (! (xTurn))
  424. xTurn = true;
  425.  
  426. }
  427. else if((two.getText()=="O")&&(three.getText() == "O")&&(one.getText()==" ")) {
  428. one.setText("O");
  429. status.setText(playerX + "'s turn.");
  430. Checker();
  431. if (xTurn)
  432. xTurn = false;
  433. else if (! (xTurn))
  434. xTurn = true;
  435.  
  436. }
  437. else if((four.getText()=="O")&&(five.getText() == "O")&&(six.getText()==" ")) {
  438. six.setText("O");
  439. status.setText(playerX + "'s turn.");
  440. Checker();
  441. if (xTurn)
  442. xTurn = false;
  443. else if (! (xTurn))
  444. xTurn = true;
  445.  
  446. }
  447. else if((five.getText()=="O")&&(six.getText() == "O")&&(four.getText()==" ")) {
  448. four.setText("O");
  449. status.setText(playerX + "'s turn.");
  450. Checker();
  451. if (xTurn)
  452. xTurn = false;
  453. else if (! (xTurn))
  454. xTurn = true;
  455.  
  456. }
  457. else if((seven.getText()=="O")&&(eight.getText() == "O")&&(nine.getText()==" ")) {
  458. nine.setText("O");
  459. status.setText(playerX + "'s turn.");
  460. Checker();
  461. if (xTurn)
  462. xTurn = false;
  463. else if (! (xTurn))
  464. xTurn = true;
  465.  
  466. }
  467. else if((eight.getText()=="O")&&(nine.getText() == "O")&&(seven.getText()==" ")) {
  468. seven.setText("O");
  469. status.setText(playerX + "'s turn.");
  470. Checker();
  471. if (xTurn)
  472. xTurn = false;
  473. else if (! (xTurn))
  474. xTurn = true;
  475.  
  476. }
  477.  
  478.  
  479. else if((one.getText()=="O")&&(nine.getText() == "O")&&(five.getText()==" ")) {
  480. five.setText("O");
  481. status.setText(playerX + "'s turn.");
  482. Checker();
  483. if (xTurn)
  484. xTurn = false;
  485. else if (! (xTurn))
  486. xTurn = true;
  487.  
  488. }
  489. else if((three.getText()=="O")&&(seven.getText() == "O")&&(five.getText()==" ")) {
  490. five.setText("O");
  491. status.setText(playerX + "'s turn.");
  492. Checker();
  493. if (xTurn)
  494. xTurn = false;
  495. else if (! (xTurn))
  496. xTurn = true;
  497.  
  498. }
  499. else if((six.getText()=="O")&&(nine.getText() == "O")&&(three.getText()==" ")) {
  500. three.setText("O");
  501. status.setText(playerX + "'s turn.");
  502. Checker();
  503. if (xTurn)
  504. xTurn = false;
  505. else if (! (xTurn))
  506. xTurn = true;
  507.  
  508. }
  509. else if((three.getText()=="O")&&(six.getText() == "O")&&(nine.getText()==" ")) {
  510. nine.setText("O");
  511. status.setText(playerX + "'s turn.");
  512. Checker();
  513. if (xTurn)
  514. xTurn = false;
  515. else if (! (xTurn))
  516. xTurn = true;
  517.  
  518. }
  519. else if((five.getText()=="O")&&(eight.getText() == "O")&&(two.getText()==" ")) {
  520. two.setText("O");
  521. status.setText(playerX + "'s turn.");
  522. Checker();
  523. if (xTurn)
  524. xTurn = false;
  525. else if (! (xTurn))
  526. xTurn = true;
  527.  
  528. }
  529. else if((two.getText()=="O")&&(five.getText() == "O")&&(eight.getText()==" ")) {
  530. eight.setText("O");
  531. status.setText(playerX + "'s turn.");
  532. Checker();
  533. if (xTurn)
  534. xTurn = false;
  535. else if (! (xTurn))
  536. xTurn = true;
  537.  
  538. }
  539. else if((four.getText()=="O")&&(seven.getText() == "O")&&(one.getText()==" ")) {
  540. one.setText("O");
  541. status.setText(playerX + "'s turn.");
  542. Checker();
  543. if (xTurn)
  544. xTurn = false;
  545. else if (! (xTurn))
  546. xTurn = true;
  547.  
  548. }
  549. else if((one.getText()=="O")&&(four.getText() == "O")&&(seven.getText()==" ")) {
  550. seven.setText("O");
  551. status.setText(playerX + "'s turn.");
  552. Checker();
  553. if (xTurn)
  554. xTurn = false;
  555. else if (! (xTurn))
  556. xTurn = true;
  557.  
  558. }
  559. else if((one.getText()=="O")&&(two.getText() == "O")&&(three.getText()==" ")) {
  560. three.setText("O");
  561. status.setText(playerX + "'s turn.");
  562. Checker();
  563. if (xTurn)
  564. xTurn = false;
  565. else if (! (xTurn))
  566. xTurn = true;
  567.  
  568. }
  569. else if((two.getText()=="O")&&(three.getText() == "O")&&(one.getText()==" ")) {
  570. one.setText("O");
  571. status.setText(playerX + "'s turn.");
  572. Checker();
  573. if (xTurn)
  574. xTurn = false;
  575. else if (! (xTurn))
  576. xTurn = true;
  577.  
  578. }
  579. else if((four.getText()=="O")&&(five.getText() == "O")&&(six.getText()==" ")) {
  580. six.setText("O");
  581. status.setText(playerX + "'s turn.");
  582. Checker();
  583. if (xTurn)
  584. xTurn = false;
  585. else if (! (xTurn))
  586. xTurn = true;
  587.  
  588. }
  589. else if((five.getText()=="O")&&(six.getText() == "O")&&(four.getText()==" ")) {
  590. four.setText("O");
  591. status.setText(playerX + "'s turn.");
  592. Checker();
  593. if (xTurn)
  594. xTurn = false;
  595. else if (! (xTurn))
  596. xTurn = true;
  597.  
  598. }
  599. else if((seven.getText()=="O")&&(eight.getText() == "O")&&(nine.getText()==" ")) {
  600. nine.setText("O");
  601. status.setText(playerX + "'s turn.");
  602. Checker();
  603. if (xTurn)
  604. xTurn = false;
  605. else if (! (xTurn))
  606. xTurn = true;
  607.  
  608. }
  609. else if((eight.getText()=="O")&&(nine.getText() == "O")&&(seven.getText()==" ")) {
  610. seven.setText("O");
  611. status.setText(playerX + "'s turn.");
  612. Checker();
  613. if (xTurn)
  614. xTurn = false;
  615. else if (! (xTurn))
  616. xTurn = true;
  617.  
  618. }
  619. else if((four.getText()=="O")&&(six.getText() == "O")&&(five.getText()==" ")) {
  620. five.setText("O");
  621. status.setText(playerX + "'s turn.");
  622. Checker();
  623. if (xTurn)
  624. xTurn = false;
  625. else if (! (xTurn))
  626. xTurn = true;
  627.  
  628. }
  629. else if((seven.getText()=="O")&&(nine.getText() == "O")&&(eight.getText()==" ")) {
  630. eight.setText("O");
  631. status.setText(playerX + "'s turn.");
  632. Checker();
  633. if (xTurn)
  634. xTurn = false;
  635. else if (! (xTurn))
  636. xTurn = true;
  637.  
  638. }
  639. else if((one.getText()=="O")&&(three.getText() == "O")&&(two.getText()==" ")) {
  640. two.setText("O");
  641. status.setText(playerX + "'s turn.");
  642. Checker();
  643. if (xTurn)
  644. xTurn = false;
  645. else if (! (xTurn))
  646. xTurn = true;
  647.  
  648. }
  649. else if((one.getText()=="O")&&(seven.getText() == "O")&&(four.getText()==" ")) {
  650. four.setText("O");
  651. status.setText(playerX + "'s turn.");
  652. Checker();
  653. if (xTurn)
  654. xTurn = false;
  655. else if (! (xTurn))
  656. xTurn = true;
  657.  
  658. }
  659. else if((two.getText()=="O")&&(eight.getText() == "O")&&(five.getText()==" ")) {
  660. five.setText("O");
  661. status.setText(playerX + "'s turn.");
  662. Checker();
  663. if (xTurn)
  664. xTurn = false;
  665. else if (! (xTurn))
  666. xTurn = true;
  667.  
  668. }
  669. else if((three.getText()=="O")&&(nine.getText() == "O")&&(six.getText()==" ")) {
  670. six.setText("O");
  671. status.setText(playerX + "'s turn.");
  672. Checker();
  673. if (xTurn)
  674. xTurn = false;
  675. else if (! (xTurn))
  676. xTurn = true;
  677.  
  678. }
  679. else if((seven.getText()=="O")&&(three.getText() == "O")&&(five.getText()==" ")) {
  680. five.setText("O");
  681. status.setText(playerX + "'s turn.");
  682. Checker();
  683. if (xTurn)
  684. xTurn = false;
  685. else if (! (xTurn))
  686. xTurn = true;
  687.  
  688. }
  689. else if((nine.getText()=="O")&&(one.getText() == "O")&&(five.getText()==" ")) {
  690. five.setText("O");
  691. status.setText(playerX + "'s turn.");
  692. Checker();
  693. if (xTurn)
  694. xTurn = false;
  695. else if (! (xTurn))
  696. xTurn = true;
  697.  
  698. }
  699. else if((four.getText()=="O")&&(five.getText() == "O")&&(six.getText()==" ")) {
  700. six.setText("O");
  701. status.setText(playerX + "'s turn.");
  702. Checker();
  703. if (xTurn)
  704. xTurn = false;
  705. else if (! (xTurn))
  706. xTurn = true;
  707.  
  708. }
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717. //Defensive move if statements
  718.  
  719.  
  720.  
  721.  
  722. else if((one.getText()=="X")&&(nine.getText() == "X")&&(five.getText()==" ")) {
  723. five.setText("O");
  724. status.setText(playerX + "'s turn.");
  725. Checker();
  726. if (xTurn)
  727. xTurn = false;
  728. else if (! (xTurn))
  729. xTurn = true;
  730.  
  731. }
  732. else if((three.getText()=="X")&&(seven.getText() == "X")&&(five.getText()==" ")) {
  733. five.setText("O");
  734. status.setText(playerX + "'s turn.");
  735. Checker();
  736. if (xTurn)
  737. xTurn = false;
  738. else if (! (xTurn))
  739. xTurn = true;
  740.  
  741. }
  742. else if((six.getText()=="X")&&(nine.getText() == "X")&&(three.getText()==" ")) {
  743. three.setText("O");
  744. status.setText(playerX + "'s turn.");
  745. Checker();
  746. if (xTurn)
  747. xTurn = false;
  748. else if (! (xTurn))
  749. xTurn = true;
  750.  
  751. }
  752. else if((three.getText()=="X")&&(six.getText() == "X")&&(nine.getText()==" ")) {
  753. nine.setText("O");
  754. status.setText(playerX + "'s turn.");
  755. Checker();
  756. if (xTurn)
  757. xTurn = false;
  758. else if (! (xTurn))
  759. xTurn = true;
  760.  
  761. }
  762. else if((five.getText()=="X")&&(eight.getText() == "X")&&(two.getText()==" ")) {
  763. two.setText("O");
  764. status.setText(playerX + "'s turn.");
  765. Checker();
  766. if (xTurn)
  767. xTurn = false;
  768. else if (! (xTurn))
  769. xTurn = true;
  770.  
  771. }
  772. else if((two.getText()=="X")&&(five.getText() == "X")&&(eight.getText()==" ")) {
  773. eight.setText("O");
  774. status.setText(playerX + "'s turn.");
  775. Checker();
  776. if (xTurn)
  777. xTurn = false;
  778. else if (! (xTurn))
  779. xTurn = true;
  780.  
  781. }
  782. else if((four.getText()=="X")&&(seven.getText() == "X")&&(one.getText()==" ")) {
  783. one.setText("O");
  784. status.setText(playerX + "'s turn.");
  785. Checker();
  786. if (xTurn)
  787. xTurn = false;
  788. else if (! (xTurn))
  789. xTurn = true;
  790.  
  791. }
  792. else if((five.getText()=="X")&&(eight.getText() == "X")&&(two.getText()==" ")) {
  793. two.setText("O");
  794. status.setText(playerX + "'s turn.");
  795. Checker();
  796. if (xTurn)
  797. xTurn = false;
  798. else if (! (xTurn))
  799. xTurn = true;
  800.  
  801. }
  802.  
  803. else if((one.getText()=="X")&&(four.getText() == "X")&&(seven.getText()==" ")) {
  804. seven.setText("O");
  805. status.setText(playerX + "'s turn.");
  806. Checker();
  807. if (xTurn)
  808. xTurn = false;
  809. else if (! (xTurn))
  810. xTurn = true;
  811.  
  812. }
  813. else if((one.getText()=="X")&&(two.getText() == "X")&&(three.getText()==" ")) {
  814. three.setText("O");
  815. status.setText(playerX + "'s turn.");
  816. Checker();
  817. if (xTurn)
  818. xTurn = false;
  819. else if (! (xTurn))
  820. xTurn = true;
  821.  
  822. }
  823. else if((two.getText()=="X")&&(three.getText() == "X")&&(one.getText()==" ")) {
  824. one.setText("O");
  825. status.setText(playerX + "'s turn.");
  826. Checker();
  827. if (xTurn)
  828. xTurn = false;
  829. else if (! (xTurn))
  830. xTurn = true;
  831.  
  832. }
  833. else if((four.getText()=="X")&&(five.getText() == "X")&&(six.getText()==" ")) {
  834. six.setText("O");
  835. status.setText(playerX + "'s turn.");
  836. Checker();
  837. if (xTurn)
  838. xTurn = false;
  839. else if (! (xTurn))
  840. xTurn = true;
  841.  
  842. }
  843. else if((five.getText()=="X")&&(six.getText() == "X")&&(four.getText()==" ")) {
  844. four.setText("O");
  845. status.setText(playerX + "'s turn.");
  846. Checker();
  847. if (xTurn)
  848. xTurn = false;
  849. else if (! (xTurn))
  850. xTurn = true;
  851.  
  852. }
  853. else if((seven.getText()=="X")&&(eight.getText() == "X")&&(nine.getText()==" ")) {
  854. nine.setText("O");
  855. status.setText(playerX + "'s turn.");
  856. Checker();
  857. if (xTurn)
  858. xTurn = false;
  859. else if (! (xTurn))
  860. xTurn = true;
  861.  
  862. }
  863. else if((eight.getText()=="X")&&(nine.getText() == "X")&&(seven.getText()==" ")) {
  864. seven.setText("O");
  865. status.setText(playerX + "'s turn.");
  866. Checker();
  867. if (xTurn)
  868. xTurn = false;
  869. else if (! (xTurn))
  870. xTurn = true;
  871.  
  872. }
  873. else if((one.getText()=="X")&&(five.getText() == "X")&&(nine.getText()==" ")) {
  874. nine.setText("O");
  875. status.setText(playerX + "'s turn.");
  876. Checker();
  877. if (xTurn)
  878. xTurn = false;
  879. else if (! (xTurn))
  880. xTurn = true;
  881.  
  882. }
  883. else if((three.getText()=="X")&&(five.getText() == "X")&&(seven.getText()==" ")) {
  884. seven.setText("O");
  885. status.setText(playerX + "'s turn.");
  886. Checker();
  887. if (xTurn)
  888. xTurn = false;
  889. else if (! (xTurn))
  890. xTurn = true;
  891.  
  892. }
  893. else if((seven.getText()=="X")&&(five.getText() == "X")&&(three.getText()==" ")) {
  894. three.setText("O");
  895. status.setText(playerX + "'s turn.");
  896. Checker();
  897. if (xTurn)
  898. xTurn = false;
  899. else if (! (xTurn))
  900. xTurn = true;
  901.  
  902. }
  903. else if((nine.getText()=="X")&&(five.getText() == "X")&&(one.getText()==" ")) {
  904. one.setText("O");
  905. status.setText(playerX + "'s turn.");
  906. Checker();
  907. if (xTurn)
  908. xTurn = false;
  909. else if (! (xTurn))
  910. xTurn = true;
  911.  
  912. }
  913.  
  914. else if((four.getText()=="X")&&(six.getText() == "X")&&(five.getText()==" ")) {
  915. five.setText("O");
  916. status.setText(playerX + "'s turn.");
  917. Checker();
  918. if (xTurn)
  919. xTurn = false;
  920. else if (! (xTurn))
  921. xTurn = true;
  922.  
  923. }
  924. else if((seven.getText()=="X")&&(nine.getText() == "X")&&(eight.getText()==" ")) {
  925. eight.setText("O");
  926. status.setText(playerX + "'s turn.");
  927. Checker();
  928. if (xTurn)
  929. xTurn = false;
  930. else if (! (xTurn))
  931. xTurn = true;
  932.  
  933. }
  934. else if((one.getText()=="X")&&(three.getText() == "X")&&(two.getText()==" ")) {
  935. two.setText("O");
  936. status.setText(playerX + "'s turn.");
  937. Checker();
  938. if (xTurn)
  939. xTurn = false;
  940. else if (! (xTurn))
  941. xTurn = true;
  942.  
  943. }
  944. else if((one.getText()=="X")&&(seven.getText() == "X")&&(four.getText()==" ")) {
  945. four.setText("O");
  946. status.setText(playerX + "'s turn.");
  947. Checker();
  948. if (xTurn)
  949. xTurn = false;
  950. else if (! (xTurn))
  951. xTurn = true;
  952.  
  953. }
  954. else if((two.getText()=="X")&&(eight.getText() == "X")&&(five.getText()==" ")) {
  955. five.setText("O");
  956. status.setText(playerX + "'s turn.");
  957. Checker();
  958. if (xTurn)
  959. xTurn = false;
  960. else if (! (xTurn))
  961. xTurn = true;
  962.  
  963. }
  964. else if((three.getText()=="X")&&(nine.getText() == "X")&&(six.getText()==" ")) {
  965. six.setText("O");
  966. status.setText(playerX + "'s turn.");
  967. Checker();
  968. if (xTurn)
  969. xTurn = false;
  970. else if (! (xTurn))
  971. xTurn = true;
  972.  
  973. }
  974. else if((seven.getText()=="X")&&(three.getText() == "X")&&(five.getText()==" ")) {
  975. five.setText("O");
  976. status.setText(playerX + "'s turn.");
  977. Checker();
  978. if (xTurn)
  979. xTurn = false;
  980. else if (! (xTurn))
  981. xTurn = true;
  982.  
  983. }
  984. else if((nine.getText()=="X")&&(one.getText() == "X")&&(five.getText()==" ")) {
  985. five.setText("O");
  986. status.setText(playerX + "'s turn.");
  987. Checker();
  988. if (xTurn)
  989. xTurn = false;
  990. else if (! (xTurn))
  991. xTurn = true;
  992.  
  993. }
  994. else if((four.getText()=="X")&&(five.getText() == "X")&&(six.getText()==" ")) {
  995. six.setText("O");
  996. status.setText(playerX + "'s turn.");
  997. Checker();
  998. if (xTurn)
  999. xTurn = false;
  1000. else if (! (xTurn))
  1001. xTurn = true;
  1002.  
  1003. }
  1004.  
  1005.  
  1006.  
  1007. else if((one.getText()==two.getText())&&(two.getText() == three.getText())&&(three.getText()==" ")) {
  1008. three.setText("O");
  1009. status.setText(playerX + "'s turn.");
  1010. Checker();
  1011. if (xTurn)
  1012. xTurn = false;
  1013. else if (! (xTurn))
  1014. xTurn = true;
  1015.  
  1016. }
  1017. else if((four.getText()==five.getText())&&(five.getText() == six.getText())&&(six.getText()==" ")) {
  1018. six.setText("O");
  1019. status.setText(playerX + "'s turn.");
  1020. Checker();
  1021. if (xTurn)
  1022. xTurn = false;
  1023. else if (! (xTurn))
  1024. xTurn = true;
  1025.  
  1026. }
  1027. else if((seven.getText()==eight.getText())&&(eight.getText() == nine.getText())&&(nine.getText()==" ")) {
  1028. nine.setText("O");
  1029. status.setText(playerX + "'s turn.");
  1030. Checker();
  1031. if (xTurn)
  1032. xTurn = false;
  1033. else if (! (xTurn))
  1034. xTurn = true;
  1035.  
  1036. }
  1037. else if((one.getText()==four.getText())&&(four.getText() == seven.getText())&&(seven.getText()==" ")) {
  1038. seven.setText("O");
  1039. status.setText(playerX + "'s turn.");
  1040. Checker();
  1041. if (xTurn)
  1042. xTurn = false;
  1043. else if (! (xTurn))
  1044. xTurn = true;
  1045.  
  1046. }
  1047. else if((two.getText()==five.getText())&&(five.getText() == eight.getText())&&(eight.getText()==" ")) {
  1048. eight.setText("O");
  1049. status.setText(playerX + "'s turn.");
  1050. Checker();
  1051. if (xTurn)
  1052. xTurn = false;
  1053. else if (! (xTurn))
  1054. xTurn = true;
  1055.  
  1056. }
  1057. else if((three.getText()==six.getText())&&(six.getText() == nine.getText())&&(nine.getText()==" ")) {
  1058. nine.setText("O");
  1059. status.setText(playerX + "'s turn.");
  1060. Checker();
  1061. if (xTurn)
  1062. xTurn = false;
  1063. else if (! (xTurn))
  1064. xTurn = true;
  1065.  
  1066. }
  1067. else if((one.getText()==five.getText())&&(five.getText() == nine.getText())&&(nine.getText()==" ")) {
  1068. nine.setText("O");
  1069. status.setText(playerX + "'s turn.");
  1070. Checker();
  1071. if (xTurn)
  1072. xTurn = false;
  1073. else if (! (xTurn))
  1074. xTurn = true;
  1075.  
  1076. }
  1077. else if((three.getText()==five.getText())&&(five.getText() == seven.getText())&&(seven.getText()==" ")) {
  1078. seven.setText("O");
  1079. status.setText(playerX + "'s turn.");
  1080. Checker();
  1081. if (xTurn)
  1082. xTurn = false;
  1083. else if (! (xTurn))
  1084. xTurn = true;
  1085.  
  1086. }
  1087.  
  1088.  
  1089. else {
  1090. if (rand == 1) {
  1091. if (one.getText()==" ") {
  1092. one.setText("O");
  1093. status.setText(playerX + "'s turn.");
  1094. Checker();
  1095. if (xTurn)
  1096. xTurn = false;
  1097. else if (! (xTurn))
  1098. xTurn = true;
  1099. }
  1100. else
  1101. AI();
  1102. }
  1103.  
  1104. else if (rand == 2) {
  1105. if (two.getText()==" ") {
  1106. two.setText("O");
  1107. status.setText(playerX + "'s turn.");
  1108. Checker();
  1109. if (xTurn)
  1110. xTurn = false;
  1111. else if (! (xTurn))
  1112. xTurn = true;
  1113. }
  1114. else
  1115. AI();
  1116. }
  1117.  
  1118. else if (rand == 3) {
  1119. if (three.getText()==" ") {
  1120. three.setText("O");
  1121. status.setText(playerX + "'s turn.");
  1122. Checker();
  1123. if (xTurn)
  1124. xTurn = false;
  1125. else if (! (xTurn))
  1126. xTurn = true;
  1127. }
  1128. else
  1129. AI();
  1130. }
  1131.  
  1132. else if (rand == 4) {
  1133. if (four.getText()==" ") {
  1134. four.setText("O");
  1135. status.setText(playerX + "'s turn.");
  1136. Checker();
  1137. if (xTurn)
  1138. xTurn = false;
  1139. else if (! (xTurn))
  1140. xTurn = true;
  1141. }
  1142. else
  1143. AI();
  1144.  
  1145. }
  1146.  
  1147. else if (rand == 5) {
  1148. if (five.getText()==" ") {
  1149. five.setText("O");
  1150. status.setText(playerX + "'s turn.");
  1151. Checker();
  1152. if (xTurn)
  1153. xTurn = false;
  1154. else if (! (xTurn))
  1155. xTurn = true;
  1156. }
  1157. else
  1158. AI();
  1159. }
  1160.  
  1161. else if (rand == 6) {
  1162. if (six.getText()==" ") {
  1163. six.setText("O");
  1164. status.setText(playerX + "'s turn.");
  1165. Checker();
  1166. if (xTurn)
  1167. xTurn = false;
  1168. else if (! (xTurn))
  1169. xTurn = true;
  1170. }
  1171. else
  1172. AI();
  1173. }
  1174.  
  1175. else if (rand == 7) {
  1176. if (seven.getText()==" ") {
  1177. seven.setText("O");
  1178. status.setText(playerX + "'s turn.");
  1179. Checker();
  1180. if (xTurn)
  1181. xTurn = false;
  1182. else if (! (xTurn))
  1183. xTurn = true;
  1184. }
  1185. else
  1186. AI();
  1187. }
  1188.  
  1189. else if (rand == 8) {
  1190. if (eight.getText()==" ") {
  1191. eight.setText("O");
  1192. status.setText(playerX + "'s turn.");
  1193. Checker();
  1194. if (xTurn)
  1195. xTurn = false;
  1196. else if (! (xTurn))
  1197. xTurn = true;
  1198. }
  1199. else
  1200. AI();
  1201. }
  1202.  
  1203. else if (rand == 9) {
  1204. if (nine.getText()==" ") {
  1205. nine.setText("O");
  1206. status.setText(playerX + "'s turn.");
  1207. Checker();
  1208. if (xTurn)
  1209. xTurn = false;
  1210. else if (! (xTurn))
  1211. xTurn = true;
  1212. }
  1213. else
  1214. AI();
  1215. }
  1216. else AI();
  1217.  
  1218. }
  1219.  
  1220. }
  1221.  
  1222. public void actionPerformed(ActionEvent event) {
  1223. Checker();
  1224. if (event.getSource() == help) {
  1225. playerX = JOptionPane.showInputDialog("Player X is " + playerX +
  1226. " and Player O is "
  1227. + playerO +
  1228. ". To change, enter player X's name.");
  1229. }
  1230.  
  1231. if (event.getSource() == redo) {
  1232. wins.setText("Wins: Computer (O): "+cwins+". Human (X): "+hwins+". Ties: "+ties+".");
  1233.  
  1234. one.setText(" ");
  1235. two.setText(" ");
  1236. three.setText(" ");
  1237. four.setText(" ");
  1238. five.setText(" ");
  1239. six.setText(" ");
  1240. seven.setText(" ");
  1241. eight.setText(" ");
  1242. nine.setText(" ");
  1243.  
  1244. one.setEnabled(true);
  1245. two.setEnabled(true);
  1246. three.setEnabled(true);
  1247. four.setEnabled(true);
  1248. five.setEnabled(true);
  1249. six.setEnabled(true);
  1250. seven.setEnabled(true);
  1251. eight.setEnabled(true);
  1252. nine.setEnabled(true);
  1253.  
  1254. xTurn=true;
  1255. play = (playerX + "'s turn.");
  1256. }
  1257.  
  1258. if(event.getSource()==multi) {
  1259. TicTacToeMulti cool = new TicTacToeMulti();
  1260. }
  1261.  
  1262. if(event.getSource() == exit) System.exit(0);
  1263.  
  1264. if (xTurn && event.getSource() == one) {
  1265. one.setText("X");
  1266. status.setText(playerO + "'s turn.");
  1267. Checker();
  1268. AI();
  1269. if (xTurn)
  1270. xTurn = false;
  1271. else if (! (xTurn))
  1272. xTurn = true;
  1273. }
  1274.  
  1275. if (xTurn && event.getSource() == two) {
  1276. two.setText("X");
  1277. status.setText(playerO + "'s turn.");
  1278. Checker();
  1279. AI();
  1280. if (xTurn)
  1281. xTurn = false;
  1282. else if (! (xTurn))
  1283. xTurn = true;
  1284. }
  1285.  
  1286. if (xTurn && event.getSource() == three) {
  1287. three.setText("X");
  1288. status.setText(playerO + "'s turn.");
  1289. Checker();
  1290. AI();
  1291. if (xTurn)
  1292. xTurn = false;
  1293. else if (! (xTurn))
  1294. xTurn = true;
  1295. }
  1296.  
  1297. if (xTurn && event.getSource() == four) {
  1298. four.setText("X");
  1299. status.setText(playerO + "'s turn.");
  1300. Checker();
  1301. AI();
  1302. if (xTurn)
  1303. xTurn = false;
  1304. else if (! (xTurn))
  1305. xTurn = true;
  1306. }
  1307.  
  1308. if (xTurn && event.getSource() == five) {
  1309. five.setText("X");
  1310. status.setText(playerO + "'s turn.");
  1311. Checker();
  1312. AI();
  1313. if (xTurn)
  1314. xTurn = false;
  1315. else if (! (xTurn))
  1316. xTurn = true;
  1317. }
  1318.  
  1319. if (xTurn && event.getSource() == six) {
  1320. six.setText("X");
  1321. status.setText(playerO + "'s turn.");
  1322. Checker();
  1323. AI();
  1324. if (xTurn)
  1325. xTurn = false;
  1326. else if (! (xTurn))
  1327. xTurn = true;
  1328. }
  1329.  
  1330. if (xTurn && event.getSource() == seven) {
  1331. seven.setText("X");
  1332. status.setText(playerO + "'s turn.");
  1333. Checker();
  1334. AI();
  1335. if (xTurn)
  1336. xTurn = false;
  1337. else if (! (xTurn))
  1338. xTurn = true;
  1339. }
  1340.  
  1341. if (xTurn && event.getSource() == eight) {
  1342. eight.setText("X");
  1343. status.setText(playerO + "'s turn.");
  1344. Checker();
  1345. AI();
  1346. if (xTurn)
  1347. xTurn = false;
  1348. else if (! (xTurn))
  1349. xTurn = true;
  1350. }
  1351.  
  1352. if (xTurn && event.getSource() == nine) {
  1353. nine.setText("X");
  1354. status.setText(playerO + "'s turn.");
  1355. Checker();
  1356. AI();
  1357. if (xTurn)
  1358. xTurn = false;
  1359. else if (! (xTurn))
  1360. xTurn = true;
  1361. }
  1362.  
  1363. }
  1364.  
  1365. public static void main(String[] args) {
  1366. TicTacToeAI eg = new TicTacToeAI();
  1367.  
  1368. }
  1369. }
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375. /*Layout of Tic Tac Toe Board:
  1376.   1 2 3 _|_|_
  1377.   4 5 6 _|_|_
  1378.   7 8 9 | |
  1379.   */
  1380.  
  1381.  
  1382.  
  1383.  
  1384. class TicTacToeMulti extends JFrame implements ActionListener
  1385. {
  1386. public String playerX = JOptionPane.showInputDialog("Enter player X's name.");
  1387. public String playerO = JOptionPane.showInputDialog("Enter player O's name.");
  1388.  
  1389. public float player = Math.round(Math.random()*10);
  1390. public String one1 = " ";
  1391. public String two2 = " ";
  1392. public String three3 = " ";
  1393. public String four4 = " ";
  1394. public String five5 = " ";
  1395. public String six6 = " ";
  1396. public String seven7 = " ";
  1397. public String eight8 = " ";
  1398. public String nine9 = " ";
  1399. public boolean xTurn = true;
  1400. public String play = (playerX+"'s turn.");
  1401. public double cwins = 0;
  1402. public double hwins = 0;
  1403. public double ties = 0;
  1404.  
  1405.  
  1406. JButton one = new JButton(one1);
  1407. JButton two = new JButton(two2);
  1408. JButton three = new JButton(three3);
  1409. JButton four = new JButton(four4);
  1410. JButton five = new JButton(five5);
  1411. JButton six = new JButton(six6);
  1412. JButton seven = new JButton(seven7);
  1413. JButton eight = new JButton(eight8);
  1414. JButton nine = new JButton(nine9);
  1415. JLabel status = new JLabel(play);
  1416. JButton redo = new JButton("Restart Game");
  1417. JButton help = new JButton("Who's who?");
  1418. JButton exit = new JButton("Exit");
  1419. JButton multi = new JButton("Multi-Player");
  1420. JButton single = new JButton("Single-Player");
  1421. JLabel lbl = new JLabel("Cinnamon's Tic-Tac-Toe");
  1422. JLabel wins = new JLabel("Wins: O: "+cwins+". X: "+hwins+". Ties: "+ties+".");
  1423.  
  1424.  
  1425. public TicTacToeMulti()
  1426. {
  1427.  
  1428. super("Tic-Tac-Toe");
  1429. setSize(800,725);
  1430. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  1431. setVisible(true);
  1432.  
  1433. redo.setFont(new Font("Arial", Font.PLAIN, 12));
  1434. help.setFont(new Font("Arial", Font.PLAIN, 12));
  1435. exit.setFont(new Font("Arial", Font.PLAIN, 12));
  1436. multi.setFont(new Font("Arial", Font.PLAIN, 12));
  1437. single.setFont(new Font("Arial", Font.PLAIN, 12));
  1438. one.setFont(new Font("Serif", Font.BOLD, 62));
  1439. two.setFont(new Font("Serif", Font.BOLD, 62));
  1440. three.setFont(new Font("Serif", Font.BOLD, 62));
  1441. four.setFont(new Font("Serif", Font.BOLD, 62));
  1442. five.setFont(new Font("Serif", Font.BOLD, 62));
  1443. six.setFont(new Font("Serif", Font.BOLD, 62));
  1444. seven.setFont(new Font("Serif", Font.BOLD, 62));
  1445. eight.setFont(new Font("Serif", Font.BOLD, 62));
  1446. nine.setFont(new Font("Serif", Font.BOLD, 62));
  1447. status.setFont(new Font("Times New Roman", Font.ITALIC+Font.BOLD, 24));
  1448. lbl.setFont(new Font("Cooper Black", Font.PLAIN, 45));
  1449. wins.setFont(new Font("Times New Roman", Font.PLAIN, 18));
  1450.  
  1451. Container contentArea = getContentPane();
  1452. GridBagLayout flowManager = new GridBagLayout();
  1453. GridBagConstraints pos = new GridBagConstraints();
  1454. contentArea.setLayout(flowManager);
  1455.  
  1456. getContentPane().setBackground(Color.RED);
  1457.  
  1458. one.addActionListener(this);
  1459. two.addActionListener(this);
  1460. three.addActionListener(this);
  1461. four.addActionListener(this);
  1462. five.addActionListener(this);
  1463. six.addActionListener(this);
  1464. seven.addActionListener(this);
  1465. eight.addActionListener(this);
  1466. nine.addActionListener(this);
  1467. redo.addActionListener(this);
  1468. help.addActionListener(this);
  1469. exit.addActionListener(this);
  1470. single.addActionListener(this);
  1471. multi.addActionListener(this);
  1472.  
  1473. multi.setEnabled(false);
  1474.  
  1475. if(!(player>=5)){
  1476. play = "O's turn.";
  1477. xTurn=false;
  1478. }
  1479. else{
  1480. play = "X's turn.";
  1481. xTurn=true;
  1482. }
  1483.  
  1484.  
  1485. pos.gridx=1; pos.gridy=1;
  1486. contentArea.add(lbl, pos);
  1487.  
  1488. pos.gridx=0; pos.gridy=2;
  1489. contentArea.add(one,pos);
  1490.  
  1491. pos.gridx=1; pos.gridy=2;
  1492. contentArea.add(two,pos);
  1493.  
  1494. pos.gridx=2; pos.gridy=2;
  1495. contentArea.add(three,pos);
  1496.  
  1497. pos.gridx=0; pos.gridy=3;
  1498. contentArea.add(four,pos);
  1499.  
  1500. pos.gridx=1; pos.gridy=3;
  1501. contentArea.add(five,pos);
  1502.  
  1503. pos.gridx=2; pos.gridy=3;
  1504. contentArea.add(six,pos);
  1505.  
  1506. pos.gridx=0; pos.gridy=4;
  1507. contentArea.add(seven,pos);
  1508.  
  1509. pos.gridx=1; pos.gridy=4;
  1510. contentArea.add(eight,pos);
  1511.  
  1512. pos.gridx=2; pos.gridy=4;
  1513. contentArea.add(nine,pos);
  1514.  
  1515. pos.gridx=1; pos.gridy=6;
  1516. contentArea.add(status,pos);
  1517.  
  1518. pos.gridx=1; pos.gridy=9;
  1519. contentArea.add(redo,pos);
  1520.  
  1521. pos.gridx=1; pos.gridy=15;
  1522. contentArea.add(wins, pos);
  1523.  
  1524. pos.gridx = 1;
  1525. pos.gridy = 10;
  1526. contentArea.add(help, pos);
  1527.  
  1528. pos.gridx = 1;
  1529. pos.gridy = 11;
  1530. contentArea.add(exit, pos);
  1531.  
  1532. pos.gridx = 1;
  1533. pos.gridy = 12;
  1534. contentArea.add(multi, pos);
  1535.  
  1536. pos.gridx = 1;
  1537. pos.gridy = 13;
  1538. contentArea.add(single, pos);
  1539.  
  1540.  
  1541.  
  1542. setContentPane(contentArea);
  1543. Checker();
  1544. }
  1545. public void Checker()
  1546. {
  1547. if((one.getText()=="X" && two.getText()=="X" && three.getText()=="X")||
  1548. (four.getText()=="X" && five.getText()=="X" && six.getText()=="X")||
  1549. (seven.getText()=="X" && eight.getText()=="X" && nine.getText()=="X")||
  1550. (one.getText()=="X" && four.getText()=="X" && seven.getText()=="X")||
  1551. (two.getText()=="X" && five.getText()=="X" && eight.getText()=="X")||
  1552. (three.getText()=="X" && six.getText()=="X" && nine.getText()=="X")||
  1553. (one.getText()=="X" && five.getText()=="X" && nine.getText()=="X")||
  1554. (three.getText()=="X" && five.getText()=="X" && seven.getText()=="X")){
  1555.  
  1556. hwins+=1;
  1557.  
  1558. status.setText("X ("+playerX+") wins!!!");
  1559. one.setEnabled(false);
  1560. two.setEnabled(false);
  1561. three.setEnabled(false);
  1562. four.setEnabled(false);
  1563. five.setEnabled(false);
  1564. six.setEnabled(false);
  1565. seven.setEnabled(false);
  1566. eight.setEnabled(false);
  1567. nine.setEnabled(false);
  1568.  
  1569. }
  1570. else if((one.getText()=="O" && two.getText()=="O" && three.getText()=="O")||
  1571. (four.getText()=="O" && five.getText()=="O" && six.getText()=="O")||
  1572. (seven.getText()=="O" && eight.getText()=="O" && nine.getText()=="O")||
  1573. (one.getText()=="O" && four.getText()=="O" && seven.getText()=="O")||
  1574. (two.getText()=="O" && five.getText()=="O" && eight.getText()=="O")||
  1575. (three.getText()=="O" && six.getText()=="O" && nine.getText()=="O")||
  1576. (one.getText()=="O" && five.getText()=="O" && nine.getText()=="O")||
  1577. (three.getText()=="O" && five.getText()=="O" && seven.getText()=="O")){
  1578. status.setText("O ("+playerO+") wins!!!");
  1579. one.setEnabled(false);
  1580. two.setEnabled(false);
  1581. three.setEnabled(false);
  1582. four.setEnabled(false);
  1583. five.setEnabled(false);
  1584. six.setEnabled(false);
  1585. seven.setEnabled(false);
  1586. eight.setEnabled(false);
  1587. nine.setEnabled(false);
  1588.  
  1589. cwins+=1;
  1590.  
  1591. }
  1592. else if(one.getText()!=" " && two.getText()!=" " && three.getText()!=" " &&
  1593. four.getText()!=" " && five.getText()!=" " && six.getText()!=" " &&
  1594. seven.getText()!=" " && eight.getText()!=" " && nine.getText()!=" ")
  1595. {
  1596. status.setText("Cat's Game!");
  1597. one.setEnabled(false);
  1598. two.setEnabled(false);
  1599. three.setEnabled(false);
  1600. four.setEnabled(false);
  1601. five.setEnabled(false);
  1602. six.setEnabled(false);
  1603. seven.setEnabled(false);
  1604. eight.setEnabled(false);
  1605. nine.setEnabled(false);
  1606.  
  1607. ties+=1;
  1608.  
  1609. }
  1610.  
  1611. }
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618. public void actionPerformed(ActionEvent event)
  1619. {
  1620. if(event.getSource()==single) {
  1621. TicTacToeAI coolio = new TicTacToeAI();
  1622. }
  1623.  
  1624. if(event.getSource()==exit){
  1625. System.exit(0);
  1626. }
  1627.  
  1628. if(event.getSource()==help){
  1629. playerX=JOptionPane.showInputDialog("Player X is "+playerX+" and Player O is "
  1630. +playerO+". To change, enter player X's name.");
  1631. playerO=JOptionPane.showInputDialog("Enter player O's name.");
  1632. }
  1633.  
  1634. if(event.getSource()==redo){
  1635. wins.setText("Wins: O: "+cwins+". X: "+hwins+". Ties: "+ties+".");
  1636.  
  1637. one.setText(" ");
  1638. two.setText(" ");
  1639. three.setText(" ");
  1640. four.setText(" ");
  1641. five.setText(" ");
  1642. six.setText(" ");
  1643. seven.setText(" ");
  1644. eight.setText(" ");
  1645. nine.setText(" ");
  1646.  
  1647. one.setEnabled(true);
  1648. two.setEnabled(true);
  1649. three.setEnabled(true);
  1650. four.setEnabled(true);
  1651. five.setEnabled(true);
  1652. six.setEnabled(true);
  1653. seven.setEnabled(true);
  1654. eight.setEnabled(true);
  1655. nine.setEnabled(true);
  1656.  
  1657.  
  1658. xTurn = true;
  1659. play = (playerX + "'s turn.");
  1660.  
  1661. }
  1662.  
  1663. if(!(xTurn) && event.getSource()==one){
  1664. one.setText("O");
  1665. status.setText("\n"+playerX+"'s turn.\n\n");
  1666. Checker();
  1667. if(xTurn)xTurn=false;
  1668. else if(!(xTurn))xTurn=true;
  1669. }
  1670. else if(xTurn && event.getSource()==one){
  1671. one.setText("X");
  1672. status.setText("\n"+playerO+"'s turn.\n\n");
  1673. Checker();
  1674. if(xTurn)xTurn=false;
  1675. else if(!(xTurn))xTurn=true;
  1676. }
  1677.  
  1678.  
  1679.  
  1680. if(!(xTurn) && event.getSource()==two){
  1681. two.setText("O");
  1682. status.setText("\n"+playerX+"'s turn.\n\n");
  1683. Checker();
  1684. if(xTurn)xTurn=false;
  1685. else if(!(xTurn))xTurn=true;
  1686. }
  1687. else if(xTurn && event.getSource()==two){
  1688. two.setText("X");
  1689. status.setText("\n"+playerO+"'s turn.\n\n");
  1690. Checker();
  1691. if(xTurn)xTurn=false;
  1692. else if(!(xTurn))xTurn=true;
  1693. }
  1694.  
  1695.  
  1696.  
  1697. if(!(xTurn) && event.getSource()==three){
  1698. three.setText("O");
  1699. status.setText("\n"+playerX+"'s turn.\n\n");
  1700. Checker();
  1701. if(xTurn)xTurn=false;
  1702. else if(!(xTurn))xTurn=true;
  1703. }
  1704. else if(xTurn && event.getSource()==three){
  1705. three.setText("X");
  1706. status.setText("\n"+playerO+"'s turn.\n\n");
  1707. Checker();
  1708. if(xTurn)xTurn=false;
  1709. else if(!(xTurn))xTurn=true;
  1710. }
  1711.  
  1712.  
  1713.  
  1714. if(!(xTurn) && event.getSource()==four){
  1715. four.setText("O");
  1716. status.setText("\n"+playerX+"'s turn.\n\n");
  1717. Checker();
  1718. if(xTurn)xTurn=false;
  1719. else if(!(xTurn))xTurn=true;
  1720. }
  1721. else if(xTurn && event.getSource()==four){
  1722. four.setText("X");
  1723. status.setText("\n"+playerO+"'s turn.\n\n");
  1724. Checker();
  1725. if(xTurn)xTurn=false;
  1726. else if(!(xTurn))xTurn=true;
  1727. }
  1728.  
  1729.  
  1730.  
  1731. if(!(xTurn) && event.getSource()==five){
  1732. five.setText("O");
  1733. status.setText("\n"+playerX+"'s turn.\n\n");
  1734. Checker();
  1735. if(xTurn)xTurn=false;
  1736. else if(!(xTurn))xTurn=true;
  1737. }
  1738. else if(xTurn && event.getSource()==five){
  1739. five.setText("X");
  1740. status.setText("\n"+playerO+"'s turn.\n\n");
  1741. Checker();
  1742. if(xTurn)xTurn=false;
  1743. else if(!(xTurn))xTurn=true;
  1744. }
  1745.  
  1746.  
  1747.  
  1748. if(!(xTurn) && event.getSource()==six){
  1749. six.setText("O");
  1750. status.setText("\n"+playerX+"'s turn.\n\n");
  1751. Checker();
  1752. if(xTurn)xTurn=false;
  1753. else if(!(xTurn))xTurn=true;
  1754. }
  1755. else if(xTurn && event.getSource()==six){
  1756. six.setText("X");
  1757. status.setText("\n"+playerO+"'s turn.\n\n");
  1758. Checker();
  1759. if(xTurn)xTurn=false;
  1760. else if(!(xTurn))xTurn=true;
  1761. }
  1762.  
  1763.  
  1764.  
  1765. if(!(xTurn) && event.getSource()==seven){
  1766. seven.setText("O");
  1767. status.setText("\n"+playerX+"'s turn.\n\n");
  1768. Checker();
  1769. if(xTurn)xTurn=false;
  1770. else if(!(xTurn))xTurn=true;
  1771. }
  1772. else if(xTurn && event.getSource()==seven){
  1773. seven.setText("X");
  1774. status.setText("\n"+playerO+"'s turn.\n\n");
  1775. Checker();
  1776. if(xTurn)xTurn=false;
  1777. else if(!(xTurn))xTurn=true;
  1778. }
  1779.  
  1780.  
  1781.  
  1782. if(!(xTurn) && event.getSource()==eight){
  1783. eight.setText("O");
  1784. status.setText("\n"+playerX+"'s turn.\n\n");
  1785. Checker();
  1786. if(xTurn)xTurn=false;
  1787. else if(!(xTurn))xTurn=true;
  1788. }
  1789. else if(xTurn && event.getSource()==eight){
  1790. eight.setText("X");
  1791. status.setText("\n"+playerO+"'s turn.\n\n");
  1792. Checker();
  1793. if(xTurn)xTurn=false;
  1794. else if(!(xTurn))xTurn=true;
  1795. }
  1796.  
  1797.  
  1798.  
  1799. if(!(xTurn) && event.getSource()==nine){
  1800. nine.setText("O");
  1801. status.setText("\n"+playerX+"'s turn.\n\n");
  1802. Checker();
  1803. if(xTurn)xTurn=false;
  1804. else if(!(xTurn))xTurn=true;
  1805. }
  1806. else if(xTurn && event.getSource()==nine){
  1807. nine.setText("X");
  1808. status.setText("\n"+playerO+"'s turn.\n\n");
  1809. Checker();
  1810. if(xTurn)xTurn=false;
  1811. else if(!(xTurn))xTurn=true;
  1812. }
  1813.  
  1814. }
  1815.  
  1816.  
  1817. }
0
moussa.eltayeb moussa.eltayeb is offline Offline | Jun 23rd, 2006
Hello , The coding that u write was very larg and it take larg space in the memory .....
 
0
Cudmore Cudmore is offline Offline | Feb 5th, 2007
I was thinking the same: wonderfully, unnecessarily large, but, that's how I used to code when I first started out. Make friends with arrays. Your exact program - the logic and all - could be condensed into at least 1/4 that size by working with arrays and more generalized methods, I'm sure. For example, you could have a method, setAllEnabled(boolean state) that looks like this:

  1. JButton[] gameBoard = new JButton[9];
  2.  
  3. .....
  4.  
  5. void setAllEnabled(boolean state) {
  6. for(JButton jb : gameBoard)
  7. jb.setEnabled(state);
  8. }

and that would do it. That one examlpe would save you a lot of room. Think of more examples!
 
0
howdoyoudothat? howdoyoudothat? is offline Offline | Jul 4th, 2007
does the program gotta to be that long for a tic-tac-toe game?

anyone can remember how to play tic-tac-toe.


_|_|_
_|_|_
| |

fill it with x and o and whoever got 3 in a row wins.

10x simpler than the program.
gotta be...

i think.












*burp*
 
0
sciwizeh sciwizeh is offline Offline | Aug 24th, 2008
throws a out of stack space exception when there is a tie
 
0
masijade masijade is offline Offline | Oct 5th, 2009
The point of all this is?
 
0
momik momik is offline Offline | Oct 13th, 2009
the program for tic tac toe game is too large actually what it was needed could have been done in simpler and smaller in its size.
 
0
JamesCherrill JamesCherrill is offline Offline | Oct 13th, 2009
Sorry guys, but this is a terrible example of programming. We have endles code repeated 9 times because the author dosn't know about arrays. We have if/then/else/else... constructs running on for hundreds and hundreds of lines. We have nearly 1800 lines of code with just one single comment. We have two public Checker methods (nb capitalisation) guaranteed to create maxiimum confusion.
This would be unacceptable in any language.
 
 

Message:


Similar Threads
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC