Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.20 KB | None | 0 0
  1. /*
  2. * To change this template, choose Tools | Templates
  3. * and open the template in the editor.
  4. */
  5.  
  6. /*
  7. * Tic_Tac_Toe.java
  8. *
  9. * Created on Aug 10, 2011, 6:00:03 OM
  10. */
  11.  
  12. package MakkelijkeAI;
  13.  
  14. import java.awt.Color;
  15. import javax.swing.JOptionPane;
  16. import java.util.Random;
  17.  
  18. /**
  19. *
  20. * @author Akshay
  21. */
  22. public class MakkelijkeAI extends javax.swing.JFrame {
  23.  
  24. /** Creates new form Tic_Tac_Toe */
  25. public MakkelijkeAI() {
  26. initComponents();
  27. }
  28.  
  29. /** This method is called from within the constructor to
  30. * initialize the form.
  31. * WARNING: Do NOT modelse ify this code. The content of this method is
  32. * always regenerated by the Form Editor.
  33. */
  34. @SuppressWarnings("unchecked")
  35. // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  36. private void initComponents() {
  37.  
  38. box1 = new javax.swing.JTextField();
  39. box2 = new javax.swing.JTextField();
  40. box3 = new javax.swing.JTextField();
  41. box4 = new javax.swing.JTextField();
  42. box5 = new javax.swing.JTextField();
  43. box6 = new javax.swing.JTextField();
  44. box7 = new javax.swing.JTextField();
  45. box8 = new javax.swing.JTextField();
  46. box9 = new javax.swing.JTextField();
  47. error_rectify = new javax.swing.JLabel();
  48. refresh = new javax.swing.JButton();
  49.  
  50. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  51.  
  52. box1.setEditable(false);
  53. box1.setFont(new java.awt.Font("Tahoma", 0, 100));
  54. box1.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  55. box1.setFocusable(false);
  56. box1.addMouseListener(new java.awt.event.MouseAdapter() {
  57. public void mouseClicked(java.awt.event.MouseEvent evt) {
  58. box1MouseClicked(evt);
  59. }
  60. });
  61.  
  62. box2.setEditable(false);
  63. box2.setFont(new java.awt.Font("Tahoma", 0, 100));
  64. box2.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  65. box2.setFocusable(false);
  66. box2.addMouseListener(new java.awt.event.MouseAdapter() {
  67. public void mouseClicked(java.awt.event.MouseEvent evt) {
  68. box2MouseClicked(evt);
  69. }
  70. });
  71.  
  72. box3.setEditable(false);
  73. box3.setFont(new java.awt.Font("Tahoma", 0, 100));
  74. box3.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  75. box3.setFocusable(false);
  76. box3.addMouseListener(new java.awt.event.MouseAdapter() {
  77. public void mouseClicked(java.awt.event.MouseEvent evt) {
  78. box3MouseClicked(evt);
  79. }
  80. });
  81.  
  82. box4.setEditable(false);
  83. box4.setFont(new java.awt.Font("Tahoma", 0, 100));
  84. box4.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  85. box4.setFocusable(false);
  86. box4.addMouseListener(new java.awt.event.MouseAdapter() {
  87. public void mouseClicked(java.awt.event.MouseEvent evt) {
  88. box4MouseClicked(evt);
  89. }
  90. });
  91.  
  92. box5.setEditable(false);
  93. box5.setFont(new java.awt.Font("Tahoma", 0, 100));
  94. box5.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  95. box5.setFocusable(false);
  96. box5.addMouseListener(new java.awt.event.MouseAdapter() {
  97. public void mouseClicked(java.awt.event.MouseEvent evt) {
  98. box5MouseClicked(evt);
  99. }
  100. });
  101.  
  102. box6.setEditable(false);
  103. box6.setFont(new java.awt.Font("Tahoma", 0, 100));
  104. box6.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  105. box6.setFocusable(false);
  106. box6.addMouseListener(new java.awt.event.MouseAdapter() {
  107. public void mouseClicked(java.awt.event.MouseEvent evt) {
  108. box6MouseClicked(evt);
  109. }
  110. });
  111.  
  112. box7.setEditable(false);
  113. box7.setFont(new java.awt.Font("Tahoma", 0, 100));
  114. box7.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  115. box7.setFocusable(false);
  116. box7.addMouseListener(new java.awt.event.MouseAdapter() {
  117. public void mouseClicked(java.awt.event.MouseEvent evt) {
  118. box7MouseClicked(evt);
  119. }
  120. });
  121.  
  122. box8.setEditable(false);
  123. box8.setFont(new java.awt.Font("Tahoma", 0, 100));
  124. box8.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  125. box8.setFocusable(false);
  126. box8.addMouseListener(new java.awt.event.MouseAdapter() {
  127. public void mouseClicked(java.awt.event.MouseEvent evt) {
  128. box8MouseClicked(evt);
  129. }
  130. });
  131.  
  132. box9.setEditable(false);
  133. box9.setFont(new java.awt.Font("Tahoma", 0, 100));
  134. box9.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  135. box9.setFocusable(false);
  136. box9.addMouseListener(new java.awt.event.MouseAdapter() {
  137. public void mouseClicked(java.awt.event.MouseEvent evt) {
  138. box9MouseClicked(evt);
  139. }
  140. });
  141.  
  142. refresh.setBackground(new java.awt.Color(0, 0, 0));
  143. refresh.setFont(new java.awt.Font("Comic Sans MS", 0, 36)); // NOI18N
  144. refresh.setForeground(new java.awt.Color(255, 255, 0));
  145. refresh.setText("Refresh");
  146. refresh.addActionListener(new java.awt.event.ActionListener() {
  147. public void actionPerformed(java.awt.event.ActionEvent evt) {
  148. refreshActionPerformed(evt);
  149. }
  150. });
  151.  
  152. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  153. getContentPane().setLayout(layout);
  154. layout.setHorizontalGroup(
  155. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  156. .addGroup(layout.createSequentialGroup()
  157. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  158. .addGroup(layout.createSequentialGroup()
  159. .addGap(60, 60, 60)
  160. .addComponent(box1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  161. .addComponent(box2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  162. .addComponent(box3, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
  163. .addGroup(layout.createSequentialGroup()
  164. .addGap(60, 60, 60)
  165. .addComponent(box4, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  166. .addComponent(box5, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  167. .addComponent(box6, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  168. .addGap(40, 40, 40)
  169. .addComponent(refresh))
  170. .addGroup(layout.createSequentialGroup()
  171. .addGap(60, 60, 60)
  172. .addComponent(box7, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  173. .addComponent(box8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  174. .addComponent(box9, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
  175. .addGroup(layout.createSequentialGroup()
  176. .addGap(450, 450, 450)
  177. .addComponent(error_rectify, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)))
  178. .addContainerGap(57, Short.MAX_VALUE))
  179. );
  180. layout.setVerticalGroup(
  181. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  182. .addGroup(layout.createSequentialGroup()
  183. .addGap(50, 50, 50)
  184. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  185. .addComponent(box1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  186. .addComponent(box2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  187. .addComponent(box3, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
  188. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  189. .addComponent(box4, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  190. .addComponent(box5, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  191. .addComponent(box6, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  192. .addComponent(refresh))
  193. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  194. .addComponent(box7, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  195. .addComponent(box8, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
  196. .addComponent(box9, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
  197. .addGap(80, 80, 80)
  198. .addComponent(error_rectify, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
  199. );
  200.  
  201. pack();
  202. }// </editor-fold>//GEN-END:initComponents
  203. void AI()
  204. {
  205.  
  206. String c1= box1.getText();
  207. String c2= box2.getText();
  208. String c3= box3.getText();
  209. String c4= box4.getText();
  210. String c5= box5.getText();
  211. String c6= box6.getText();
  212. String c7= box7.getText();
  213. String c8= box8.getText();
  214. String c9= box9.getText();
  215. if((i%2)==1)
  216. {
  217. if ((c4.equals(c5))&&(c5.equals("X"))&&(b3==0)){
  218. box3.setText("O");
  219. b3=1;i++;
  220. }
  221. else if ((c1.equals(c4))&&(c4.equals("X"))&&(b1==0)){
  222. box1.setText("O");
  223. b1=1;i++;
  224. }
  225. else if ((c3.equals(c6))&&(c1.equals("X"))&&(b6==0)){
  226. box6.setText("O");
  227. b6=1;i++;
  228. }
  229.  
  230. else if((c1.equals(c2))&&(c2.equals("X"))&&(b4==0)){
  231. box4.setText("O");
  232. b4=1;i++;
  233. }
  234. else if((c9.equals(c8))&&(c8.equals("X"))&&(b5==0)){
  235. box5.setText("O");
  236. b5=1;i++;
  237. }
  238. else if((c7.equals(c4))&&(c4.equals("X"))&&(b9==0)){
  239. box9.setText("O");
  240. b9=1;i++;
  241. }
  242.  
  243. else if((c2.equals(c5))&&(c5.equals("X"))&&(b7==0)){
  244. box7.setText("O");
  245. b7=1;i++;
  246. }
  247. else if((c6.equals(c5))&&(c5.equals("X"))&&(b8==0)){
  248. box8.setText("O");
  249. b8=1;i++;
  250. }
  251. else if((c3.equals(c2))&&(c2.equals("X"))&&(b7==0)){
  252. box7.setText("O");
  253. b7=1;i++;
  254. }
  255.  
  256. else if((c3.equals(c5))&&(c5.equals("X"))&&(b1==0)){
  257. box1.setText("O");
  258. b1=1;i++;
  259. }
  260. else if((c9.equals(c6))&&(c6.equals("X"))&&(b4==0)){
  261. box4.setText("O");
  262. b4=1;i++;
  263. }
  264. else if((c9.equals(c5))&&(c5.equals("X"))&&(b8==0)){
  265. box8.setText("O");
  266. b8=1;i++;
  267. }
  268.  
  269. else if((c2.equals(c8))&&(c8.equals("X"))&&(b2==0)){
  270. box2.setText("O");
  271. b2=1;i++;
  272. }
  273. else if((c7.equals(c9))&&(c9.equals("X"))&&(b5==0)){
  274. box5.setText("O");
  275. b5=1;i++;
  276. }
  277. else if((c4.equals(c5))&&(c5.equals("X"))&&(b3==0)){
  278. box3.setText("O");
  279. b3=1;i++;
  280. }
  281. else if((c3.equals(c7))&&(c7.equals("X"))&&(b9==0)){
  282. box9.setText("O");
  283. b9=1;i++;
  284. }
  285. else if((c1.equals(c5))&&(c5.equals("X"))&&(b6==0)){
  286. box6.setText("O");
  287. b6=1;i++;
  288. }
  289. else if((c1.equals(c7))&&(c7.equals("X"))&&(b9==0)){
  290. box9.setText("O");
  291. b9=1;i++;
  292. }
  293.  
  294. else if((c7.equals(c8))&&(c8.equals("X"))&&(b1==0)){
  295. box1.setText("O");
  296. b1=1;i++;
  297. }
  298. else if((c1.equals(c5))&&(c5.equals("X"))&&(b7==0)){
  299. box7.setText("O");
  300. b7=1;i++;
  301. }
  302. else if((c7.equals(c5))&&(c1.equals("X"))&&(b7==0)){
  303. box7.setText("O");
  304. b7=1;i++;
  305. }
  306.  
  307. else if((c1.equals(c9))&&(c9.equals("X"))&&(b3==0)){
  308. box3.setText("O");
  309. b3=1;i++;
  310. }
  311. else if((c3.equals(c9))&&(c9.equals("X"))&&(b5==0)){
  312. box5.setText("O");
  313. b5=1;i++;
  314. }
  315. else if((c8.equals(c5))&&(c5.equals("X"))&&(b2==0)){
  316. box2.setText("O");
  317. b2=1;i++;
  318. }
  319. else
  320. {
  321. if(i==1)
  322. {
  323. if(b5==0)
  324. {
  325. box5.setText("O");
  326. b5=1;
  327. i++;
  328. }
  329. else{
  330. Random a1 = new Random();
  331. int first = a1.nextInt((4));
  332. first++;
  333. if((first==1)&&(b1==0))
  334. {
  335. box1.setText("O");
  336. b1=1;
  337. i++;
  338. }
  339. else if((first==2)&&(b3==0))
  340. {
  341. box3.setText("O");
  342. b3=1;
  343. i++;
  344. }
  345. else if((first==3)&&(b7==0))
  346. {
  347. box7.setText("O");
  348. b7=1;
  349. i++;
  350. }
  351. else if((first==4)&&(b9==0))
  352. {
  353. box9.setText("O");
  354. b9=1;
  355. i++;
  356. }
  357. }
  358. }
  359. else if(( (c1.equals(c9))&&(c9.equals("X") )) ||
  360. ( (c3.equals(c7))&&(c7.equals("X") )) &&
  361. (i==3))
  362. {
  363. box6.setText("O");
  364. b6=1;
  365. i++;
  366. }
  367. else if(i>1)
  368. {
  369.  
  370. boolean done = false;
  371. if(i!=9)
  372. while(done==false){
  373. Random a2 = new Random();
  374. int scnd = a2.nextInt((9));
  375. scnd++;
  376.  
  377. if((scnd==1)&&(b1==0))
  378. {
  379. box1.setText("O");
  380. b1=1;
  381. i++;done=true;
  382. }
  383. else if((scnd==2)&&(b2==0)&&(b1==1)&&(b3==1)&&(b7==1)&&(b9==1))
  384. {
  385. box2.setText("O");
  386. b2=1;
  387. i++;done=true;
  388. }
  389. else if((scnd==3)&&(b3==0))
  390. {
  391. box3.setText("O");
  392. b3=1;
  393. i++;done=true;
  394. }
  395. else if((scnd==4)&&(b4==0)&&(b1==1)&&(b3==1)&&(b7==1)&&(b9==1))
  396. {
  397. box4.setText("O");
  398. b4=1;
  399. i++;done=true;
  400. }
  401. else if((scnd==5)&&(b3==0))
  402. {
  403. box3.setText("O");
  404. b3=1;
  405. i++;done=true;
  406. }
  407. else if((scnd==6)&&(b6==0)&&(b1==1)&&(b3==1)&&(b7==1)&&(b9==1))
  408. {
  409. box6.setText("O");
  410. b6=1;
  411. i++;done=true;
  412. }
  413. else if((scnd==7)&&(b7==0))
  414. {
  415. box7.setText("O");
  416. b7=1;
  417. i++;done=true;
  418. }
  419. else if((scnd==8)&&(b8==0)&&(b1==1)&&(b3==1)&&(b7==1)&&(b9==1))
  420. {
  421. box8.setText("O");
  422. b8=1;
  423. i++;done=true;
  424. }
  425. else if((scnd==9)&&(b9==0))
  426. {
  427. box9.setText("O");
  428. b9=1;
  429. i++;done=true;
  430. }
  431. }
  432. }
  433.  
  434.  
  435. }
  436.  
  437. }
  438. }
  439.  
  440. void AI_attack()
  441. {
  442. boolean AI_win=false;
  443. String c1= box1.getText();
  444. String c2= box2.getText();
  445. String c3= box3.getText();
  446. String c4= box4.getText();
  447. String c5= box5.getText();
  448. String c6= box6.getText();
  449. String c7= box7.getText();
  450. String c8= box8.getText();
  451. String c9= box9.getText();
  452. if((i%2)==1)
  453. {
  454. if ((c1.equals(c2))&&(c2.equals("O"))&&(b3==0)){
  455. box3.setText("O");
  456. b3=1;i++;AI_win=true;AI_win=true;
  457. }
  458. else if ((c3.equals(c2))&&(c2.equals("O"))&&(b1==0)){
  459. box1.setText("O");
  460. b1=1;i++;AI_win=true;
  461. }
  462. else if ((c1.equals(c3))&&(c1.equals("O"))&&(b2==0)){
  463. box2.setText("O");
  464. b2=1;i++;AI_win=true;
  465. }
  466.  
  467. else if((c4.equals(c5))&&(c5.equals("O"))&&(b6==0)){
  468. box6.setText("O");
  469. b6=1;i++;AI_win=true;
  470. }
  471. else if((c6.equals(c5))&&(c5.equals("O"))&&(b4==0)){
  472. box4.setText("O");
  473. b4=1;i++;AI_win=true;
  474. }
  475. else if((c4.equals(c6))&&(c4.equals("O"))&&(b5==0)){
  476. box5.setText("O");
  477. b5=1;i++;AI_win=true;
  478. }
  479.  
  480. else if((c7.equals(c8))&&(c8.equals("O"))&&(b9==0)){
  481. box9.setText("O");
  482. b9=1;i++;AI_win=true;
  483. }
  484. else if((c9.equals(c8))&&(c8.equals("O"))&&(b7==0)){
  485. box7.setText("O");
  486. b7=1;i++;AI_win=true;
  487. }
  488. else if((c7.equals(c9))&&(c7.equals("O"))&&(b8==0)){
  489. box8.setText("O");
  490. b8=1;i++;AI_win=true;
  491. }
  492.  
  493. else if((c1.equals(c4))&&(c4.equals("O"))&&(b7==0)){
  494. box7.setText("O");
  495. b7=1;i++;AI_win=true;
  496. }
  497. else if((c7.equals(c4))&&(c4.equals("O"))&&(b1==0)){
  498. box1.setText("O");
  499. b1=1;i++;AI_win=true;
  500. }
  501. else if((c1.equals(c7))&&(c1.equals("O"))&&(b4==0)){
  502. box4.setText("O");
  503. b4=1;i++;AI_win=true;
  504. }
  505.  
  506. else if((c2.equals(c5))&&(c5.equals("O"))&&(b8==0)){
  507. box8.setText("O");
  508. b8=1;i++;AI_win=true;
  509. }
  510.  
  511. else if((c8.equals(c5))&&(c5.equals("O"))&&(b2==0)){
  512. box2.setText("O");
  513. b2=1;i++;AI_win=true;
  514. }
  515.  
  516. else if((c2.equals(c8))&&(c2.equals("O"))&&(b5==0)){
  517. box5.setText("O");
  518. b5=1;i++;AI_win=true;
  519. }
  520.  
  521. else if((c3.equals(c6))&&(c6.equals("O"))&&(b9==0)){
  522. box9.setText("O");
  523. b9=1;i++;AI_win=true;
  524. }
  525.  
  526. else if((c9.equals(c6))&&(c6.equals("O"))&&(b3==0)){
  527. box3.setText("O");
  528. b3=1;i++;AI_win=true;
  529. }
  530.  
  531. else if((c3.equals(c9))&&(c3.equals("O"))&&(b6==0)){
  532. box6.setText("O");
  533. b6=1;i++;AI_win=true;
  534. }
  535.  
  536. else if((c1.equals(c5))&&(c5.equals("O"))&&(b9==0)){
  537. box9.setText("O");
  538. b9=1;i++;AI_win=true;
  539. }
  540.  
  541. else if((c9.equals(c5))&&(c5.equals("O"))&&(b1==0)){
  542. box1.setText("O");
  543. b1=1;i++;AI_win=true;
  544. }
  545.  
  546. else if((c1.equals(c9))&&(c1.equals("O"))&&(b5==0)){
  547. box5.setText("O");
  548. b5=1;i++;AI_win=true;
  549. }
  550.  
  551. else if((c3.equals(c5))&&(c5.equals("O"))&&(b7==0)){
  552. box7.setText("O");
  553. b7=1;i++;AI_win=true;
  554. }
  555. else if((c7.equals(c5))&&(c5.equals("O"))&&(b3==0)){
  556. box3.setText("O");
  557. b3=1;i++;AI_win=true;
  558. }
  559. else if((c3.equals(c7))&&(c3.equals("O"))&&(b5==0)){
  560. box5.setText("O");
  561. b5=1;i++;AI_win=true;
  562. }
  563.  
  564. }
  565. if(AI_win==true)
  566. {
  567. JOptionPane.showMessageDialog(null,"Computer Wins");
  568. refresh.doClick(1000);
  569. }
  570. }
  571.  
  572. void winx()
  573. {
  574.  
  575. String c1= box1.getText();
  576. String c2= box2.getText();
  577. String c3= box3.getText();
  578. String c4= box4.getText();
  579. String c5= box5.getText();
  580. String c6= box6.getText();
  581. String c7= box7.getText();
  582. String c8= box8.getText();
  583. String c9= box9.getText();
  584. if(((c1.equals(c2))&&(c2.equals(c3))&&(c1.equals("X")) ) ||
  585. ((c4.equals(c5))&&(c5.equals(c6))&&(c4.equals("X")) ) ||
  586. ((c7.equals(c8))&&(c8.equals(c9))&&(c7.equals("X")) ) ||/*Horizontal Complete*/
  587. ((c1.equals(c4))&&(c4.equals(c7))&&(c1.equals("X")) ) ||
  588. ((c2.equals(c5))&&(c5.equals(c8))&&(c2.equals("X")) ) ||
  589. ((c3.equals(c6))&&(c6.equals(c9))&&(c3.equals("X")) ) ||/*Vertical Complete*/
  590. ((c1.equals(c5))&&(c5.equals(c9))&&(c1.equals("X")) ) ||
  591. ((c3.equals(c5))&&(c5.equals(c7))&&(c3.equals("X")) )) /*Doagonal Complete*/
  592. {
  593.  
  594. JOptionPane.showMessageDialog(null,"X WINS!!");
  595. refresh.doClick(1000);
  596. }
  597.  
  598. }
  599.  
  600. void special_case()
  601. {
  602. if(i==3){
  603.  
  604. String c1= box1.getText();
  605. String c2= box2.getText();
  606. String c3= box3.getText();
  607. String c4= box4.getText();
  608. String c5= box5.getText();
  609. String c6= box6.getText();
  610. String c7= box7.getText();
  611. String c8= box8.getText();
  612. String c9= box9.getText();
  613.  
  614. if( ((c7.equals("X"))||(c9.equals("X"))) &&(c2.equals("X"))&&(c5.equals("O")))
  615. {
  616. Random choice = new Random();
  617. int box = choice.nextInt((2))+1;
  618. if(box==1)
  619. {
  620. box1.setText("O");
  621. b1=1;i++;
  622. }
  623. else
  624. {
  625. box3.setText("O");
  626. b3=1;i++;
  627. }
  628. }
  629.  
  630. else if((c1.equals("X")||(c7.equals("X")))&&(c6.equals("X"))&&(c5.equals("O")))
  631. {
  632. Random choice = new Random();
  633. int box = choice.nextInt((2))+1;
  634. if(box==1)
  635. {
  636. box3.setText("O");
  637. b3=1;i++;
  638. }
  639. else
  640. {
  641. box9.setText("O");
  642. b9=1;i++;
  643. }
  644. }
  645.  
  646. else if( ((c3.equals("X")) || (c1.equals("X"))) &&(c8.equals("X"))&&(c5.equals("O")))
  647. {
  648. Random choice = new Random();
  649. int box = choice.nextInt((2))+1;
  650. if(box==1)
  651. {
  652. box7.setText("O");
  653. b7=1;i++;
  654. }
  655. else
  656. {
  657. box9.setText("O");
  658. b9=1;i++;
  659. }
  660. }
  661.  
  662. else if((c9.equals("X") || (c3.equals("X"))) &&(c4.equals("X"))&&(c5.equals("O")))
  663. {
  664. Random choice = new Random();
  665. int box = choice.nextInt((2))+1;
  666. if(box==1)
  667. {
  668. box7.setText("O");
  669. b7=1;i++;
  670. }
  671. else
  672. {
  673. box1.setText("O");
  674. b1=1;i++;
  675. }
  676. }
  677. }}
  678.  
  679.  
  680. int i=0,b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0;
  681. private void box1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box1MouseClicked
  682. if(b1==0){
  683. box1.setForeground(Color.RED);
  684. box1.setText("X");
  685. b1=1;
  686. i++;
  687. }
  688. special_case();winx();
  689. AI_attack();AI();
  690.  
  691. // TODO add your handling code here:
  692. }//GEN-LAST:event_box1MouseClicked
  693.  
  694. private void box2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box2MouseClicked
  695. if(b2==0)
  696. {
  697. box2.setForeground(Color.RED);
  698. box2.setText("X");
  699. b2=1;
  700. i++;
  701. }
  702. special_case();winx();
  703. AI_attack();AI();
  704. // TODO add your handling code here:
  705. }//GEN-LAST:event_box2MouseClicked
  706.  
  707. private void box3MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box3MouseClicked
  708. if(b3==0)
  709. {
  710. box3.setForeground(Color.RED);
  711. box3.setText("X");
  712. b3=1;
  713. i++;
  714. }
  715. special_case();winx();
  716. AI_attack();AI();
  717.  
  718. // TODO add your handling code here:
  719. }//GEN-LAST:event_box3MouseClicked
  720.  
  721. private void box4MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box4MouseClicked
  722. if(b4==0)
  723. {
  724. box4.setForeground(Color.RED);
  725. box4.setText("X");
  726. b4=1;
  727. i++;
  728. }
  729. special_case();winx();
  730. AI_attack();AI();
  731. // TODO add your handling code here:
  732. }//GEN-LAST:event_box4MouseClicked
  733.  
  734. private void box5MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box5MouseClicked
  735. if(b5==0)
  736. {
  737. box5.setForeground(Color.RED);
  738. box5.setText("X");
  739. b5=1;
  740. i++;
  741. }
  742. special_case();winx();
  743. AI_attack();AI();
  744. // TODO add your handling code here:
  745. }//GEN-LAST:event_box5MouseClicked
  746.  
  747. private void box6MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box6MouseClicked
  748. if(b6==0)
  749. {
  750. box6.setForeground(Color.RED);
  751. box6.setText("X");
  752. b6=1;
  753. i++;
  754. }
  755. special_case();winx();
  756. AI_attack();AI();
  757. // TODO add your handling code here:
  758. }//GEN-LAST:event_box6MouseClicked
  759.  
  760. private void box7MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box7MouseClicked
  761. if(b7==0)
  762. {
  763. box7.setForeground(Color.RED);
  764. box7.setText("X");
  765. b7=1;
  766. i++;
  767. }
  768. special_case();winx();
  769. AI_attack();AI();
  770. // TODO add your handling code here:
  771. }//GEN-LAST:event_box7MouseClicked
  772.  
  773. private void box8MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box8MouseClicked
  774. if(b8==0)
  775. {
  776. box8.setForeground(Color.RED);
  777. box8.setText("X");
  778. b8=1;
  779. i++;
  780. }
  781. special_case();winx();
  782. AI_attack();AI();
  783. // TODO add your handling code here:
  784. }//GEN-LAST:event_box8MouseClicked
  785.  
  786. private void box9MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_box9MouseClicked
  787. if(b9==0)
  788. {
  789. box9.setForeground(Color.RED);
  790. box9.setText("X");
  791. b9=1;
  792. i++;
  793. }
  794. special_case();winx();
  795. AI_attack();AI();
  796. // TODO add your handling code here:
  797. }//GEN-LAST:event_box9MouseClicked
  798.  
  799. private void refreshActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_refreshActionPerformed
  800. box1.setText("");
  801. box2.setText("");
  802. box3.setText("");
  803. box4.setText("");
  804. box5.setText("");
  805. box6.setText("");
  806. box7.setText("");
  807. box8.setText("");
  808. box9.setText("");
  809. i=0;
  810. b1=0;b2=0;b3=0;b4=0;b5=0;b6=0;b7=0;b8=0;b9=0;
  811. box1.setForeground(Color.BLACK);box2.setForeground(Color.BLACK);box3.setForeground(Color.BLACK);
  812. box4.setForeground(Color.BLACK);box5.setForeground(Color.BLACK);box6.setForeground(Color.BLACK);
  813. box7.setForeground(Color.BLACK);box8.setForeground(Color.BLACK);box9.setForeground(Color.BLACK);
  814. }//GEN-LAST:event_refreshActionPerformed
  815.  
  816.  
  817.  
  818.  
  819. /**
  820. * @param args the command line arguments
  821. */
  822. public static void main(String args[]) {
  823. java.awt.EventQueue.invokeLater(new Runnable() {
  824. public void run() {
  825. new MakkelijkeAI().setVisible(true);
  826. }
  827. });
  828. }
  829.  
  830. // Variables declaration - do not modify//GEN-BEGIN:variables
  831. private javax.swing.JTextField box1;
  832. private javax.swing.JTextField box2;
  833. private javax.swing.JTextField box3;
  834. private javax.swing.JTextField box4;
  835. private javax.swing.JTextField box5;
  836. private javax.swing.JTextField box6;
  837. private javax.swing.JTextField box7;
  838. private javax.swing.JTextField box8;
  839. private javax.swing.JTextField box9;
  840. private javax.swing.JLabel error_rectify;
  841. private javax.swing.JButton refresh;
  842. // End of variables declaration//GEN-END:variables
  843.  
  844. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement