I have been asked to design Snake ladder game for a single user in one of my interview. However i was rejected but i am not sure what improvment i can make and how to tackle such question more effeciently please review my solution.:-
package snakeLadderGame;
public class Board {
Object[][] board=new Object[11][11];
User currentUser;
public Board(){
board[0][9]=new Ladder(new int[]{9,7});
board[9][8]=new Snake(new int[]{0,0});
board[2][3]=new Ladder(new int[]{7,5});
board[7][8]=new Snake(new int[]{2,4});
board[4][5]=new Ladder(new int[]{7,7});
board[5][4]=new Snake(new int[]{4,5});
currentUser=new User();
}
public void startPlaying(){
currentUser=new User();
while(currentUser.pos[0]!=10 || currentUser.pos[1]!=10){
currentUser.moveUser(currentUser.throwDice(),this);
System.out.println("Player is at "+currentUser.pos[0]+" "+currentUser.pos[1]);
}
System.out.println("Player Won");
}
}
package snakeLadderGame;
import java.util.Random;
public class User {
int[] pos;
public User() {
pos = new int[]{0, 0};
}
public void moveUser(int moves, Board board) {
if (pos[1] + moves >= board.board[0].length) {
if(pos[0] + 1>=board.board.length){
return;
}
pos[0] = pos[0] + 1 ;
pos[1] = pos[1] + moves - board.board[0].length + 1;
} else {
pos[1] = pos[1] + moves;
}
if (board.board[pos[0]][pos[1]] != null && board.board[pos[0]][pos[1]].getClass() == Snake.class) {
System.out.println("inside snake");
int temp[] = new int[2];
temp[0] = ((Snake) board.board[pos[0]][pos[1]]).target[0];
temp[1] = ((Snake) board.board[pos[0]][pos[1]]).target[1];
pos[0] = temp[0];
pos[1] = temp[1];
}
if (board.board[pos[0]][pos[1]] != null && board.board[pos[0]][pos[1]].getClass() == Ladder.class) {
System.out.println("inside ladder");
int temp[] = new int[2];
temp[0] = ((Ladder) board.board[pos[0]][pos[1]]).target[0];
temp[1] = ((Ladder) board.board[pos[0]][pos[1]]).target[1];
pos[0] = temp[0];
pos[1] = temp[1];
}
}
public int throwDice() {
Random rand = new Random();
int temp = rand.nextInt(6);
System.out.println("Afer dice throw you get "+temp);
return temp;
}
}
package snakeLadderGame;
public class Snake {
int[] target;
public Snake(int[] target){
this.target=target;
}
}
package snakeLadderGame;
public class Ladder {
int[] target;
public Ladder(int[] target){
this.target=target;
}
}
package snakeLadderGame;
public class GameTes {
public static void main(String args[]){
Board board=new Board();
board.startPlaying();
}
}