SHARE
TWEET

Untitled

a guest Nov 18th, 2014 196 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. import javax.swing.*;
  4. // need to fix, potion is going double when walking, sometimes printing you went x direction twice
  5.  
  6.  
  7. public class lel {
  8.        
  9.         static int health = 100;
  10.         static int gold = 0;
  11.         static int exp = 0;
  12.         static int playerChosenDirection;
  13.         static int battleChoice;
  14.         static int monsterAt;
  15.         static int chestAt;
  16.         static int enemyHealth;
  17.         static int potion = 3;
  18.         static int amount;
  19.         static char userInput = 0;
  20.         static String uncheckedInput;
  21.         static boolean die = false;
  22.         static boolean chest;
  23.        
  24.         public static void main(String[] args) {
  25.                
  26.  
  27.                 JOptionPane.showMessageDialog(null, "WELCOME.");
  28.                 JOptionPane.showMessageDialog(null, "You are in a dungeon and slowly bleeding out every step. You have 3 health potions.");
  29.                 JOptionPane.showMessageDialog(null, "You have the choice of going (N)orth, (E)ast, (S)outh, (W)est or (P)otion");
  30.                 JOptionPane.showMessageDialog(null, "Good luck! Monsters have a 25% chance of spawning and 10% chance of dropping a health potion and give 1-10 exp and gold.");
  31.            
  32.                 while(health > 0){
  33.                                
  34.  
  35.                         do{
  36.                                
  37.                                 uncheckedInput = (JOptionPane.showInputDialog("Which way do you go? " + "You have "+ health + " health."));
  38.                                 if(!uncheckedInput.equals("")) {
  39.                                         userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  40.                                 }
  41.                         }
  42.         while(userInput != 'N' && userInput != 'S'&& userInput != 'E'&& userInput != 'W' && userInput != 'P');
  43.                         health--;
  44.                 System.out.println("health = "+health);
  45.        
  46.                 playerChosenDirection = Move (userInput);
  47.                 monsterAt = (int)Math.floor(Math.random() * 4); //generates the monster at one of the random directions therefore 25% chance at encountering it.
  48.        
  49.                 if (playerChosenDirection == monsterAt) {
  50.                         //battle
  51.                         JOptionPane.showMessageDialog(null, "You have encountered an enemy!");
  52.                         System.out.println("Battle!");
  53.                         //JOptionPane.showMessageDialog(null, "It has " +enemyHealth+ " health."); // again, i need to make enemyhealth usable from multiple parts of code
  54.                         enemyHealth = (int)((Math.random()*10) + 10); //generate monster spawn
  55.                         battle(); //start battle
  56.                 }
  57.                 {
  58.                        
  59.                         playerChosenDirection = Move (userInput);
  60.                        chestAt = (int)Math.floor(Math.random() * 5); //generates the chest at one of the random directions therefore 20% chance at encountering it.
  61.                
  62.                         if (playerChosenDirection == chestAt) {
  63.                         JOptionPane.showMessageDialog(null, "You have found a chest!");                            
  64.                         JOptionPane.showInputDialog(null, "It looks like it could be trapped, do you want to (o)pen it or (l)eave it?");
  65.                         //if(chest == false){
  66.                         //////where i ended need to make it continue
  67.                         //else if(chest == true){
  68.                                 //////25% chance nothing 25%chance trap 25% gold 25% potion math*4 and cases
  69.                                
  70.                         }
  71.                                
  72.                                
  73.                                
  74.                         }
  75.                        
  76.  
  77.                         if (monsterAt == chestAt) {
  78.                             chestAt += 1;
  79.                        }
  80.        
  81.                 }
  82.  
  83.  
  84.                 }
  85.                
  86.                
  87.                
  88.        
  89.         public void chest(){
  90.        
  91.        
  92.             uncheckedInput = JOptionPane.showInputDialog("What do you do?");
  93.             if (!uncheckedInput.equals("")) {
  94.                     userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  95.             }
  96.            
  97.             switch(userInput) {
  98.                     case 'O':
  99.                             chest = true;
  100.                             break;
  101.                     case 'L':
  102.                             chest = false;
  103.                             break;
  104.                     default:
  105.                             chest();
  106.                             break;}
  107.             }
  108.      
  109.  
  110.  
  111. public static int Move (char direction)  // receives user input and gives you an integer coord in exchange
  112.  
  113. {
  114.  
  115. switch (direction){
  116.         case 'N':
  117.                 System.out.println("You went north.");  
  118.                 return 0;
  119.         case 'E':
  120.                 System.out.println("You went east.");  
  121.                 return 1;
  122.         case 'S':
  123.                 System.out.println("You went south.");  
  124.                 return 2;
  125.         case 'W':
  126.                 System.out.println("You went west.");  
  127.                 return 3;
  128.         case 'P':
  129.             if (potion > 0) {
  130.                 potion--; //remove 1 potion
  131.                 amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  132.            
  133.                 health += amount; //heal from potion
  134.                 if (health > 100) {
  135.                     health = 100;
  136.                 }
  137.                 System.out.println("You drink a potion.");
  138.                 System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  139.                 System.out.println("You have " + potion + " potions left.");
  140.                
  141.             } else {
  142.                 System.out.println("You have 0 potions to drink.");
  143.         }
  144.             return 5;
  145.        
  146.                    
  147.         default:
  148.                 return 6;
  149. }
  150.  
  151.  
  152. }
  153.  
  154. public static void battle ()
  155.        
  156. {
  157.         if (health > 0) { //check you're alive.
  158.                 uncheckedInput = JOptionPane.showInputDialog(null, "What do you do, (A)ttack (D)efend (P)otion or (R)un?"); //take input string
  159.                 if (!uncheckedInput.equals("")) { //check there actually is a character at (0) to stop game crashing
  160.                         battleChoice = Character.toUpperCase(uncheckedInput.charAt(0)); //set the battlechoice variable to the Char at 0, and capitalise it.
  161.                 } else {
  162.                         battle(); //re-call the battle method to ask question again because user entered nothing
  163.                 }
  164.                
  165.              
  166.                 int hit;        
  167.                 int runChance;
  168.                
  169.                 switch (battleChoice){
  170.                         case 'A':
  171.                                 hit = (int)(Math.random() * 6); //generate random hit between 0 and 5.
  172.                                 enemyHealth -= hit;
  173.                                
  174.                                 if(hit >= enemyHealth) { //hit high enough to kill the enemy
  175.                                         System.out.println("You hit " + hit + " damage and kill the enemy!!");
  176.                                         gold += (int)((Math.random() * 9) + 1); //gives player gold between 1-9.
  177.                                         exp += (int) ((Math.random() * 10) + 1); //gives player exp;
  178.                                         System.out.println("You now have " +exp+ " exp and " +gold+ " gold.");
  179.                                         int potionDrop = (int) (Math.random() * 10);
  180.                                         if (potionDrop == 0) {
  181.                                             potion ++;
  182.                                         }
  183.                                 } else {
  184.                                         System.out.println("you hit " + hit + " damage. The enemy now has " + enemyHealth + ".");
  185.                                         hit = (int)((Math.random() * 7) + 5); //enemy hit on you between 10-20
  186.                                         health -= hit; //enemy hits you back
  187.                                         System.out.println("enemy retaliates with a " + hit + ". Your health is now " + health);
  188.                                         battle(); //battle isn't over cos both alive so make it ask you what to do next in battle.
  189.                                        
  190.                                 }
  191.                                 break;
  192.                         case 'D':
  193.                                 hit = (int)((Math.random() * 3) + 2); //enemy hits you between 5-10, half of normal because defending mode.
  194.                                 health -= hit;
  195.                                 System.out.println("You took " +hit+ " damage! Your health is now " + health);
  196.                                 battle(); // battle continues
  197.                                 break;
  198.                         case 'P':
  199.                                 if (potion > 0) {
  200.                                         potion--; //remove 1 potion
  201.                                         amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  202.                                    
  203.                                         health += amount; //heal from potion
  204.                                         if (health > 100) {
  205.                                             health = 100;
  206.                                         }
  207.                                         System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  208.                                         System.out.println("You have " + potion + " potions left.");
  209.                                        
  210.                                         hit = (int)((Math.random() * 11) + 10); //enemy hit on you between 10-20
  211.                                         health -= hit; //enemy hits you back
  212.                                         System.out.println("enemy hits you with a " + hit + ". Your health is now " + health);
  213.                                        
  214.                                 } else {
  215.                                         System.out.println("You have 0 potions to drink.");
  216.                                 }
  217.                                 battle();
  218.                                 break;
  219.                         case 'R':
  220.                                 runChance = (int) (Math.random() * 2); //50/50 chance of escape
  221.                                 if (runChance == 0) {
  222.                                         //successful escape, battle over and continues adventure
  223.                                         System.out.println("You successfully escape!");
  224.                                         break;
  225.                                 } else {
  226.                                         //unsuccessful escape
  227.                                         hit = (int)((Math.random() * 11) + 6); //enemy hit between 10-20
  228.                                         health -= hit; //so you get hit
  229.                                         System.out.println("You try to escape but are too slow and the enemy hits you for a " + hit +" . You now have " + health + "health.");
  230.                                         battle(); //battle continues
  231.                                 }
  232.                         default:
  233.                                 battle(); //user didn't enter any of the battle options, so we ask them again
  234.                                 break;
  235.                 }
  236.                
  237.                        
  238.                        
  239.         } else {
  240.                 die = true; //dead
  241.                 if (health < 0) {
  242.                     health = 0;
  243.                 }
  244.                 System.out.println("Oh dear, you are dead!");
  245.                 System.out.println("You die with " +exp+ " exp and " +gold+ " gold.");
  246.         }
  247.          
  248.              
  249.         }
  250. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top