Browse Source

Merge commit '6722a62792900ca9e5a7f5650aab2c3c1a8f1c5f' into HEAD

solitaer_Game
Jenkins 3 years ago
parent
commit
b2c43f842d
  1. 7
      src/main/java/hauptmenue/GameWindow.java
  2. 10
      src/main/java/solitaer/BaseStack.java
  3. 76
      src/main/java/solitaer/SolitaerGamePanel.java
  4. 53
      src/main/java/solitaer/SolitaerMenue.java

7
src/main/java/hauptmenue/GameWindow.java

@ -5,18 +5,19 @@ import java.awt.Dimension;
import javax.swing.JFrame; import javax.swing.JFrame;
import solitaer.SolitaerGamePanel; import solitaer.SolitaerGamePanel;
import solitaer.SolitaerMenue;
public class GameWindow extends JFrame { public class GameWindow extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final SolitaerGamePanel gamePanel = new SolitaerGamePanel(); private final SolitaerGamePanel gamePanel = new SolitaerGamePanel();
private SolitaerMenue smenue = new SolitaerMenue(gamePanel);
public GameWindow() { public GameWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gamePanel.setPreferredSize(new Dimension(1180, 780)); gamePanel.setPreferredSize(new Dimension(1180, 780));
this.setJMenuBar(smenue.getMenue());
add(gamePanel); add(gamePanel);
pack(); pack();

10
src/main/java/solitaer/BaseStack.java

@ -12,8 +12,8 @@ public abstract class BaseStack extends JPanel {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private ArrayList<Card> stack = new ArrayList<Card>(); private ArrayList<Card> stack = new ArrayList<Card>();
private final int OFFSET_VALUE = 20; private final int OFFSET_VALUE = 20;
int offset;
int addOffset;
private int offset;
private int addOffset;
public BaseStack(boolean _offset) { public BaseStack(boolean _offset) {
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
@ -24,6 +24,12 @@ public abstract class BaseStack extends JPanel {
} }
offset = 0; offset = 0;
} }
public void clearStack() {
stack.clear();
offset = 0;
RenderStackNew();
}
public boolean stackIsEmpty() { public boolean stackIsEmpty() {
return stack.isEmpty(); return stack.isEmpty();

76
src/main/java/solitaer/SolitaerGamePanel.java

@ -1,7 +1,6 @@
package solitaer; package solitaer;
import java.awt.Color; import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics; import java.awt.Graphics;
import javax.swing.JLabel; import javax.swing.JLabel;
@ -19,6 +18,8 @@ public class SolitaerGamePanel extends JPanel {
public final int STARTSTACK_SIZE = 7; public final int STARTSTACK_SIZE = 7;
public final int ABLAGESTACK_SIZE = 4; public final int ABLAGESTACK_SIZE = 4;
private Color backgroundColor = new Color(0, 135, 62);
private CardDeck deck; private CardDeck deck;
private MyMouseListener mouseL; private MyMouseListener mouseL;
@ -32,36 +33,23 @@ public class SolitaerGamePanel extends JPanel {
public SolitaerGamePanel() { public SolitaerGamePanel() {
setLayout(null); setLayout(null);
int Offset_x_Save = setLayoutX(STARTSTACK_SIZE + 1); int Offset_x_Save = setLayoutX(STARTSTACK_SIZE + 1);
int Offset_y_Save = setLayouty(1); int Offset_y_Save = setLayouty(1);
JLabel label = new JLabel(); JLabel label = new JLabel();
label.setText("selected Cards"); label.setText("selected Cards");
label.setBounds(Offset_x_Save, Offset_y_Save - 25, 200, 25); label.setBounds(Offset_x_Save, Offset_y_Save - 25, 200, 25);
this.add(label); this.add(label);
save = new SaveStack(Offset_x_Save, Offset_y_Save); save = new SaveStack(Offset_x_Save, Offset_y_Save);
this.add(save);
mouseL = new MyMouseListener(save); mouseL = new MyMouseListener(save);
this.addMouseListener(mouseL); this.addMouseListener(mouseL);
deck = new CardDeck();
deck.shuffelDeck();
for (int i = 0; i < STARTSTACK_SIZE; i++) { for (int i = 0; i < STARTSTACK_SIZE; i++) {
int y = setLayouty(1); int y = setLayouty(1);
start[i] = new StartStack(setLayoutX(i), y); start[i] = new StartStack(setLayoutX(i), y);
int tmp = i;
while(tmp != 0) {
start[i].addCard(deck.getDeck().remove(0));
tmp -= 1;
}
Card card = deck.getDeck().remove(0);
card.setFaceUp(true);
start[i].addCard(card);
this.add(start[i]);
} }
for (int i = 0; i < ABLAGESTACK_SIZE; i++) { for (int i = 0; i < ABLAGESTACK_SIZE; i++) {
@ -84,22 +72,12 @@ public class SolitaerGamePanel extends JPanel {
default: default:
break; break;
} }
this.add(ablage[i]);
} }
waste = new WasteStack(setLayoutX(1), OFFSET_STACKS_Y); waste = new WasteStack(setLayoutX(1), OFFSET_STACKS_Y);
geber = new GeberStack(setLayoutX(0), OFFSET_STACKS_Y, waste); geber = new GeberStack(setLayoutX(0), OFFSET_STACKS_Y, waste);
while(deck.getDeck().size() != 1) {
geber.addCard(deck.getDeck().remove(0));
}
Card card = deck.getDeck().remove(0);
card.setFaceUp(true);
waste.addCard(card);
this.add(waste);
this.add(geber);
restartGame();
} }
@ -108,17 +86,55 @@ public class SolitaerGamePanel extends JPanel {
} }
private int setLayouty(int _row) { private int setLayouty(int _row) {
if(_row == 1)
if (_row == 1)
return IMAGE_HIGHT + (OFFSET_STACKS_Y * 3); return IMAGE_HIGHT + (OFFSET_STACKS_Y * 3);
else else
return OFFSET_STACKS_Y; return OFFSET_STACKS_Y;
} }
public void restartGame() {
deck = new CardDeck();
deck.shuffelDeck();
for (int i = 0; i < STARTSTACK_SIZE; i++) {
start[i].clearStack();
int tmp = i;
while (tmp != 0) {
start[i].addCard(deck.getDeck().remove(0));
tmp -= 1;
}
Card card = deck.getDeck().remove(0);
card.setFaceUp(true);
start[i].addCard(card);
this.add(start[i]);
}
for (int i = 0; i < ABLAGESTACK_SIZE; i++) {
ablage[i].clearStack();
this.add(ablage[i]);
}
geber.clearStack();
waste.clearStack();
while (deck.getDeck().size() != 1) {
geber.addCard(deck.getDeck().remove(0));
}
Card card = deck.getDeck().remove(0);
card.setFaceUp(true);
waste.addCard(card);
this.add(waste);
this.add(geber);
save.clearStack();
this.add(save);
}
@Override @Override
protected void paintComponent(Graphics g) { protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
super.paintComponent(g); super.paintComponent(g);
g.setColor(new Color(0, 135, 62));
g.setColor(backgroundColor);
g.fillRect(0, 0, this.getWidth(), this.getHeight()); g.fillRect(0, 0, this.getWidth(), this.getHeight());
} }
} }

53
src/main/java/solitaer/SolitaerMenue.java

@ -0,0 +1,53 @@
package solitaer;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class SolitaerMenue implements ActionListener{
SolitaerGamePanel solitaerpanel;
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("options");
JMenuItem restart = new JMenuItem("restart");
JMenuItem quit = new JMenuItem("quit");
public SolitaerMenue(SolitaerGamePanel _panel) {
solitaerpanel = _panel;
this.restart.addActionListener(this);
this.menu.add(restart);
this.menu.addSeparator();
this.quit.addActionListener(this);
this.menu.add(quit);
this.menuBar.add(menu);
}
public JMenuBar getMenue() {
return menuBar;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == this.quit) {
System.out.println("quit");
System.exit(0);
}
if(e.getSource() == this.restart) {
solitaerpanel.restartGame();
}
}
}
Loading…
Cancel
Save