Jenkins
3 years ago
3 changed files with 106 additions and 87 deletions
-
6src/main/java/solitaer/CardDeck.java
-
15src/main/java/solitaer/MyMouseListener.java
-
172src/main/java/solitaer/SolitaerGamePanel.java
@ -1,110 +1,124 @@ |
|||
package solitaer; |
|||
|
|||
import java.awt.Color; |
|||
import java.awt.Font; |
|||
import java.awt.Graphics; |
|||
|
|||
import javax.swing.JLabel; |
|||
import javax.swing.JPanel; |
|||
|
|||
public class SolitaerGamePanel extends JPanel { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
private final int OFFSET_STACKS_X = 5; |
|||
private final int OFFSET_STACKS_Y = 15; |
|||
|
|||
public final int IMAGE_WIDTH = 72; |
|||
public final int IMAGE_HIGHT = 96; |
|||
|
|||
public final int STARTSTACK_SIZE = 7; |
|||
public final int ABLAGESTACK_SIZE = 4; |
|||
|
|||
private CardDeck deck; |
|||
private MyMouseListener mouseL; |
|||
|
|||
private SaveStack save =new SaveStack(500,250); |
|||
|
|||
|
|||
private SaveStack save; |
|||
private StartStack[] start = new StartStack[7]; |
|||
private AblageStack[] ablage = new AblageStack[4]; |
|||
|
|||
private WasteStack waste; |
|||
private GeberStack geber; |
|||
|
|||
public SolitaerGamePanel() { |
|||
setLayout(null); |
|||
|
|||
mouseL = new MyMouseListener(save); |
|||
this.addMouseListener(mouseL); |
|||
|
|||
int Offset_x_Save = setLayoutX(STARTSTACK_SIZE + 1); |
|||
int Offset_y_Save = setLayouty(1); |
|||
|
|||
deck = new CardDeck(); |
|||
JLabel label = new JLabel(); |
|||
label.setText("selected Cards"); |
|||
label.setBounds(Offset_x_Save, Offset_y_Save - 25, 200, 25); |
|||
this.add(label); |
|||
|
|||
|
|||
|
|||
StartStack a = new StartStack(25,125); |
|||
|
|||
deck.getDeck().get(5).setFaceUp(true); |
|||
a.addCard((deck.getDeck().get(5))); |
|||
|
|||
deck.getDeck().get(4).setFaceUp(true); |
|||
a.addCard((deck.getDeck().get(4))); |
|||
|
|||
deck.getDeck().get(3).setFaceUp(true); |
|||
a.addCard((deck.getDeck().get(3))); |
|||
|
|||
deck.getDeck().get(2).setFaceUp(true); |
|||
a.addCard((deck.getDeck().get(2))); |
|||
|
|||
deck.getDeck().get(1).setFaceUp(true); |
|||
a.addCard((deck.getDeck().get(1))); |
|||
|
|||
deck.getDeck().get(0).setFaceUp(true); |
|||
a.addCard(deck.getDeck().get(0)); |
|||
|
|||
this.add(a); |
|||
|
|||
StartStack b = new StartStack(200,125); |
|||
|
|||
deck.getDeck().get(32).setFaceUp(true); |
|||
b.addCard((deck.getDeck().get(32))); |
|||
this.add(b); |
|||
|
|||
StartStack c = new StartStack(375,125); |
|||
|
|||
//deck.getDeck().get(20).setFaceUp(true); |
|||
c.addCard((deck.getDeck().get(20))); |
|||
this.add(c); |
|||
|
|||
|
|||
StartStack d = new StartStack(475,125); |
|||
this.add(d); |
|||
|
|||
//save = new SaveStack(500,250); |
|||
save = new SaveStack(Offset_x_Save, Offset_y_Save); |
|||
this.add(save); |
|||
|
|||
mouseL = new MyMouseListener(save); |
|||
this.addMouseListener(mouseL); |
|||
|
|||
deck = new CardDeck(); |
|||
deck.shuffelDeck(); |
|||
|
|||
for (int i = 0; i < STARTSTACK_SIZE; i++) { |
|||
int y = setLayouty(1); |
|||
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++) { |
|||
int x = setLayoutX(((STARTSTACK_SIZE - ABLAGESTACK_SIZE) + i)); |
|||
int y = setLayouty(0); |
|||
switch (i) { |
|||
case 0: |
|||
ablage[i] = new AblageStack(x, y, Symbol.Herz); |
|||
break; |
|||
case 1: |
|||
ablage[i] = new AblageStack(x, y, Symbol.Kreuz); |
|||
break; |
|||
case 2: |
|||
ablage[i] = new AblageStack(x, y, Symbol.Karo); |
|||
break; |
|||
case 3: |
|||
ablage[i] = new AblageStack(x, y, Symbol.Pik); |
|||
break; |
|||
|
|||
default: |
|||
break; |
|||
} |
|||
this.add(ablage[i]); |
|||
} |
|||
|
|||
waste = new WasteStack(setLayoutX(1), OFFSET_STACKS_Y); |
|||
geber = new GeberStack(setLayoutX(0), OFFSET_STACKS_Y, waste); |
|||
|
|||
AblageStack a1 = new AblageStack(200, 10, Symbol.Herz); |
|||
this.add(a1); |
|||
AblageStack a2 = new AblageStack(275, 10, Symbol.Kreuz); |
|||
this.add(a2); |
|||
AblageStack a3 = new AblageStack(350, 10, Symbol.Karo); |
|||
this.add(a3); |
|||
AblageStack a4 = new AblageStack(425, 10, Symbol.Pik); |
|||
this.add(a4); |
|||
|
|||
|
|||
WasteStack w = new WasteStack(85, 10); |
|||
GeberStack g = new GeberStack(10, 10, w); |
|||
|
|||
deck.getDeck().get(34).setFaceUp(true); |
|||
w.addCard(deck.getDeck().get(34)); |
|||
deck.getDeck().get(35).setFaceUp(true); |
|||
w.addCard(deck.getDeck().get(35)); |
|||
deck.getDeck().get(36).setFaceUp(true); |
|||
w.addCard(deck.getDeck().get(36)); |
|||
deck.getDeck().get(37).setFaceUp(true); |
|||
w.addCard(deck.getDeck().get(37)); |
|||
|
|||
|
|||
g.addCard(deck.getDeck().get(38)); |
|||
|
|||
|
|||
this.add(w); |
|||
this.add(g); |
|||
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); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
private int setLayoutX(int _spalte) { |
|||
return (((IMAGE_WIDTH + OFFSET_STACKS_X) * _spalte) + OFFSET_STACKS_X); |
|||
} |
|||
|
|||
private int setLayouty(int _row) { |
|||
if(_row == 1) |
|||
return IMAGE_HIGHT + (OFFSET_STACKS_Y * 3); |
|||
else |
|||
return OFFSET_STACKS_Y; |
|||
} |
|||
|
|||
@Override |
|||
protected void paintComponent(Graphics g) { |
|||
// TODO Auto-generated method stub |
|||
super.paintComponent(g); |
|||
g.setColor(Color.green); |
|||
g.setColor(new Color(0, 135, 62)); |
|||
g.fillRect(0, 0, this.getWidth(), this.getHeight()); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue