Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package csc216project3;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseListener;
- import javax.swing.JFrame;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JMenu;
- import javax.swing.JMenuItem;
- import javax.swing.JMenuBar;
- import javax.swing.KeyStroke;
- import csc216project3.FreeCellGame.where;
- public class FreeCellView extends JFrame implements ActionListener, MouseListener {
- private FreeCellGame game;
- private Container pane;
- private CardPanel fPanel;
- private CardPanel tPanel;
- private CardPanel hPanel;
- private Card selectedCard;
- private Card tempCard;
- private CardPanel oldClickedPanel;
- String fromPile = "", toPile = "";
- int fromPileInt = 0, toPileInt = 0;
- public FreeCellView(FreeCellGame g) {
- super("Free Cell");
- game = g;
- pane = getContentPane();
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JMenuBar menuBar;
- JMenu menu;
- JMenuItem mbNewGame;
- JMenuItem mbOpenGame;
- JMenuItem mbExit;
- menuBar = new JMenuBar();
- menu = new JMenu("Game");
- menu.setMnemonic(KeyEvent.VK_G);
- menu.getAccessibleContext().setAccessibleDescription(
- "Game options menu.");
- menuBar.add(menu);
- mbNewGame = new JMenuItem("New Game", KeyEvent.VK_N);
- mbNewGame.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_N, ActionEvent.ALT_MASK));
- mbNewGame.getAccessibleContext().setAccessibleDescription(
- "Starts a new game with a random deck.");
- mbNewGame.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- setVisible(false);
- dispose();
- new FreeCell();
- }
- });
- menu.add(mbNewGame);
- mbOpenGame = new JMenuItem("Open Game", KeyEvent.VK_O);
- mbOpenGame.setAccelerator(KeyStroke.getKeyStroke(
- KeyEvent.VK_O, ActionEvent.ALT_MASK));
- mbOpenGame.getAccessibleContext().setAccessibleDescription(
- "Starts a new game with a predefined seed.");
- mbOpenGame.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- String seed = JOptionPane.showInputDialog("Enter the seed.");
- setVisible(false);
- dispose();
- if (seed.isEmpty())
- new FreeCell();
- else
- new FreeCell(seed);
- }
- });
- menu.add(mbOpenGame);
- mbExit = new JMenuItem("Exit", KeyEvent.VK_X);
- mbExit.getAccessibleContext().setAccessibleDescription(
- "Exits the current game.");
- mbExit.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- System.exit(0);
- }
- });
- menu.add(mbExit);
- setJMenuBar(menuBar);
- fPanel = new CardPanel(350,125);
- hPanel = new CardPanel(350,125);
- tPanel = new CardPanel(700,475);
- fPanel.setPile(game.getFreeCells());
- hPanel.setPile(game.getHome());
- tPanel.setPile(game.getTableau());
- fPanel.setGame(game);
- hPanel.setGame(game);
- tPanel.setGame(game);
- fPanel.addMouseListener(this);
- hPanel.addMouseListener(this);
- tPanel.addMouseListener(this);
- tPanel.setBGColor(new Color(0,150,0));
- pane.setLayout(new GridBagLayout());
- GridBagConstraints c = new GridBagConstraints();
- c.gridy = 0;
- c.gridx = 0;
- c.fill = GridBagConstraints.HORIZONTAL;
- pane.add(fPanel,c);
- c.gridy = 0;
- c.gridx = 1;
- c.fill = GridBagConstraints.HORIZONTAL;
- pane.add(hPanel,c);
- c.gridy = 1;
- c.gridx = 0;
- c.gridwidth = 2;
- c.fill = GridBagConstraints.HORIZONTAL;
- pane.add(tPanel,c);
- pack();
- setVisible(true);
- }
- /*public void paint(Graphics page) {
- super.paint(page);
- if (game.getSelectedCard()!=null) {
- page.setColor(Color.YELLOW);
- int x1 = game.getSelectedCard().xCoordinate();
- int y1 = game.getSelectedCard().yCoordinate();
- page.drawRect(x1,y1,74,98);
- page.drawRect(x1-1,y1-1,74,98);
- page.drawRect(x1-2,y1-2,74,98);
- System.out.println(x1+" "+y1);
- }
- }*/
- public void actionPerformed(ActionEvent e) {
- }
- public void mouseClicked(MouseEvent e) {
- CardPanel clickedPanel = (CardPanel)e.getComponent();
- int pile = clickedPanel.pileClicked(e.getX(),e.getY());
- if (selectedCard == null) {
- boolean onTopCard = false;
- if (pile >= 0)
- onTopCard = clickedPanel.isOnTopCard(e.getX(),e.getY(),pile);
- if (onTopCard) {
- selectedCard = clickedPanel.getTopCard(pile);
- game.setSelectedCard(selectedCard);
- oldClickedPanel = clickedPanel;
- fromPile = clickedPanel.getPileType();
- fromPileInt = pile;
- }
- } else {
- game.setSelectedCard(null);
- if (pile >= 0) {
- toPile = clickedPanel.getPileType();
- toPileInt = pile;
- if (fromPile.equals("TableauPile")) {
- if (toPile.equals("TableauPile"))
- game.makeMove(where.inTableau, where.inTableau, fromPileInt, toPileInt);
- if (toPile.equals("HomeCellPile"))
- game.makeMove(where.inTableau, where.inHome, fromPileInt, toPileInt);
- if (toPile.equals("FreeCellPile"))
- game.makeMove(where.inTableau, where.inFree, fromPileInt, toPileInt);
- }
- if (fromPile.equals("FreeCellPile")) {
- if (toPile.equals("TableauPile"))
- game.makeMove(where.inFree, where.inTableau, fromPileInt, toPileInt);
- if (toPile.equals("HomeCellPile"))
- game.makeMove(where.inFree, where.inHome, fromPileInt, toPileInt);
- if (toPile.equals("FreeCellPile"))
- game.makeMove(where.inFree, where.inFree, fromPileInt, toPileInt);
- }
- if (fromPile.equals("HomeCellPile")) {
- if (toPile.equals("TableauPile"))
- game.makeMove(where.inHome, where.inTableau, fromPileInt, toPileInt);
- if (toPile.equals("HomeCellPile"))
- game.makeMove(where.inHome, where.inHome, fromPileInt, toPileInt);
- if (toPile.equals("FreeCellPile"))
- game.makeMove(where.inHome, where.inFree, fromPileInt, toPileInt);
- }
- clickedPanel.clear();
- oldClickedPanel.clear();
- /*
- System.out.println(clickedPanel.getPileType());
- if (clickedPanel.getPileType().equals("TableauPile")) {
- tempCard = clickedPanel.getSelectedCard(pile);
- toPile = clickedPanel.getPile(pile);
- if (fromPile.legalRemove() && toPile.legalAdd(selectedCard)) {
- }
- }
- if (clickedPanel.getPileType().equals("FreeCellPile")) {
- System.out.println("ASDF");
- }*/
- }
- selectedCard = null;
- }
- }
- @Override
- public void mouseEntered(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseExited(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mousePressed(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void mouseReleased(MouseEvent arg0) {
- // TODO Auto-generated method stub
- }
- }
Add Comment
Please, Sign In to add comment