Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package rccrimmins;
- //import heineman.RedBlackFoundationController;
- import java.awt.Dimension;
- import ks.common.controller.SolitaireMouseMotionAdapter;
- import ks.common.games.Solitaire;
- import ks.common.games.SolitaireUndoAdapter;
- //import ks.common.games.SolitaireUndoAdapter;
- //import ks.common.model.BuildablePile;
- import ks.common.model.Card;
- import ks.common.model.Column;
- import ks.common.model.Deck;
- import ks.common.model.Move;
- import ks.common.model.Pile;
- //import ks.common.view.BuildablePileView;
- import ks.common.view.CardImages;
- import ks.common.view.ColumnView;
- import ks.common.view.DeckView;
- import ks.common.view.IntegerView;
- import ks.common.view.PileView;
- import ks.launcher.Main;
- //import heineman.klondike.MoveColumnMove;
- public class Nestor extends Solitaire {
- Deck deck;
- DeckView deckView;
- IntegerView scoreView;
- IntegerView numLeftView;
- protected PileView fromPile;
- protected PileView fromWaste;
- protected Column columns[] = new Column [8];
- protected Pile reserve[] = new Pile [12];
- protected String version = "1.1";
- protected ColumnView columnViews[] = new ColumnView [8];
- protected PileView reserveViews[] = new PileView [12];
- public Nestor() {
- super();
- }
- @Override
- public String getName() { // TODO Auto-generated method stub
- return "rccrimmins-Nestor";
- }
- @Override
- public boolean hasWon() { // TODO Auto-generated method stub
- // return false;
- return getScoreValue() == 52;
- }
- @Override
- public void initialize() { // TODO Auto-generated method stub
- // Deck of Cards are displayed / distributed.
- initializeModel(getSeed());
- initializeView();
- initializeControllers();
- //For Loop for setting up the columns on the screen
- for (int columnNum=1; columnNum <= 7; columnNum++) {
- for (int num = 1; num <= 6; num++) {
- Card c = deck.get();
- c.setFaceUp (true);
- columns[columnNum].add (c);
- }
- }
- //For Loop for setting up the Reserve on the bottom of the screen
- for (int reserveNum=1; reserveNum <= 10; reserveNum++) {
- Card c = deck.get();
- c.setFaceUp (true);
- reserve[reserveNum].add (c);
- }
- updateNumberCardsLeft(52); // initial score is set to ZERO (every Solitaire game by default has a score) and there are 52 cards left.
- updateScore(0); // NOTE: These will be added to the model by solitaire Base Class.
- }
- public java.util.Enumeration<Move> availableMoves() {
- java.util.Vector<Move> v = new java.util.Vector<Move>();
- // for(int a = 1; a <= 10; a++){
- // Move z = new PileToPileMove (reserve[a], null, null, reserve[a]);
- // }
- return v.elements();
- }
- @Override
- public Dimension getPreferredSize() {
- return new Dimension (1024, 768);
- }
- private void initializeControllers() {
- // TODO Auto-generated method stub
- for(int i = 1; i <= 7; i++){
- columnViews[i].setMouseAdapter (new NestorColumnController (this, columnViews[i]));
- columnViews[i].setMouseMotionAdapter (new SolitaireMouseMotionAdapter (this));
- columnViews[i].setUndoAdapter (new SolitaireUndoAdapter(this));
- }
- for(int a = 1; a <= 10; a++){
- reserveViews[a].setMouseAdapter (new NestorPileController (this, reserveViews[a]));
- reserveViews[a].setMouseMotionAdapter (new SolitaireMouseMotionAdapter (this));
- reserveViews[a].setUndoAdapter (new SolitaireUndoAdapter(this));
- }
- // for(int b = 1; b <= 7; b++){
- // for(int a = 1; a <= 10; a++){
- // reserveViews[a].setMouseAdapter(new NestorPileColumnController (this, columnViews[b], reserveViews[a]));
- // }
- // }
- }
- private void initializeView() { // TODO Auto-generated method stub
- CardImages ci = getCardImages();
- //(x, y, width, height)
- scoreView = new IntegerView (getScore());
- scoreView.setFontSize (24);
- scoreView.setBounds (360, -25, 60, 60);
- container.addWidget (scoreView);
- numLeftView = new IntegerView (getNumLeft());
- numLeftView.setFontSize (24);
- numLeftView.setBounds (545, -25, 60, 60);
- container.addWidget (numLeftView);
- //For-loop to set up the main columns
- for (int columnNum = 1; columnNum <=7; columnNum++) {
- columnViews[columnNum] = new ColumnView (columns[columnNum]);
- columnViews[columnNum].setBounds (20*columnNum + (columnNum-1)*ci.getWidth()+150, ci.getHeight(), ci.getWidth(), 3*ci.getHeight());
- container.addWidget (columnViews[columnNum]);
- }
- //For-loop to set up the reserve on the bottom
- for (int reserveNum = 1; reserveNum <=10; reserveNum++) {
- reserveViews[reserveNum] = new PileView (reserve[reserveNum]);
- reserveViews[reserveNum].setBounds (20*reserveNum + (reserveNum-1)*ci.getWidth()+20, ci.getHeight()+300 , ci.getWidth(), ci.getHeight());
- container.addWidget (reserveViews[reserveNum]);
- }
- }
- private void initializeModel(int seed) { // TODO Auto-generated method stub
- deck = new Deck("deck");
- deck.create(seed);
- model.addElement (deck); // add to our model (as defined within our superclass).
- for (int i = 1; i<=7; i++) { // For Loop for setting up the Piles 6 Wide
- columns[i] = new Column ("column" + i);
- model.addElement (columns[i]);
- }
- for (int a = 1; a<=10; a++) { // For Loop for setting up the reserve on the bottom of the screen.
- reserve[a] = new Pile ("reserve" + a);
- model.addElement (reserve[a]);
- }
- }
- public static void main (String []args) { // Seed is to ensure we get the same initial cards every time.
- Main.generateWindow(new Nestor(), 118); // Here the seed is to "order by suit."
- // Main.generateWindow(new Nestor(), Deck.OrderBySuit);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement