As requested Dealer class:


import java.util.*;
import java.io.*;

public class Dealer implements Serializable {

 static int[] letterDist =
{18,4,4,8,24,4,6,4,18,2,2,8,4,12,16,4,2,12,8,12,8,4,4,2,4,2,4};
 static Vector bag;      // the tile bank of Integer objects
 static int bagQuant=0;     // tracks number in bag ZERO HERE FOR TESTING
 static int[] hand;      // holds 7 ints removed from bag
 static int[][][] grid;     // holds info on boosters & the old letters on the
board

 static final int L1=1; // score booster constants
 static final int L2=2;
 static final int L3=3;
 static final int L4=4;
 static final int W2=12;
 static final int W3=13;
 static final int W4=14;
 static final int DIM=20; // board grid size (from 0-DIM inc.)

 public Dealer() {
  if(bagQuant<7) {E.o("bag was empty so filling");gridInit(); resetBag();}
  extract();
  E.o("New Dealer successful");
 }

 public void gridInit() { // Called at beginning of game only

  grid = new int [2][][];
  grid[1] = new int [DIM+1][DIM+1]; // blank board
  grid[0] = new int [][] { // score boosters
   {W4,L1,L1,L1,L1,L3,L1,L1,L1,L1,W4,L1,L1,L1,L1,L3,L1,L1,L1,L1,W4},
   {L1,W3,L1,L1,L1,L1,L1,L4,L1,L1,L1,L1,L1,L4,L1,L1,L1,L1,L1,W3,L1},
   {L1,L1,W3,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,W3,L1,L1},
   {L1,L1,L1,W3,L1,L1,L2,L1,L1,L1,L3,L1,L1,L1,L2,L1,L1,W3,L1,L1,L1},
   {L1,L1,L1,L1,W2,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,W2,L1,L1,L1,L1},
   {L3,L1,L1,L1,L1,W2,L1,L1,L1,L2,L1,L2,L1,L1,L1,W2,L1,L1,L1,L1,L3},
   {L1,L1,L1,L2,L1,L1,W2,L1,L1,L1,L2,L1,L1,L1,W2,L1,L1,L2,L1,L1,L1},
   {L1,L4,L1,L1,L1,L1,L1,W2,L1,L1,L1,L1,L1,W2,L1,L1,L1,L1,L1,L4,L1},
   {L1,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L1},
   {L1,L1,L1,L1,L1,L2,L1,L1,L1,L2,L1,L2,L1,L1,L1,L2,L1,L1,L1,L1,L1},
   {W4,L1,L1,L3,L1,L1,L2,L1,L1,L1,W2,L1,L1,L1,L2,L1,L1,L3,L1,L1,W4},
   {L1,L1,L1,L1,L1,L2,L1,L1,L1,L2,L1,L2,L1,L1,L1,L2,L1,L1,L1,L1,L1},
   {L1,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,L1},
   {L1,L4,L1,L1,L1,L1,L1,W2,L1,L1,L1,L1,L1,W2,L1,L1,L1,L1,L1,L4,L1},
   {L1,L1,L1,L2,L1,L1,W2,L1,L1,L1,L2,L1,L1,L1,W2,L1,L1,L2,L1,L1,L1},
   {L3,L1,L1,L1,L1,W2,L1,L1,L1,L2,L1,L2,L1,L1,L1,W2,L1,L1,L1,L1,L3},
   {L1,L1,L1,L1,W2,L1,L1,L1,L3,L1,L1,L1,L3,L1,L1,L1,W2,L1,L1,L1,L1},
   {L1,L1,L1,W3,L1,L1,L2,L1,L1,L1,L3,L1,L1,L1,L2,L1,L1,W3,L1,L1,L1},
   {L1,L1,W3,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,L1,W3,L1,L1},
   {L1,W3,L1,L1,L1,L1,L1,L4,L1,L1,L1,L1,L1,L4,L1,L1,L1,L1,L1,W3,L1},
   {W4,L1,L1,L1,L1,L3,L1,L1,L1,L1,W4,L1,L1,L1,L1,L3,L1,L1,L1,L1,W4},
  };
 }


 public void resetBag() { // Initialise bag Vector and populate with new Tiles
  bag = new Vector();  // Called at beginning of game only

  for(int i=0;i<=26;i++) {
   for(int j=0;j<letterDist[i];j++) {

    Integer temp = new Integer(i); // create new Integer object from int i

    bag.addElement(temp);
   }
  }

  bagQuant = bag.size();
  E.o("bagQuant = "+bagQuant);

 }

 public void extract() { // remove 7 tiles from bag vector at random and store
in array
  hand = new int[7]; // initialise hand ready to receive
  for(int i=0;i<7;i++) {
   int pos = (int)(Math.random()*bag.size()); //get random tile
   hand[i] = ((Integer)(bag.elementAt(pos))).intValue(); //update hand

   E.o("extracted ~ "+bag.elementAt(pos));

   bag.removeElementAt(pos); //update bag
  }
  bagQuant = bag.size();
  E.o("bagQuant = "+bagQuant);
 }
}

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to