Advertisement
Guest User

Untitled

a guest
May 6th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.63 KB | None | 0 0
  1. package rccrimmins;
  2.  
  3. //import heineman.RedBlackFoundationController;
  4.  
  5. import java.awt.Dimension;
  6.  
  7. import ks.common.controller.SolitaireMouseMotionAdapter;
  8. import ks.common.games.Solitaire;
  9. import ks.common.games.SolitaireUndoAdapter;
  10. //import ks.common.games.SolitaireUndoAdapter;
  11. //import ks.common.model.BuildablePile;
  12. import ks.common.model.Card;
  13. import ks.common.model.Column;
  14. import ks.common.model.Deck;
  15. import ks.common.model.Move;
  16. import ks.common.model.Pile;
  17. //import ks.common.view.BuildablePileView;
  18. import ks.common.view.CardImages;
  19. import ks.common.view.ColumnView;
  20. import ks.common.view.DeckView;
  21. import ks.common.view.IntegerView;
  22. import ks.common.view.PileView;
  23. import ks.launcher.Main;
  24. //import heineman.klondike.MoveColumnMove;
  25.  
  26. public class Nestor extends Solitaire {
  27.  
  28. Deck deck;
  29. DeckView deckView;
  30. IntegerView scoreView;
  31. IntegerView numLeftView;
  32.  
  33. protected PileView fromPile;
  34. protected PileView fromWaste;
  35. protected Column columns[] = new Column [8];
  36. protected Pile reserve[] = new Pile [12];
  37. protected String version = "1.1";
  38. protected ColumnView columnViews[] = new ColumnView [8];
  39. protected PileView reserveViews[] = new PileView [12];
  40.  
  41. public Nestor() {
  42. super();
  43. }
  44.  
  45. @Override
  46. public String getName() { // TODO Auto-generated method stub
  47. return "rccrimmins-Nestor";
  48. }
  49.  
  50. @Override
  51. public boolean hasWon() { // TODO Auto-generated method stub
  52. // return false;
  53. return getScoreValue() == 52;
  54. }
  55.  
  56. @Override
  57. public void initialize() { // TODO Auto-generated method stub
  58. // Deck of Cards are displayed / distributed.
  59.  
  60. initializeModel(getSeed());
  61. initializeView();
  62. initializeControllers();
  63.  
  64. //For Loop for setting up the columns on the screen
  65. for (int columnNum=1; columnNum <= 7; columnNum++) {
  66. for (int num = 1; num <= 6; num++) {
  67. Card c = deck.get();
  68.  
  69. c.setFaceUp (true);
  70. columns[columnNum].add (c);
  71. }
  72. }
  73.  
  74. //For Loop for setting up the Reserve on the bottom of the screen
  75. for (int reserveNum=1; reserveNum <= 10; reserveNum++) {
  76. Card c = deck.get();
  77.  
  78. c.setFaceUp (true);
  79. reserve[reserveNum].add (c);
  80. }
  81.  
  82. updateNumberCardsLeft(52); // initial score is set to ZERO (every Solitaire game by default has a score) and there are 52 cards left.
  83. updateScore(0); // NOTE: These will be added to the model by solitaire Base Class.
  84. }
  85.  
  86. public java.util.Enumeration<Move> availableMoves() {
  87. java.util.Vector<Move> v = new java.util.Vector<Move>();
  88.  
  89. // for(int a = 1; a <= 10; a++){
  90. // Move z = new PileToPileMove (reserve[a], null, null, reserve[a]);
  91. // }
  92.  
  93. return v.elements();
  94. }
  95.  
  96. @Override
  97. public Dimension getPreferredSize() {
  98. return new Dimension (1024, 768);
  99. }
  100.  
  101. private void initializeControllers() {
  102. // TODO Auto-generated method stub
  103. for(int i = 1; i <= 7; i++){
  104. columnViews[i].setMouseAdapter (new NestorColumnController (this, columnViews[i]));
  105. columnViews[i].setMouseMotionAdapter (new SolitaireMouseMotionAdapter (this));
  106. columnViews[i].setUndoAdapter (new SolitaireUndoAdapter(this));
  107. }
  108. for(int a = 1; a <= 10; a++){
  109. reserveViews[a].setMouseAdapter (new NestorPileController (this, reserveViews[a]));
  110. reserveViews[a].setMouseMotionAdapter (new SolitaireMouseMotionAdapter (this));
  111. reserveViews[a].setUndoAdapter (new SolitaireUndoAdapter(this));
  112. }
  113.  
  114. // for(int b = 1; b <= 7; b++){
  115. // for(int a = 1; a <= 10; a++){
  116. // reserveViews[a].setMouseAdapter(new NestorPileColumnController (this, columnViews[b], reserveViews[a]));
  117. // }
  118. // }
  119. }
  120.  
  121. private void initializeView() { // TODO Auto-generated method stub
  122.  
  123. CardImages ci = getCardImages();
  124. //(x, y, width, height)
  125.  
  126. scoreView = new IntegerView (getScore());
  127. scoreView.setFontSize (24);
  128. scoreView.setBounds (360, -25, 60, 60);
  129. container.addWidget (scoreView);
  130.  
  131. numLeftView = new IntegerView (getNumLeft());
  132. numLeftView.setFontSize (24);
  133. numLeftView.setBounds (545, -25, 60, 60);
  134. container.addWidget (numLeftView);
  135.  
  136. //For-loop to set up the main columns
  137. for (int columnNum = 1; columnNum <=7; columnNum++) {
  138. columnViews[columnNum] = new ColumnView (columns[columnNum]);
  139. columnViews[columnNum].setBounds (20*columnNum + (columnNum-1)*ci.getWidth()+150, ci.getHeight(), ci.getWidth(), 3*ci.getHeight());
  140. container.addWidget (columnViews[columnNum]);
  141. }
  142.  
  143. //For-loop to set up the reserve on the bottom
  144. for (int reserveNum = 1; reserveNum <=10; reserveNum++) {
  145. reserveViews[reserveNum] = new PileView (reserve[reserveNum]);
  146. reserveViews[reserveNum].setBounds (20*reserveNum + (reserveNum-1)*ci.getWidth()+20, ci.getHeight()+300 , ci.getWidth(), ci.getHeight());
  147. container.addWidget (reserveViews[reserveNum]);
  148. }
  149. }
  150.  
  151. private void initializeModel(int seed) { // TODO Auto-generated method stub
  152.  
  153. deck = new Deck("deck");
  154. deck.create(seed);
  155. model.addElement (deck); // add to our model (as defined within our superclass).
  156.  
  157. for (int i = 1; i<=7; i++) { // For Loop for setting up the Piles 6 Wide
  158. columns[i] = new Column ("column" + i);
  159. model.addElement (columns[i]);
  160. }
  161.  
  162. for (int a = 1; a<=10; a++) { // For Loop for setting up the reserve on the bottom of the screen.
  163. reserve[a] = new Pile ("reserve" + a);
  164. model.addElement (reserve[a]);
  165. }
  166. }
  167.  
  168. public static void main (String []args) { // Seed is to ensure we get the same initial cards every time.
  169. Main.generateWindow(new Nestor(), 118); // Here the seed is to "order by suit."
  170. // Main.generateWindow(new Nestor(), Deck.OrderBySuit);
  171. }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement