diff --git a/src/GUI/game/ButtonActionListener.java b/src/GUI/game/ButtonActionListener.java index ae86cdbd64b322e3ed1261b276483ce8ae4b6584..a1626cfa3957c5b9fb5c023e1f9060487d7177db 100644 --- a/src/GUI/game/ButtonActionListener.java +++ b/src/GUI/game/ButtonActionListener.java @@ -4,13 +4,10 @@ */ package GUI.game; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JButton; import javax.swing.SwingUtilities; -import sun.swing.SwingUtilities2; /** * @@ -36,15 +33,27 @@ public class ButtonActionListener implements MouseListener public void mousePressed(MouseEvent me) { JButton button; + button = (JButton) me.getSource(); - if( SwingUtilities.isLeftMouseButton(me) ) + + if( "quit".equals(button.getName()) ) { - controller.gameLeftButtonPressed(button.getName()); + this.controller.gameOver(); + EndOfGamePopUp popup = new EndOfGamePopUp(controller); + } - else if(SwingUtilities.isRightMouseButton(me)) + else { - controller.gameRightButtonPressed(button.getName()); + if( SwingUtilities.isLeftMouseButton(me) ) + { + controller.gameLeftButtonPressed(button.getName()); + } + else if(SwingUtilities.isRightMouseButton(me)) + { + controller.gameRightButtonPressed(button.getName()); + } } + } @Override diff --git a/src/GUI/game/Controller.java b/src/GUI/game/Controller.java index 62a6cabfdafb4ba0043c5b4da71d537f0dcfb530..8b2f56cd34f0c93e023d2dbe91f71deb9a405c49 100644 --- a/src/GUI/game/Controller.java +++ b/src/GUI/game/Controller.java @@ -70,8 +70,6 @@ public class Controller { int[]pos = this.getButtonPos(button); model.calculateButtonStyle(pos); - - } public void gameRightButtonPressed(String button) { diff --git a/src/GUI/game/EndOfGamePopUp.java b/src/GUI/game/EndOfGamePopUp.java index 014b54b91a1902e963b66831ab92beb124a4abea..288d87c46f87703b11a82f2d1bde2fb86292e39f 100644 --- a/src/GUI/game/EndOfGamePopUp.java +++ b/src/GUI/game/EndOfGamePopUp.java @@ -13,13 +13,16 @@ import javax.swing.JOptionPane; */ public class EndOfGamePopUp { - JFrame frame = new JFrame(); - Controller controller; + public int endScore; + private JFrame frame = new JFrame(); + private Controller controller; + public EndOfGamePopUp(Controller controller) { + this.endScore = 0; this.controller = controller; Object[] options = {"Yes","No","Quit"}; - int n = JOptionPane.showOptionDialog(frame,"Would you like to start a new game?","Game Over!", + int n = JOptionPane.showOptionDialog(frame,"Your score: " + this.endScore + "\n Would you like to start a new game?","Game Over!", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, diff --git a/src/GUI/game/Model.java b/src/GUI/game/Model.java index 1acf4b307441faaa8820e0dce2b7618ea23219c2..37b40ba1af254f0595f030bf42dfb15c05be798d 100644 --- a/src/GUI/game/Model.java +++ b/src/GUI/game/Model.java @@ -18,13 +18,13 @@ import javax.swing.JButton; */ public class Model { - Controller controller; - public JButton[][] squares; - public int timeLeft; - Boolean calculateDone; - ArrayList<int[]> nulls; - int mines; - Boolean isGameOver; + private Controller controller; + public JButton[][] squares; + public int timeLeft; + public Boolean calculateDone; + public ArrayList<int[]> nulls; + public int mines; + public Boolean isGameOver; public Model(Controller controller) diff --git a/src/GUI/game/StopWatch.java b/src/GUI/game/StopWatch.java index cd9c0aa2c3562dba3b0c0c98d11323129db32b15..1e54f67753f2481940bc59bcfef96cf7151018ed 100644 --- a/src/GUI/game/StopWatch.java +++ b/src/GUI/game/StopWatch.java @@ -4,9 +4,6 @@ */ package GUI.game; -import java.util.logging.Level; -import java.util.logging.Logger; - /** * * @author Dániel diff --git a/src/GUI/game/View.java b/src/GUI/game/View.java index 6f1c79d5dee67cb6729c9789228cdf2c368298fe..583893db43c8b4fe1d3d588f0eb50a5f704b6818 100644 --- a/src/GUI/game/View.java +++ b/src/GUI/game/View.java @@ -7,6 +7,9 @@ package GUI.game; import GUI.Window.Window; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; @@ -38,7 +41,7 @@ public class View extends Window this.model = gameModel; this.controller = game; - this.setSize(controller.settings.size*46,controller.settings.size*26); + //this.setSize(controller.settings.size*46+200,controller.settings.size*26+200); //w41 h26 this.setLayout(new GridLayout(controller.settings.size,controller.settings.size)); //this.createWindow(); @@ -76,21 +79,21 @@ public class View extends Window //Frame this.frame = new JFrame("Minesweeper"); - frame.setSize(controller.settings.size*46,(controller.settings.size+4)*26); + frame.setSize(controller.settings.size*46,(controller.settings.size+4)*26+100); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); GridBagConstraints c = new GridBagConstraints(); - JPanel upper = new JPanel(); + JPanel upper = new JPanel(new FlowLayout()); upper.setSize(controller.settings.size*41,100); this.timeLeftLabel = new JLabel(); this.mineFlaggedLabel = new JLabel(); - JButton stopButton = new JButton(); + JButton resetBTN = new JButton(); - stopButton.setText("Restart"); + resetBTN.setText("Restart"); this.mineFlaggedLabel.setText(Integer.toString(this.flagged)); @@ -98,9 +101,30 @@ public class View extends Window c.gridx = 0; c.gridy = 0; - upper.add(this.mineFlaggedLabel); - upper.add(stopButton); - upper.add(this.timeLeftLabel); + JLabel minesLeftLabel = new JLabel("Mines:"); + JLabel timeLeftLabel = new JLabel("Time:"); + + JPanel minesLeftPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); + JPanel resetBTNpanel = new JPanel(new FlowLayout(FlowLayout.CENTER)); + JPanel timeLeftPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); + + + minesLeftPanel.add(minesLeftLabel); + minesLeftPanel.add(this.mineFlaggedLabel,BorderLayout.CENTER); + + resetBTNpanel.add(resetBTN,BorderLayout.CENTER); + + timeLeftPanel.add(timeLeftLabel); + timeLeftPanel.add(this.timeLeftLabel,BorderLayout.CENTER); + + + + + upper.add(minesLeftPanel); + upper.add(resetBTNpanel); + upper.add(timeLeftPanel); + + panel.add(upper,c); @@ -109,10 +133,31 @@ public class View extends Window c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 0; c.gridy = 1; - - panel.add(buttons,c); + + panel.add(buttons,c); + + JPanel footer = new JPanel(); + JButton quitBTN = new JButton("Quit"); + quitBTN.addMouseListener(new ButtonActionListener(controller)); + quitBTN.setName("quit"); + + JLabel pointsLabel = new JLabel("Points:"); + JLabel recordLabel = new JLabel("MaxPoints:"); + + footer.add(quitBTN); + footer.add(pointsLabel); + footer.add(recordLabel); + + c.fill = GridBagConstraints.HORIZONTAL; + c.gridx = 0; + c.gridy = 2; + + panel.add(footer,c); + + frame.add(panel); + this.setCenter(); } public void closeWindow() diff --git a/src/GUI/window/Window.java b/src/GUI/window/Window.java index 7ac780478b3a017491a45bfa2ef67cedde9e1adf..3644ab755a4a13bfc96d4c64dae5f32cd80f7d7d 100644 --- a/src/GUI/window/Window.java +++ b/src/GUI/window/Window.java @@ -7,8 +7,6 @@ package GUI.Window; import java.awt.Dimension; -import java.awt.GraphicsDevice; -import java.awt.GraphicsEnvironment; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.JPanel; @@ -18,8 +16,8 @@ import javax.swing.JPanel; * @author Kovax */ public class Window extends JPanel { - protected int windowHeight = 600; - protected int windowWidth = 600; + protected int windowHeight = 400; + protected int windowWidth = 400; protected JFrame frame; diff --git a/src/Program/Program.java b/src/Program/Program.java index 2e3a57194906f2b45f58fea29202a25ade63f2b5..9acaf5a7bc1340ba31c3637622aa23b336383b05 100644 --- a/src/Program/Program.java +++ b/src/Program/Program.java @@ -15,7 +15,7 @@ public class Program public static void main(String[] args) { - Settings settings = new Settings(8,"UnnamedPlayer",1); + Settings settings = new Settings(8,"UnnamedPlayer",1,600,600); Game game = new Game(settings); } diff --git a/src/Program/Settings.java b/src/Program/Settings.java index 2a30c4191bfa4dda500b5c29d741bcedc1b1c12e..0881670c2212c7f384bf72a2bb3bdf0f62a3c939 100644 --- a/src/Program/Settings.java +++ b/src/Program/Settings.java @@ -13,11 +13,16 @@ public class Settings public int size; public String playerName; public int level; + public int windowWidth; + public int windowHeight; - public Settings(int size,String playerName, int level) + public Settings(int size,String playerName, int level,int windowWidth, int windowHeight) { this.size = size; this.playerName = playerName; this.level = level; + this.windowHeight = windowHeight; + this.windowWidth = windowWidth; + } }