Nur die besten Spiele ;3
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
1.6 KiB

2 years ago
  1. package solitaer;
  2. import java.util.ArrayList;
  3. import javax.swing.JPanel;
  4. public abstract class BaseStack extends JPanel {
  5. public final int IMAGE_WIDTH = 72;
  6. public final int IMAGE_HIGHT = 96;
  7. public final int STACK_HIGHT = 450;
  8. private static final long serialVersionUID = 1L;
  9. private ArrayList<Card> stack = new ArrayList<Card>();
  10. private final int OFFSET_VALUE = 20;
  11. private int offset;
  12. private int addOffset;
  13. public BaseStack(boolean _offset) {
  14. // TODO Auto-generated constructor stub
  15. if(_offset) {
  16. addOffset = OFFSET_VALUE;
  17. }else {
  18. addOffset = 0;
  19. }
  20. offset = 0;
  21. }
  22. public void clearStack() {
  23. stack.clear();
  24. offset = 0;
  25. RenderStackNew();
  26. }
  27. public boolean stackIsEmpty() {
  28. return stack.isEmpty();
  29. }
  30. public Card peekLastCard() {
  31. if(!stackIsEmpty()) {
  32. return stack.get(stack.size()-1);
  33. } else {
  34. return null;
  35. }
  36. }
  37. public int indexOfCard(Card _card) {
  38. return stack.indexOf(_card);
  39. }
  40. public int stackSize() {
  41. return stack.size();
  42. }
  43. public void addCard(Card _card) {
  44. _card.setLocation(0, offset);
  45. stack.add(_card);
  46. RenderStackNew();
  47. offset += addOffset;
  48. }
  49. public Card removeLastCard() {
  50. if (stack.size() != 0) {
  51. Card LastCard = stack.remove(stack.size() - 1);
  52. offset -= addOffset;
  53. RenderStackNew();
  54. return LastCard;
  55. }
  56. return null;
  57. }
  58. private void RenderStackNew() {
  59. this.removeAll();
  60. // Alles neu Zeichnen
  61. for (int i = stack.size() - 1; i >= 0; i--) {
  62. this.add(stack.get(i));
  63. }
  64. this.repaint();
  65. }
  66. protected abstract boolean cardCheck(Card _topStack, Card _playerCard);
  67. }