Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.io.File;
- import java.io.IOException;
- import javax.swing.JOptionPane.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.*;
- import java.net.URL;
- public class Memory extends JFrame implements ActionListener {
- private static final long serialVersionUID = -302815886706732209L;
- private JButton Stop = new JButton("Stop");
- private JButton Restart = new JButton("Restart");
- private Kort[] k;
- private JPanel p = new JPanel();
- private JPanel grid = new JPanel (new GridLayout()); //griden som används sen
- private JPanel playu = new JPanel (new FlowLayout()); // flowfield för knappar
- private int Player1 = 0; // player 1 score
- private int Player2 = 0; //player 2 score
- private JLabel Player1score = new JLabel("player1 got"+Player1); //label för score
- private JLabel Player2score = new JLabel("player2 got"+Player2);// label för score
- private JPanel panelPlayer1 = new JPanel();
- private JPanel panelPlayer2 = new JPanel();
- private Kort kortet = null;
- private Kort kortet2 = null;
- private Timer timer = new Timer (1500, this);
- private int currentPlayer = 1;
- private int size;
- public static void main(String[] args) {
- int size = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
- final Memory main = new Memory(size);
- //main.guit();
- //main.CreateMainWin(size);
- }
- public Memory (int size) {
- if (size == 2 || size == 4 || size == 6) { // 2x2, 4x4 eller 6x6
- Stop.addActionListener (this); //actionlisteners för knapparna stop och restart
- Restart.addActionListener (this);
- String bildloop[] = new String [20]; //array för sökvägar till bilder
- Kort k[] = new Kort [20]; //array för sökvägar till bilder
- for (int loopint = 0; loopint < 19; loopint++) {
- File file = new File("Bildmapp\\"+(loopint+1)+".jpg"); // makes searchpaths
- String absolutePath = file.getAbsolutePath();
- String filePath = absolutePath;
- bildloop[loopint] = filePath;
- System.out.println(bildloop[loopint]);
- }
- for (int loopint2 = 0; loopint2 < 19; loopint2++) { //combines searchpath and status to make a card
- k [loopint2] = new Kort(new ImageIcon(bildloop[loopint2]), Kort.Status.DOLT);
- System.out.println(k[loopint2]);
- }
- nyttSpel ( size, k); }
- else {System.out.println("FEL");
- int falseSize = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
- new Memory (falseSize);
- }
- }
- public void nyttSpel (int a ,Kort[] k) {
- int size = a;
- int rows = a;
- int cols = a;
- int b = rows * cols; // antalet brickor
- int i = k.length; // längd av k
- Kort arrays[] = new Kort [b]; // arrayen som blir "decken"
- int j = arrays.length; // längd av j
- for (int looper = 0; looper < (size*(size/2));looper++) { // loop som kopierar från k
- arrays[looper] = k[looper].copy();
- System.out.println(arrays[looper]);
- }
- for (int looper2 = 0; looper2 < (size*(size/2));looper2++) { //loop som kopierar arrays-arrays
- arrays[(j/2)+looper2] = arrays[looper2].copy();
- }
- Verktyg.slumpOrdning(arrays); // shufflar slutligen arrayen
- int bab = 0; // bara utskrivning av shitz
- while (bab <= j-1) {
- System.out.println(arrays[bab]+" element "+ bab);
- bab ++;
- }
- guit(rows,arrays);
- }
- public void guit (int size,Kort[] arrays) {
- System.out.println(arrays.length);
- // setLayout(new GridLayout(size+1,size));
- int cardInt = 0;
- for (int i=0; i < size; i++) {
- for (int j=0; j < size; j++) {
- //add (new JLabel(arrays[cardInt].getIcon()));
- // add(new JButton(i+""));
- grid.add(arrays[cardInt]);
- arrays[cardInt].addActionListener(this);
- cardInt ++;
- }
- }
- add(p);
- p.setLayout (new BoxLayout (p, BoxLayout.PAGE_AXIS));
- p.add(playu);
- grid.setLayout(new GridLayout(size,size, 2, 2));
- panelPlayer1.setBackground(Color.pink);
- playu.add(panelPlayer1);
- playu.add(panelPlayer2);
- panelPlayer1.add(Player1score);
- panelPlayer2.add(Player2score);
- playu.add(Restart);
- playu.add(Stop);
- p.add(grid);
- setLocation(300,400);
- setSize(600,600);
- setVisible(true);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getSource() == timer) {
- if (kortet.sammaBild (kortet2)){ // om korten är samma
- kortet.setStatus(Kort.Status.SAKNAS); // ta bort korten från planen
- kortet2.setStatus(Kort.Status.SAKNAS);
- kortet = null; // nulla korten
- kortet2 = null;
- if (currentPlayer == 1){ // lägg till poäng till aktiv spelare
- Player1 ++ ;
- Player1score.setText("Player 1 got "+Player1+" score ");
- }
- if (currentPlayer == 2){
- Player2 ++;
- Player2score.setText("Player 2 got "+Player2+" score ");
- }
- if (Player1 + Player2 == size*(size/2-1)) {
- if(Player1 > Player2){
- JOptionPane.showMessageDialog(null, "Player 1 wins!");
- System.out.println("Player 1 wins!");
- System.out.println(Player1);
- }
- else if (Player1 < Player2){
- JOptionPane.showMessageDialog(null, "Player 2 wins!");
- System.out.println("Player 2 wins!");
- System.out.println(Player1);
- }
- }
- }
- else { // om korten ej är samma
- kortet.setStatus(Kort.Status.DOLT); // dölj båda
- kortet2.setStatus(Kort.Status.DOLT);
- kortet = null; //nulla korten
- kortet2 = null;
- if (currentPlayer == 1){ // ändra aktiv spelare
- currentPlayer = 2;
- panelPlayer1.setBackground(null);
- panelPlayer2.setBackground(Color.pink);
- }
- else if (currentPlayer == 2) {
- currentPlayer = 1;
- panelPlayer2.setBackground(null);
- panelPlayer1.setBackground(Color.pink);
- }
- }
- }
- if (e.getSource() == Stop) { // stopknappen
- System.exit(0);
- }
- if (e.getSource() == Restart) {
- setVisible(false); // Startar om programmet
- int newsize = Integer.parseInt( JOptionPane.showInputDialog("2,4 eller 6 rader/kols?"));
- new Memory(newsize);
- System.out.println("restarting you say?");
- }
- if (e.getSource()instanceof Kort) {
- Kort k = (Kort) e.getSource(); // kortet som aktiverats
- if (k.getStatus() == Kort.Status.SAKNAS) {
- }
- if (k.getStatus() == Kort.Status.SYNLIGT) {
- }
- if (k.getStatus() == Kort.Status.DOLT && (kortet == null || kortet2 == null)) {
- k.setStatus(Kort.Status.SYNLIGT);
- if (kortet == null) {
- kortet = k;
- System.out.println(kortet);
- }
- else if (kortet2 == null && k != kortet) { kortet2 = k;
- timer.setRepeats(false);
- timer.start();
- System.out.println(kortet2);
- }
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment