Back to project page FourRowSolitaire.
The source code is released under:
GNU General Public License
If you think the Android project FourRowSolitaire listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* This file is a part of Four Row Solitaire /*from ww w . j a v a 2s . com*/ Copyright (C) 2010-2014 by Matt Stephen, Todor Balabanov, Konstantin Tsanov, Ventsislav Medarov, Vanya Gyaurova, Plamena Popova, Hristiana Kalcheva, Yana Genova Four Row Solitaire is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Four Row Solitaire is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with FourRowSolitaire. If not, see <http://www.gnu.org/licenses/>. */ package eu.veldsoft.four.row.solitaire; import java.util.Vector; /** * Class: CardStack * * Description: The Cardstack class manages a location for cards to be placed. * * @author Matt Stephen */ // TODO Should be abstract class. abstract class CardStack { // TODO Parent class methods should not have source code! /** * For starting the game. * * Used to add a card to a stack. * * @param card * Card to be added. * * @author Todor Balabanov */ public void addCard(Card card) { } /** * Used to add a bunch of cards to a stack. * * @param stack * Stack to be added. * * @author Todor Balabanov */ public void addStack(CardStack stack) { while (stack.isEmpty() == false) { addCard(stack.pop()); } } /** * Used to add a bunch of cards to a stack. * * @param stack * Stack to be added. * * @author Todor Balabanov */ public void addStack(Vector<Card> stack) { for (int i = stack.size() - 1; i >= 0; i--) { addCard(stack.elementAt(i)); } } /** * Used to add a card to a stack and then to return the moved card. * * @param card * Card to be added. * * @return Added card. * * @author Todor Balabanov */ public Card push(Card card) { addCard(card); return card; } /** * Used to add a bunch of cards to a card stack and then to return empty * stack. * * @param stack * Stack to be added. * * @return Empty stack. * * @author Todor Balabanov */ public CardStack push(CardStack stack) { addStack(stack); /* * Returns empty stack. */ return stack; } /** * Pops the top card out of a stack. * * @return card The popped card. * * @author Todor Balabanov */ public synchronized Card pop() { return null; } /** * Temporary reverses the cards in a stack. * * @param stack * Stack to be reversed. * * @return The reversed stack. * * @author Todor Balabanov */ public Vector<Card> pop(CardStack stack) { /* * Temporary reverse pop of entire stack transfer. */ Vector<Card> temp = new Vector<Card>(); while (!stack.isEmpty()) { Card card = stack.pop(); temp.add(card); } return temp; } /** * Pops the top card out of a stack if possible. If not - returns null. * * @return Card or null. * * @author Todor Balabanov */ public synchronized Card peek() { return null; } /** * Checks if a stack is empty (has no cards inside). * * @return True or false, based on if the stack is empty or not. */ public boolean isEmpty() { return false; } /** * Returns the stack's length. * * @return Stack's length. * * @author Todor Balabanov */ public int length() { return 0; } /** * Searches the stack for a specific card and returns its location in the * stack. * * @param card * The card to be matched. * * @return The location of the card or -1 if the card can't be found within * the stack. * * @author Todor Balabanov */ public synchronized int search(Card card) { return 0; } /** * Returns the card located at a specified location within the stack. * * @param index * Location within the stack. * * @return The card at this location. Or null if the index is greater than * the stack's size. * * @author Todor Balabanov */ public Card getCardAtLocation(int index) { return null; } /** * Verifies that the card is a part of a valid stack. * * @param index * Index of the card to be verified. * * @return true or false * * @author Todor Balabanov */ boolean isValidCard(int index) { return false; } /** * Searches the stack for a specific card. Creates a new temporary stack. * Clones the cards from the end towards the beginning of the stack into the * temp stack. Stops after it reaches the specific card. * * @param card * Card to look for. * * @return Stack of cards. * * @author Todor Balabanov */ public CardStack getStack(Card card) { return null; } /** * Searches the stack for a specified location, creates a temporary stack, * Clones the cards from the end towards the begining of the stack, stops * when it reaches the specified location. * * @param numCards * Index. * * @return Stack of cards. * * @author Todor Balabanov */ public CardStack getStack(int numCards) { return null; } /** * Used to undo the last stack move. Reverses the cards. * * @param numCards * Number of cards in the stack. * * @return Reversed stack. * * @author Todor Balabanov */ public Vector<Card> undoStack(int numCards) { Vector<Card> temp = new Vector<Card>(); for (int i = 0; i < numCards; i++) { temp.add(pop()); } return temp; } /** * Checks if the move is valid. Always returns false. The method is * overridden by the child classes. * * @param card * Card to be checked. * * @return False * * @author Todor Balabanov */ public boolean isValidMove(Card card) { return false; } /** * Checks if the move is valid. Always returns false. This method is * overridden by the child classes. * * @param stack * Stack of cards to be ckecked. * * @return False. * * @author Todor Balabanov */ public boolean isValidMove(CardStack stack) { return false; } /** * Returns the first card from a stack. * * @return card The first card from the stack of cards. * * @author Todor Balabanov */ public Card getBottom() { return null; } /** * Returns the available cards from a deck. This method is overridden by the * child classes. * * @return Null. * * @author Todor Balabanov */ public CardStack getAvailableCards() { return null; } /** * Highlight cards according stack rules. * * @author Todor Balabanov */ void highlight(int index) { } }