knugi

Untitled

Oct 4th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.48 KB | None | 0 0
  1. package pl.knugi;
  2.  
  3. import java.awt.EventQueue;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.Random;
  9.  
  10. import javax.swing.JFrame;
  11. import javax.swing.JButton;
  12. import javax.swing.JLayeredPane;
  13. import javax.swing.JTextField;
  14. import javax.swing.SwingConstants;
  15.  
  16.  
  17. public class KikStart implements ActionListener {
  18.  
  19. private JFrame frame;
  20. private JTextField wynikOut;
  21.  
  22. private static JButton button1;
  23. private static JButton button2;
  24. private static JButton button3;
  25. private static JButton button4;
  26. private static JButton button5;
  27. private static JButton button6;
  28. private static JButton button7;
  29. private static JButton button8;
  30. private static JButton button9;
  31.  
  32. protected List<JButton> clear = new ArrayList<JButton>();
  33. List<JButton> check1 = new ArrayList<>();
  34. List<JButton> check2 = new ArrayList<>();
  35. List<JButton> check3 = new ArrayList<>();
  36. List<JButton> check4 = new ArrayList<>();
  37. List<JButton> check5 = new ArrayList<>();
  38. List<JButton> check6 = new ArrayList<>();
  39. List<JButton> check7 = new ArrayList<>();
  40. List<JButton> check8 = new ArrayList<>();
  41. protected List<List<JButton>> check = new ArrayList<>();
  42.  
  43. String s;
  44. private JTextField txtTeraz;
  45. private JTextField txtWynik;
  46. private JTextField txtXO;
  47. private int pX,pO =0;
  48.  
  49.  
  50. public KikStart() {
  51. initialize();
  52. loadList();
  53. }
  54. private void loadList(){
  55.  
  56. clear.add(button1);
  57. clear.add(button2);
  58. clear.add(button3);
  59. clear.add(button4);
  60. clear.add(button5);
  61. clear.add(button6);
  62. clear.add(button7);
  63. clear.add(button8);
  64. clear.add(button9);
  65.  
  66. check1.add(button1);
  67. check1.add(button2);
  68. check1.add(button3);
  69.  
  70. check2.add(button4);
  71. check2.add(button5);
  72. check2.add(button6);
  73.  
  74. check3.add(button7);
  75. check3.add(button8);
  76. check3.add(button9);
  77.  
  78. check4.add(button1);
  79. check4.add(button4);
  80. check4.add(button7);
  81.  
  82. check5.add(button2);
  83. check5.add(button5);
  84. check5.add(button8);
  85.  
  86. check6.add(button3);
  87. check6.add(button6);
  88. check6.add(button9);
  89.  
  90. check7.add(button1);
  91. check7.add(button5);
  92. check7.add(button9);
  93.  
  94. check8.add(button3);
  95. check8.add(button5);
  96. check8.add(button7);
  97.  
  98. check.add(check1);
  99. check.add(check2);
  100. check.add(check3);
  101. check.add(check4);
  102. check.add(check5);
  103. check.add(check6);
  104. check.add(check7);
  105. check.add(check8);
  106. }
  107. private boolean checkWin(){
  108. for(List<JButton> list : check){
  109. int i=0;
  110. String[] win = new String[3];
  111. for(JButton jb : list){
  112. win[i]=jb.getText();
  113. i++;
  114. }
  115. if(win[0].equals(s)&&win[1].equals(s)&&win[2].equals(s)){
  116. if(s.equals("X")){
  117. pX++;
  118. }else pO++;
  119. wynikOut.setText(pX+" : "+pO);
  120. return true;
  121. }
  122. }
  123. boolean empty = false;
  124. for(JButton jb : clear){
  125. if(jb.getText().equals("")){
  126. empty=true;
  127. }
  128. }
  129. if(empty)return false;
  130. else return true;
  131. }
  132. private void reloadTexts(){
  133. if(new Random().nextInt(2)==0){
  134. s="X";
  135. }else s="O";
  136. for(JButton a : clear){
  137. a.setText("");
  138. }
  139. }
  140. private void changeS(){
  141. if(s.equals("X")){
  142. s="O";
  143. }else s="X";
  144. txtTeraz.setText("Teraz: "+s);
  145. }
  146. private void initialize() {
  147. if(new Random().nextInt(2)==0){
  148. s="X";
  149. }else s="O";
  150.  
  151. frame = new JFrame("Kółko i krzyżyk");
  152. frame.setBounds(100, 100, 300, 400);
  153. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  154. frame.getContentPane().setLayout(null);
  155. JLayeredPane layeredPane = new JLayeredPane();
  156. layeredPane.setBounds(69, 78, 162, 162);
  157. layeredPane.setBorder(null);
  158. frame.getContentPane().add(layeredPane);
  159.  
  160. button1 = new JButton("");
  161. button1.setBounds(0, 0, 54, 54);
  162. button1.addActionListener(this);
  163. layeredPane.add(button1);
  164.  
  165. button2 = new JButton("");
  166. button2.setBounds(54, 0, 54, 54);
  167. button2.addActionListener(this);
  168. layeredPane.add(button2);
  169.  
  170. button3 = new JButton("");
  171. button3.setBounds(108, 0, 54, 54);
  172. button3.addActionListener(this);
  173. layeredPane.add(button3);
  174.  
  175. button4 = new JButton("");
  176. button4.setBounds(0, 54, 54, 54);
  177. button4.addActionListener(this);
  178. layeredPane.add(button4);
  179.  
  180. button5 = new JButton("");
  181. button5.setBounds(54, 54, 54, 54);
  182. button5.addActionListener(this);
  183. layeredPane.add(button5);
  184.  
  185. button6 = new JButton("");
  186. button6.setBounds(108, 54, 54, 54);
  187. button6.addActionListener(this);
  188. layeredPane.add(button6);
  189.  
  190. button7 = new JButton("");
  191. button7.setBounds(0, 108, 54, 54);
  192. button7.addActionListener(this);
  193. layeredPane.add(button7);
  194.  
  195. button8 = new JButton("");
  196. button8.setBounds(54, 108, 54, 54);
  197. button8.addActionListener(this);
  198. layeredPane.add(button8);
  199.  
  200. button9 = new JButton("");
  201. button9.setBounds(108, 108, 54, 54);
  202. button9.addActionListener(this);
  203. layeredPane.add(button9);
  204.  
  205. wynikOut = new JTextField();
  206. wynikOut.setHorizontalAlignment(SwingConstants.CENTER);
  207. wynikOut.setBorder(null);
  208. wynikOut.setEditable(false);
  209. wynikOut.setBounds(156, 333, 122, 28);
  210. frame.getContentPane().add(wynikOut);
  211.  
  212. wynikOut.setColumns(10);
  213.  
  214. txtTeraz = new JTextField();
  215. txtTeraz.setBorder(null);
  216. txtTeraz.setEditable(false);
  217. txtTeraz.setText("Teraz: "+s);
  218. txtTeraz.setHorizontalAlignment(SwingConstants.CENTER);
  219. txtTeraz.setBounds(0, 0, 278, 28);
  220. frame.getContentPane().add(txtTeraz);
  221. txtTeraz.setColumns(10);
  222.  
  223. txtWynik = new JTextField();
  224. txtWynik.setBorder(null);
  225. txtWynik.setEditable(false);
  226. txtWynik.setHorizontalAlignment(SwingConstants.RIGHT);
  227. txtWynik.setText("Wynik:");
  228. txtWynik.setBounds(74, 333, 83, 28);
  229. frame.getContentPane().add(txtWynik);
  230. txtWynik.setColumns(10);
  231.  
  232. txtXO = new JTextField();
  233. txtXO.setBorder(null);
  234. txtXO.setHorizontalAlignment(SwingConstants.CENTER);
  235. txtXO.setEditable(false);
  236. txtXO.setText("X : O");
  237. txtXO.setBounds(156, 307, 122, 28);
  238. frame.getContentPane().add(txtXO);
  239. txtXO.setColumns(10);
  240. wynikOut.setText(pX+" : "+pO);
  241. }
  242.  
  243. public static void main(String[] args) {
  244. EventQueue.invokeLater(new Runnable() {
  245. public void run() {
  246. try {
  247. KikStart window = new KikStart();
  248. window.frame.setVisible(true);
  249. } catch (Exception e) {
  250. e.printStackTrace();
  251. }
  252. }
  253. });
  254. }
  255.  
  256. @Override
  257. public void actionPerformed(ActionEvent e) {
  258. JButton jb = (JButton) e.getSource();
  259. if(jb.getText().equals("")){
  260. jb.setText(s);
  261. }
  262. if(checkWin()){
  263. reloadTexts();
  264. }
  265. changeS();
  266.  
  267. }
  268. }
Advertisement
Add Comment
Please, Sign In to add comment