This program will simulate a regular snakes and ladders game, where you will be facing the computer. You and the computer start at square 1, and the first one to square 100 wins, however, there will be preset squares which will be the snakes or ladders. Once you land on top of a snake you go down a few squares, and move up if you land on the bottom of a ladder.
Pseudo code is this
Print rules of the game
Makes the board for the player
Prompt user to start the game
If (input==’y’)
Then startGame
Else
Leave command prompt
If startGame
Set starting position for user and computer to 1
User throws the dice then computer throws the dice one after other
Prints the final position after each dice throw for the user as well as computer repeatedly
If user reaches the ladder or snake bitten then reflect the final position after such propositions both
for user and computer
Whoever first reaches the 100 , will win the game , with n predefined attempts
If no one wins with in predefined attempts then prompt user to play the game again or not
Repeat step 1
Good Luck and Have FUN!!!
Read Also : Simple Guess Number Game
Demo :
Code is here :
Pseudo code is this
Print rules of the game
Makes the board for the player
Prompt user to start the game
If (input==’y’)
Then startGame
Else
Leave command prompt
If startGame
Set starting position for user and computer to 1
User throws the dice then computer throws the dice one after other
Prints the final position after each dice throw for the user as well as computer repeatedly
If user reaches the ladder or snake bitten then reflect the final position after such propositions both
for user and computer
Whoever first reaches the 100 , will win the game , with n predefined attempts
If no one wins with in predefined attempts then prompt user to play the game again or not
Repeat step 1
Good Luck and Have FUN!!!
Read Also : Simple Guess Number Game
Demo :
Code is here :
import java.io.*; // used to allow user to input data public class Snakes_and_Ladders {// start class //Main Method public static void main (String [] args) throws IOException {// start main method //Welcoming Screen BufferedReader myInput2 = new BufferedReader (new InputStreamReader (System.in)); // Print the welcome screen and instructions System.out.println ("\t\t\t\t\t\tWelcome To Snakes And Ladders\n\n"); System.out.println ("\t\t\t\t\t\t\tInstructions:"); System.out.println ("\t\t\t This program will simulate a regular snakes and ladders game, where you will be"); System.out.println ("\t\t\t facing the computer. You and the computer start at square 1, and the first one to"); System.out.println ("\t\t\t square 100 wins, however, there will be preset squares which will be the snakes or ladders."); System.out.println ("\t\t\t Once you land on top of a snake you go down a few squares, and move up if you land"); System.out.println ("\t\t\t\t\t\t on the bottom of a ladder. Good Luck and Have FUN!!!"); int counter= 100,iteration=-1; // sets the counter and iteration vaiables to be used in making the board System.out.println ("-----------------------------------------------------Game Board-----------------------------------------------------------------------------"); /* This while loop makes the board for the player to visualize what the game looks like, it uses a counter to increment or decrement by 1. It will also subtract by 9 or 10 when necessary to create a board exactly like the one given. */ while (counter > 0){// start while if (counter%10 == 0 && counter != 100){// checks if the counter is at a 90, or 80... if(iteration==-1) { // subtract 9 from the counter // and sets it to start adding by one counter-=9; iteration=1; } else { System.out.print(counter+"\t"); counter-=10; iteration=-1; // set the counter to start subtract by ones } if(counter!=0) System.out.print("\n" + counter + "\t"); // just prints out the counter with a line breck } else System.out.print(counter + "\t"); // just prints out the counter counter+=iteration; // sets counter to add by iteration }// end while System.out.println(); System.out.println ("----------------------------------------------------------------------------------------------------------------------------------"); String sGame = "y"; // decare variable used to ask user if he wants to play System.out.print ("Do you want to play? Y or N > "); // ask user if we wants to play the game sGame = myInput2.readLine (); // reads the user's input into the variable sGame System.out.print ("\n\n\n\n\n\n"); // While the user says yes, go to startGame method // startGame is fuction type method, which start the game while (sGame.equals ("y") || sGame.equals ("Y")) { sGame = startGame(sGame); // give startGame a variable to work with } System.out.println ("\n\n\n\n\t\t\t\t\t\tSEE YA!!"); } //end main method //-------------------------------------------------------------------startGame Method------------------------------------------------------------------------------ /* startGame method: This method is responsible for organizing the game, asking the user to continue playing, and setting the important varibales. It will also return a vaule to the main method, which will reset the game so the user can play again. */ public static String startGame (String start) throws IOException // Recieves data from the main method {// start startGame method BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in)); // sets important variables for the game // NOTE: These variables will change as the game progresses int userPosition = 1; // sets the default loaction for user's piece to 1 int compPosition = 1; // sets the default loaction for computer's piece to 1 int diceRoll = 0; // creates the first die int diceRoll2 = 0; // creates the second die int userRoll = 1; // declares what the user rolled int compRoll = 1; // declares what the computer rolled String playAgain = "y"; // sets the play again variable // declare all the snakes and ladders in a array int snakesLaddersArray [] = new int [6]; // create a 6 element array // store the snakes and ladders location in the array snakesLaddersArray [0] = 54; snakesLaddersArray [1] = 90; snakesLaddersArray [2] = 99; snakesLaddersArray [3] = 9; snakesLaddersArray [4] = 40; snakesLaddersArray [5] = 67; while (playAgain.equals ("y") || playAgain.equals ("Y")) // loops while the playAgaim vaiable equals "y" or "Y". {// start playAgain While // gets the dice roll for user and computer userRoll = getDice(diceRoll, diceRoll2); // sends data to a function type method called getDice compRoll = getDice(diceRoll, diceRoll2); // does the same for the computer System.out.println("---------------------------------------------------------------------------------------------------------------------------"); System.out.println ("\t\t\t\t\t------------------------------------------"); System.out.println ("\t\t\t\t\t|\tYou Rolled a " + userRoll + "\t\t|"); // print the roll the user got System.out.println ("\t\t\t\t\t|\tThe Computer Rolled a " + compRoll + "\t|"); // print the roll the computer got System.out.println ("\t\t\t\t\t------------------------------------------"); // hold the user's last position for switching back if current position was greater than 100 userPosition = userPosition + userRoll; // hold the computer's last position for switching back if current position was greater than 100 compPosition = compPosition + compRoll; // check to see if user landed on top of a snake or at the bottom of a ladder // give getP parameters to work with, and recieve a final value which can be printed out userPosition = getP(userPosition, userRoll, snakesLaddersArray); // The same goes for compPosition, however compgetP gets an additional // parameter (userPosition) to check if user has already won compPosition = compgetP(compPosition, compRoll, snakesLaddersArray, userPosition); System.out.println("\t\t\t*************************************************************************"); System.out.println ("\t\t\t*\t\tYou are currently on square " + userPosition + "\t\t\t*"); // print out the user's current location System.out.println ("\t\t\t*\t\tThe Computer is currently on square " + compPosition + "\t\t*"); // print out the computer's current location System.out.println("\t\t\t*************************************************************************"); // resets the position values, if the user or the computer won // so that the user could play the entire game again if he/she wanted to if (userPosition == 100 || compPosition == 100) { userPosition = 1; compPosition = 1; // asks the user if we wants to play again System.out.print ("Do you want to play? Y or N > "); playAgain = myInput.readLine (); System.out.print ("\n\n\n\n\n\n\n\n\n\n\n\n"); } else { // asks the user if we wants to continue playing System.out.print ("Do you want to play? Y or N > "); playAgain = myInput.readLine (); } }// end playAgain While return playAgain; // returns prameter "playAgain" to main: if the user wants to play the game again }// end startGame method //-------------------------------------------------------------------geDice Method------------------------------------------------------------------------------ /* getDice method: This method generates two random numbers bewteen 1 and 6, then adds them to get a final roll. Next it returns the value to be diplayed on the screen. */ public static int getDice (int diceRoll, int diceRoll2) {// start getDies class diceRoll = (int)(Math.random()*6 )+1 ; //creates dice roll number 1 diceRoll2 = (int)(Math.random()*6 )+1 ; //creates dice roll number 2 int move = diceRoll + diceRoll2; // adds the two dice rolls to get a final move return move; // return parameter move: this will give the final dice roll back to startGame }// end getDice class //-------------------------------------------------------------------getP Method------------------------------------------------------------------------------ /* getP method: This method is responsible for checking if the USER is on top of a snake, or at the bottom of a ladder, and then adjusting the user's position to mathch the snake or ladders value. */ public static int getP (int userPosition, int userRoll, int snakesLaddersArray []) throws IOException // recieves two parameter from startGame {// start getP if(userPosition == snakesLaddersArray[0]) //if position equals snake 1 { userPosition = 19; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got Bit By A Snake, GO DOWN!!!~~~~~~~~~~~~~"); } else if (userPosition == snakesLaddersArray[1]) //if position equals snake 2 { userPosition = 48; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got Bit By A Snake, GO DOWN!!!~~~~~~~~~~~~~"); } else if (userPosition == snakesLaddersArray[2]) //if position equals snake 3 { userPosition = 77; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got Bit By A Snake, GO DOWN!!!~~~~~~~~~~~~~"); } else if (userPosition == snakesLaddersArray[3]) //if position equals ladder 1 { userPosition = 34; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got A Ladder!! GO UP!!!~~~~~~~~~~~~~"); } else if (userPosition == snakesLaddersArray[4]) //if position equals ladder 2 { userPosition = 64; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got A Ladder!! GO UP!!!~~~~~~~~~~~~~"); } else if (userPosition == snakesLaddersArray[5]) //if position equals ladder 3 { userPosition = 86; // set new position System.out.println ("\t\t\t\t~~~~~~~~~~~~~You Got A Ladder!! GO UP!!!~~~~~~~~~~~~~"); } if (userPosition < 0 || userPosition > 112) // This is ab ERROR TRAP to catch any unwanted system errors that may occur by chance { System.out.println ("An error has occured please reset the game!!!!!!"); } else if (userPosition > 100) // checks if user's location if greater then a 100 { userPosition = userPosition - userRoll; // subtract userRoll from the userposition to get back old position System.out.println ("OHHH You cant jump, you must land on a 100"); // print out the users current location } else if (userPosition == 100) { System.out.println ("YOU WON, GOOD JOB!!!"); // print out that the user won } return userPosition; // return the final position to starGame: this position had gone through all checks and test and can be displayed on screen }// end getP //-------------------------------------------------------------------compgetP Method------------------------------------------------------------------------------ /* compgetP method: This method is responsible for checking if the COMPUTER is on top of a snake, or at the bottom of a ladder, and then adjusting the compuer's position to mathch the snakes or ladders value. */ public static int compgetP (int compPosition, int compRoll, int snakesLaddersArray [], int userPosition) throws IOException {// start compgetP // NOTE: this method is similar to getP, so the comments are the same for both!! // Look at getP's commments if you need help if(compPosition == snakesLaddersArray[0]) { compPosition = 19; System.out.println ("\t\t\t\t~~~~~~~~~~~~~Computer Got Bit By A Snake, HE WENT GO DOWN!!!~~~~~~~~~~~~~"); } else if (compPosition == snakesLaddersArray[1]) { compPosition = 48; System.out.println ("\t\t\t\t~~~~~~~~~~~~~Computer Got Bit By A Snake, HE WENT GO DOWN!!!~~~~~~~~~~~~~"); } else if (compPosition == snakesLaddersArray[2]) { compPosition = 77; System.out.println ("\t\t\t\t~~~~~~~~~~~~~Computer Got Bit By A Snake, HE WENT GO DOWN!!!~~~~~~~~~~~~~"); } else if (compPosition == snakesLaddersArray[3]) { compPosition = 34; System.out.println ("Computer Got TO A Ladder, HE WENT UP!!!"); } else if (compPosition == snakesLaddersArray[4]) { compPosition = 64; System.out.println ("Computer Got TO A Ladder, HE WENT UP!!!"); } else if (compPosition == snakesLaddersArray[5]) { compPosition = 86; System.out.println ("Computer Got TO A Ladder, HE WENT UP!!!"); } if (compPosition < 0 || compPosition > 112) // ERROR TRAP to catch any unwanted system errors that may occur by chance { System.out.println ("An error has occured for the computer, please reset the game!!!!!!"); } else if (compPosition > 100) // checks if computers's location if greater then a 100 { compPosition = compPosition - compRoll; // get old position System.out.println ("THE COMPUTER CAN'T JUMP!!! He must land on a 100"); // give message that the computer cant jump } else if (compPosition == 100 && userPosition != 100) { System.out.println ("THE COMPUTER WON, YOU FAILED!!!"); // print out that the computer won } return compPosition; // return the final position to starGame: this position had gone through all checks and test and can be displayed on screen } // end compgetPy }//end class