Advertisement
Feargal

Instantible

Dec 19th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.09 KB | None | 0 0
  1. /*
  2. * MontyHall.java
  3. * Feargal Wright
  4. * 19/12/14
  5. */
  6.  
  7. import java.util.Random;
  8.  
  9. public class MontyHall {
  10.  
  11.     //variables
  12.     private int chosenDoor;
  13.     private int revealedDoor;
  14.     private int winningDoor;
  15.     private int remainingDoor;
  16.     private int winCounter;
  17.     //Create Random
  18.     Random rand = new Random();
  19.  
  20.  
  21.     // constructor
  22.     public MontyHall() {
  23.         //give variables default values
  24.         chosenDoor = 0;
  25.         revealedDoor = 0;
  26.         winningDoor = 0;
  27.         remainingDoor = 0;
  28.         winCounter = 0;
  29.  
  30.     }//end of constructor
  31.  
  32.     //setters
  33.     public void setChosenDoor(int chosenDoor) {//setter start
  34.         this.chosenDoor = chosenDoor;//set chosen door from the app class
  35.     }//setter end
  36.  
  37.     //Computation to reveal door and select winnig door
  38.     public void revealCompute() {//start reveal
  39.         switch (chosenDoor) {//start of case switch
  40.  
  41.             case 1:
  42.                 revealedDoor = rand.nextBoolean() ? 2 : 3;
  43.                 if (revealedDoor == 2) {
  44.                     remainingDoor = 3;
  45.                     winningDoor = rand.nextBoolean() ? 1 : 3;
  46.                 } else if (revealedDoor == 3) {
  47.                     remainingDoor = 2;
  48.                     winningDoor = rand.nextBoolean() ? 1 : 2;
  49.                 }
  50.                 break;
  51.             case 2:
  52.                 revealedDoor = rand.nextBoolean() ? 1 : 3;
  53.                 if (revealedDoor == 1) {
  54.                     remainingDoor = 3;
  55.                     winningDoor = rand.nextBoolean() ? 2 : 3;
  56.                 } else if (revealedDoor == 2) {
  57.                     remainingDoor = 1;
  58.                     winningDoor = rand.nextBoolean() ? 1 : 2;
  59.                 }
  60.                 break;
  61.             case 3:
  62.                 revealedDoor = rand.nextBoolean() ? 1 : 2;
  63.                 if (revealedDoor == 1) {
  64.                     remainingDoor = 2;
  65.                     winningDoor = rand.nextBoolean() ? 2 : 3;
  66.                 } else if (revealedDoor == 2) {
  67.                     remainingDoor = 1;
  68.                     winningDoor = rand.nextBoolean() ? 1 : 3;
  69.                 }
  70.                 break;
  71.         }//end of case switch
  72.     }//end reveal
  73.  
  74.     //getter
  75.     public int getRevealedDoor() {//start getter
  76.         return revealedDoor;//return which door is revealed
  77.     }//end getter
  78.  
  79.     // if the user decides to swap this allows it
  80.     public void swapCompute() {//swap start
  81.  
  82.         int swapStore = chosenDoor;//Int swap store facilitates the switching of the int values if the user changes door
  83.         chosenDoor = remainingDoor;//change the chosen door to the remaing door
  84.         remainingDoor = swapStore;//change the remaing door to the swapStore value of the chosen door
  85.  
  86.         if (winningDoor == chosenDoor) {//if start
  87.                    winCounter = 1;//set the win counter to 1 / a win
  88.                 }//if end
  89.         else {
  90.               winCounter = 0;
  91.        }
  92.  
  93.     }//swap computation end
  94.  
  95.     //result getter
  96.     public int Result() {//getter start
  97.         return winCounter;//return the win counter if = 1 Win!
  98.     }//getter end
  99.  
  100. }//end of class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement