Guest User

Untitled

a guest
Apr 24th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.17 KB | None | 0 0
  1. import javax.swing.*;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import javax.swing.JOptionPane.*;
  6. import java.awt.*;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.io.*;
  10. import java.net.URL;
  11.  
  12. public class Memory extends JFrame implements ActionListener {
  13.  
  14. private static final long serialVersionUID = -302815886706732209L;
  15.  
  16.  
  17. private JButton Stop = new JButton("Stop");
  18. private JButton Restart = new JButton("Restart");
  19. private Kort[] k;
  20. private JPanel p = new JPanel();
  21. private JPanel grid = new JPanel (new GridLayout()); //griden som används sen
  22. private JPanel playu = new JPanel (new FlowLayout()); // flowfield för knappar
  23. private int Player1 = 0; // player 1 score
  24. private int Player2 = 0; //player 2 score
  25. private JLabel Player1score = new JLabel("player1 got"+Player1); //label för score
  26. private JLabel Player2score = new JLabel("player2 got"+Player2);// label för score
  27. private JPanel panelPlayer1 = new JPanel();
  28. private JPanel panelPlayer2 = new JPanel();
  29. private Kort kortet = null;
  30. private Kort kortet2 = null;
  31. private Timer timer = new Timer (1500, this);
  32. private int currentPlayer = 1;
  33. private int size;
  34.  
  35. public static void main(String[] args) {
  36. int size = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
  37. final Memory main = new Memory(size);
  38. //main.guit();
  39. //main.CreateMainWin(size);
  40.  
  41. }
  42.  
  43. public Memory (int size) {
  44. if (size == 2 || size == 4 || size == 6) { // 2x2, 4x4 eller 6x6
  45.  
  46. Stop.addActionListener (this); //actionlisteners för knapparna stop och restart
  47. Restart.addActionListener (this);
  48.  
  49. String bildloop[] = new String [20]; //array för sökvägar till bilder
  50. Kort k[] = new Kort [20]; //array för sökvägar till bilder
  51. for (int loopint = 0; loopint < 19; loopint++) {
  52.  
  53. File file = new File("Bildmapp\\"+(loopint+1)+".jpg"); // makes searchpaths
  54.  
  55. String absolutePath = file.getAbsolutePath();
  56. String filePath = absolutePath;
  57. bildloop[loopint] = filePath;
  58. System.out.println(bildloop[loopint]);
  59. }
  60.  
  61.  
  62. for (int loopint2 = 0; loopint2 < 19; loopint2++) { //combines searchpath and status to make a card
  63. k [loopint2] = new Kort(new ImageIcon(bildloop[loopint2]), Kort.Status.DOLT);
  64. System.out.println(k[loopint2]);
  65. }
  66. nyttSpel ( size, k); }
  67. else {System.out.println("FEL");
  68. int falseSize = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
  69. new Memory (falseSize);
  70. }
  71. }
  72.  
  73.  
  74.  
  75.  
  76. public void nyttSpel (int a ,Kort[] k) {
  77.  
  78.  
  79.  
  80.  
  81. int size = a;
  82. int rows = a;
  83. int cols = a;
  84. int b = rows * cols; // antalet brickor
  85. int i = k.length; // längd av k
  86. Kort arrays[] = new Kort [b]; // arrayen som blir "decken"
  87. int j = arrays.length; // längd av j
  88.  
  89. for (int looper = 0; looper < (size*(size/2));looper++) { // loop som kopierar från k
  90. arrays[looper] = k[looper].copy();
  91. System.out.println(arrays[looper]);
  92. }
  93.  
  94. for (int looper2 = 0; looper2 < (size*(size/2));looper2++) { //loop som kopierar arrays-arrays
  95. arrays[(j/2)+looper2] = arrays[looper2].copy();
  96. }
  97.  
  98. Verktyg.slumpOrdning(arrays); // shufflar slutligen arrayen
  99.  
  100. int bab = 0; // bara utskrivning av shitz
  101. while (bab <= j-1) {
  102. System.out.println(arrays[bab]+" element "+ bab);
  103. bab ++;
  104. }
  105.  
  106. guit(rows,arrays);
  107.  
  108.  
  109. }
  110. public void guit (int size,Kort[] arrays) {
  111. System.out.println(arrays.length);
  112.  
  113.  
  114. // setLayout(new GridLayout(size+1,size));
  115.  
  116. int cardInt = 0;
  117. for (int i=0; i < size; i++) {
  118. for (int j=0; j < size; j++) {
  119. //add (new JLabel(arrays[cardInt].getIcon()));
  120. // add(new JButton(i+""));
  121. grid.add(arrays[cardInt]);
  122. arrays[cardInt].addActionListener(this);
  123. cardInt ++;
  124.  
  125. }
  126. }
  127. add(p);
  128. p.setLayout (new BoxLayout (p, BoxLayout.PAGE_AXIS));
  129. p.add(playu);
  130. grid.setLayout(new GridLayout(size,size, 2, 2));
  131. panelPlayer1.setBackground(Color.pink);
  132. playu.add(panelPlayer1);
  133. playu.add(panelPlayer2);
  134. panelPlayer1.add(Player1score);
  135. panelPlayer2.add(Player2score);
  136. playu.add(Restart);
  137. playu.add(Stop);
  138. p.add(grid);
  139. setLocation(300,400);
  140. setSize(600,600);
  141. setVisible(true);
  142. setDefaultCloseOperation(EXIT_ON_CLOSE);
  143.  
  144. }
  145.  
  146.  
  147.  
  148. @Override
  149. public void actionPerformed(ActionEvent e) {
  150.  
  151. if (e.getSource() == timer) {
  152. if (kortet.sammaBild (kortet2)){ // om korten är samma
  153. kortet.setStatus(Kort.Status.SAKNAS); // ta bort korten från planen
  154. kortet2.setStatus(Kort.Status.SAKNAS);
  155. kortet = null; // nulla korten
  156. kortet2 = null;
  157. if (currentPlayer == 1){ // lägg till poäng till aktiv spelare
  158. Player1 ++ ;
  159. Player1score.setText("Player 1 got "+Player1+" score ");
  160. }
  161. if (currentPlayer == 2){
  162. Player2 ++;
  163. Player2score.setText("Player 2 got "+Player2+" score ");
  164.  
  165. }
  166.  
  167.  
  168. if (Player1 + Player2 == size*(size/2-1)) {
  169. if(Player1 > Player2){
  170. JOptionPane.showMessageDialog(null, "Player 1 wins!");
  171. System.out.println("Player 1 wins!");
  172. System.out.println(Player1);
  173. }
  174. else if (Player1 < Player2){
  175. JOptionPane.showMessageDialog(null, "Player 2 wins!");
  176. System.out.println("Player 2 wins!");
  177. System.out.println(Player1);
  178. }
  179. }
  180.  
  181. }
  182. else { // om korten ej är samma
  183. kortet.setStatus(Kort.Status.DOLT); // dölj båda
  184. kortet2.setStatus(Kort.Status.DOLT);
  185. kortet = null; //nulla korten
  186. kortet2 = null;
  187. if (currentPlayer == 1){ // ändra aktiv spelare
  188. currentPlayer = 2;
  189. panelPlayer1.setBackground(null);
  190. panelPlayer2.setBackground(Color.pink);
  191. }
  192. else if (currentPlayer == 2) {
  193. currentPlayer = 1;
  194. panelPlayer2.setBackground(null);
  195. panelPlayer1.setBackground(Color.pink);
  196. }
  197. }
  198.  
  199.  
  200. }
  201.  
  202. if (e.getSource() == Stop) { // stopknappen
  203. System.exit(0);
  204. }
  205.  
  206. if (e.getSource() == Restart) {
  207. setVisible(false); // Startar om programmet
  208. int newsize = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
  209. new Memory(newsize);
  210. System.out.println("restarting you say?");
  211. }
  212.  
  213. if (e.getSource()instanceof Kort) {
  214.  
  215. Kort k = (Kort) e.getSource(); // kortet som aktiverats
  216.  
  217. if (k.getStatus() == Kort.Status.SAKNAS) {
  218. }
  219.  
  220. if (k.getStatus() == Kort.Status.SYNLIGT) {
  221. }
  222.  
  223. if (k.getStatus() == Kort.Status.DOLT && (kortet == null || kortet2 == null)) {
  224. k.setStatus(Kort.Status.SYNLIGT);
  225. if (kortet == null) {
  226. kortet = k;
  227. System.out.println(kortet);
  228. }
  229. else if (kortet2 == null && k != kortet) { kortet2 = k;
  230. timer.setRepeats(false);
  231. timer.start();
  232. System.out.println(kortet2);
  233. }
  234.  
  235.  
  236.  
  237. }
  238.  
  239. }
  240. }
  241. }
Add Comment
Please, Sign In to add comment