Advertisement
KillianMills

SnakeLadder123.java

Oct 2nd, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.10 KB | None | 0 0
  1. import java.util.*;
  2. //Board is a data struture which will represent the playing board
  3. class Board{
  4.                 //using an arraylist as the datastructure of the board
  5.         ArrayList<Box> sl = new ArrayList<Box>();
  6.         //this method will choose where each of the ladders/snakes will be on the board
  7.         //taking into account *even spacing ****need to edit to make sure that the top of a ladder
  8.         // doesnt == top of snake too!
  9.          int[] getArrayOfSpecial(){      
  10.                         int holding=0,low=4,high=12,i=1;
  11.                         //rng to figure out how spaced until the next ladder/snake
  12.                 Random rnf = new Random();
  13.                 holding=rnf.nextInt(high-low)+low;
  14.                 int [] tempHold = new int [20];
  15.                 //filling an array with the locations of specials
  16.                 while(tempHold[i-1]<90){
  17.                         holding=rnf.nextInt(high-low) + low;
  18.                         tempHold[i]=holding+tempHold[i-1];
  19.                         i++;
  20.                 }
  21.                 int [] finArray = new int [tempHold.length];
  22.                 finArray=tempHold;
  23.                 //returning all the speical locations in an array
  24.                 return finArray;
  25.          }
  26.          //method to fill the board with boxes and specials
  27.          ArrayList<Box> fillBoard(){
  28.                         int[]specialAddress=getArrayOfSpecial();
  29.                 int x=0;
  30.                 for(int j=0;j<100;j++){
  31.                         if(j==specialAddress[x]){
  32.                                 getSpecial(specialAddress,j,x);
  33.                                 x++;
  34.                         }
  35.                         else getBox(j);
  36.                 }
  37.                 return sl;
  38.         }
  39.         Box getBox(int j){
  40.                 Box b = new Box(j,false);
  41.                 return b;
  42.         }
  43.         //creating the ladder or snake
  44.         Special getSpecial(int [] array,int j, int x){
  45.                 boolean isSnake=getSnake(array,x);
  46.                 Special s = new Special(j,getOtherEnd(j,isSnake),isSnake,true);
  47.                 return s;
  48.         }
  49.         //rng to pick if the next special will be ladder of snake
  50.         boolean getSnake(int [] array,int x){
  51.                 Random rnSnake = new Random();
  52.                 int answer = rnSnake.nextInt(2)+1;
  53.                 if(x<2){
  54.                         return false;
  55.                 }
  56.                 else if(x>array.length-2){
  57.                         return true;
  58.                 }
  59.                 else return answer==1;
  60.         }
  61.         //method to make sure the other end of the snake or ladder doesnt leave the board dimensions
  62.         int getOtherEnd(int j, boolean var){
  63.                 int otherHalf=0;
  64.                 Random rng = new Random();
  65.                 while(otherHalf<99 && otherHalf>1){
  66.                         int yAxis=rng.nextInt(3)+1;
  67.                         int xAxis=rng.nextInt(14);
  68.                         xAxis=xAxis-7;
  69.                         yAxis=yAxis*10;
  70.                         otherHalf=yAxis+xAxis;
  71.                         if(var==true){
  72.                                 otherHalf=otherHalf-j;
  73.                         }
  74.                         else otherHalf=otherHalf+j;
  75.                 }      
  76.                 return otherHalf;      
  77.         }
  78. }        
  79.  
  80. class Box{
  81.         boolean specialObject;
  82.         int squareNum;
  83.         Box(){}
  84.         Box(int squareNum0,boolean specialObject0){
  85.                 squareNum0=squareNum;
  86.                 specialObject0=specialObject;
  87.         }
  88. }
  89. //this class is an extension of box it is either a ladder or snake depending on the variable
  90. class Special extends Box{
  91.         boolean isSnake;
  92.         int otherEnd;
  93.        
  94.         Special(){}
  95.         Special(int squareNum0, int otherEnd0, boolean isSnake0, boolean specialObject0){
  96.                         super(squareNum0,specialObject0);
  97.                         otherEnd0=otherEnd;
  98.                         isSnake0=isSnake;
  99.         }
  100. }
  101. class Die{
  102.         int dieValue;
  103.        
  104.         int rollDie(){
  105.                 Random rn = new Random();
  106.                 dieValue=rn.nextInt(6);
  107.                 System.out.println("Dice Rolled: "+dieValue);
  108.                 return dieValue;
  109.         }
  110. }
  111. class PlayerPiece{
  112.                 int boardLocation;
  113. }
  114. class SnakeLadder123{
  115.         public static void main (String [] args){
  116.                 System.out.println("Main");
  117.                
  118.         }
  119.         static void playGame(){
  120.                 System.out.println("Game has begun");
  121.                 PlayerPiece Player1 = new PlayerPiece();
  122.             PlayerPiece Player2 = new PlayerPiece();
  123.             Board b= new Board();
  124.             ArrayList gameBoard=new ArrayList<>();
  125.             gameBoard=b.fillBoard();
  126.             Die dice = new Die();
  127.         }
  128.        
  129.         PlayerPiece turn(PlayerPiece p,Die d,ArrayList<Box> g){
  130.                 d.rollDie();
  131.                 p.boardLocation=p.boardLocation+d.dieValue;
  132.                 Box b = g.get(p.boardLocation);
  133.                 if(b.specialObject==true){
  134.                 //some tiny trouble here with accessing special variables as a box but mehhh almost finished  
  135.                         if(b.isSnake==true){
  136.                                 System.out.println("Snake! :(");
  137.                                 p.boardLocation=b.otherEnd;
  138.                                 if(d.dieValue==6){
  139.                                 turn(p,d,g);
  140.                         }
  141.                         return p;
  142.                         }
  143.                         else{
  144.                                 System.out.println("Ladder! :)");
  145.                                 p.boardLocation=b.otherEnd;
  146.                                 if(d.dieValue==6){
  147.                                 turn(p,d,g);
  148.                         }
  149.                         return p;
  150.                         }
  151.                 }
  152.                 else if(b.specialObject==false){
  153.                         if(d.dieValue==6){
  154.                                 turn(p,d,g);
  155.                         }
  156.                         return p;
  157.                 }
  158.       }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement