SHARE
TWEET

Untitled

a guest Nov 30th, 2014 140 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.        
  2.  
  3.     import javax.swing.*;
  4.     //  run doesn't work after doing something first such as attacking sometimes (so I could make it so that running doesn't work mid combat), sometimes you kill the enemy twice (only when you try to run)
  5.     // level system causes battle to loop through multiple times sometimes
  6.     //potion causes you to find a chest sometimes
  7.    
  8.     //going to add a shop to spend gold
  9.  
  10.      
  11.      
  12.     public class lel {
  13.            
  14.             static int health = 100;
  15.             static int gold = 0;
  16.             static int exp = 0;
  17.             static int playerChosenDirection;
  18.             static int battleChoice;
  19.             static int monsterAt;
  20.             static int chestAt;
  21.             static int enemyHealth;
  22.             static int potion = 3;
  23.             static int amount;
  24.             static char userInput = 0;
  25.             static String uncheckedInput;
  26.             static boolean die = false;
  27.             static boolean chest;
  28.             static int chestLoot;
  29.             static int chestGold;
  30.             static int chestPotion;
  31.             static int chestTrap;
  32.             static int chestNothing;
  33.             static int level = 1;
  34.             static int amountNorth = 0;
  35.             static int amountEast = 0;
  36.             static int amountStep = 0;
  37.             static boolean leave;
  38.             //static int amountSouth = 0;
  39.            // static int amountWest = 0;
  40.            
  41.             public static void main(String[] args) {
  42.                    
  43.      
  44.                    // JOptionPane.showMessageDialog(null, "WELCOME.");
  45.                    // JOptionPane.showMessageDialog(null, "You are in a dungeon and slowly bleeding out every step. You have 3 health potions.");
  46.                    // JOptionPane.showMessageDialog(null, "You have the choice of going (N)orth, (E)ast, (S)outh, (W)est or (P)otion");
  47.                    // JOptionPane.showMessageDialog(null, "Good luck! Monsters have a chance of spawning and a chance of dropping a health potion and give exp and gold. You may also find a chest with loot.");
  48.                
  49.                    while(health > 0){
  50.                                    
  51.      
  52.                             do{
  53.                                    
  54.                                     uncheckedInput = (JOptionPane.showInputDialog("Which way do you go? " + "You have "+ health + " health."));
  55.                                     if(!uncheckedInput.equals("")) {
  56.                                             userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  57.                                     }
  58.                             }
  59.             while(userInput != 'N' && userInput != 'S'&& userInput != 'E'&& userInput != 'W' && userInput != 'P');
  60.                             health--;
  61.                     System.out.println("health = "+health);
  62.            
  63.                     playerChosenDirection = Move (userInput);
  64.                     monsterAt = (int)Math.floor(Math.random() * 4); //generates the monster at one of the random directions therefore 25% chance at encountering it.
  65.            
  66.                     if (playerChosenDirection == monsterAt) {
  67.                             //battle
  68.                          System.out.println("Battle!");
  69.                             JOptionPane.showMessageDialog(null, "You have encountered an enemy!");
  70.                            
  71.                             //JOptionPane.showMessageDialog(null, "It has " +enemyHealth+ " health."); // again, i need to make enemyhealth usable from multiple parts of code
  72.                             enemyHealth = (int)((Math.random()*10) + 10); //generate monster spawn
  73.                             battle(); //start battle
  74.                     }
  75.                     else
  76.                     {
  77.                    
  78.                            // WOW THERE WAS A LINE HERE,  playerChosenDirection = Move (userInput); THAT I DIDNT NEED THAT WAS THE DOUBLE PRINTING BUG WOWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
  79.                            
  80.                            chestAt = (int)Math.floor(Math.random() * 8); //generates the chest at one of the random directions therefore 20% chance at encountering it.
  81.                    
  82.                             if (playerChosenDirection == chestAt) {
  83.                             System.out.println("You found a chest.");
  84.                             JOptionPane.showMessageDialog(null, "You have found a chest!");                            
  85.                             JOptionPane.showMessageDialog(null, "It looks like it could be trapped, do you want to (o)pen it or (l)eave it?");
  86.                             chest();
  87.                             }
  88.                             else if(amountStep>25){
  89.                                 int exit = (int)Math.floor(Math.random() * 16); //exit 1/16 chance after 25 moves
  90.                                 if (playerChosenDirection == exit)        {  
  91.                                 System.out.println("You have found an exit!"); 
  92.                                 JOptionPane.showMessageDialog(null, "You have found an exit!");
  93.                                 JOptionPane.showMessageDialog(null, "Do you want to leave now?");
  94.                                 leave();
  95.                             }
  96.                             else{
  97.                            
  98.  
  99.                             }
  100.                     }
  101.                             }
  102.                     }
  103.             }
  104.                    
  105.            
  106.             public static void chest(){
  107.                    
  108.                            
  109.                 uncheckedInput = JOptionPane.showInputDialog("What do you do?");
  110.                 if (!uncheckedInput.equals("")) {
  111.                         userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  112.                 }
  113.                
  114.                 switch(userInput) {
  115.                         case 'O':
  116.                                 chest = true;
  117.                                 break;
  118.                         case 'L':
  119.                                 chest = false;
  120.                                 break;
  121.                         default:
  122.                                 chest();
  123.                                 break;
  124.                                 }
  125.                
  126.                     if(chest == false){
  127.                    
  128.                     }
  129.                
  130.                     else if(chest == true){
  131.                            
  132.                    
  133.                     int loot = (int) (Math.random() * 4);
  134.                            
  135.                             switch(loot) {                      
  136.                          
  137.                             case 1:
  138.                             if(loot == 0){
  139.                                     gold +=  (int)(Math.random()*6 + 5);
  140.                                     System.out.println("You found some gold! You now have " + gold + " gold.");
  141.                                     JOptionPane.showMessageDialog(null, "You found some gold! You now have " + gold + " gold.");
  142.                                    
  143.                             break;
  144.                             }
  145.                             case 2:
  146.                             if (loot == 1){
  147.                                     potion++;
  148.                                     System.out.println("You found a potion!");
  149.                                     JOptionPane.showMessageDialog(null, "You found a potion! You now have " + potion + " potions.");
  150.                                                  
  151.                             break;  }
  152.                            
  153.                             case 3:
  154.                         if (loot == 2){
  155.                             health -=  (int)(Math.random()*16 + 10);
  156.                             System.out.println("Oh no! The chest was trapped. You took some damage...");
  157.                             JOptionPane.showMessageDialog(null, "Oh no! The chest was trapped. You now have " + health + " health.");
  158.                            
  159.                         break;
  160.                         }
  161.                        
  162.                             case 4:                  
  163.                       if (loot ==3) {
  164.                                 System.out.println("No loot from that chest.");
  165.                         JOptionPane.showMessageDialog(null, "You found nothing...");
  166.      
  167.                         break;  
  168.                         }    
  169.                            
  170.                             case 5:                  
  171.                                 if (loot == 4 ) {
  172.                                         System.out.println("No loot from that chest.");
  173.                                   JOptionPane.showMessageDialog(null, "You found nothing...");
  174.                
  175.                                   break;  
  176.                                   }    
  177.                             }
  178.                             }
  179.                            
  180.                            
  181.                             }
  182.            
  183.                    
  184.              
  185.                    
  186.          
  187.     public static int Move (char direction)  // receives user input and gives you an integer coord in exchange
  188.      
  189.     {
  190.      
  191.     switch (direction){
  192.             case 'N':
  193.                     System.out.println("You went north.");  
  194.                     amountStep++;
  195.                     amountNorth++;
  196.                     if(amountNorth>0 && amountEast>0){
  197.                     System.out.println("You are at North " + amountNorth + " and East " + amountEast);
  198.                                 } else if(amountNorth<0 && amountEast<0) {                    
  199.                                 System.out.println("You are at South " + amountNorth*-1 + " and West " + amountEast*-1);
  200.                                 }
  201.                                 else if(amountNorth>0 && amountEast<0){
  202.                                         System.out.println("You are at North " + amountNorth + " and West " + amountEast*-1);  
  203.                                 }
  204.                                 else if(amountNorth<0 && amountEast>0){
  205.                                         System.out.println("You are at South " + amountNorth*-1 + " and East " + amountEast);  
  206.                                 }
  207.                                 else if(amountNorth==0 && amountEast==0){
  208.                                         System.out.println("You are in between North and South and East and West");            
  209.                                 }
  210.                                 else if(amountNorth==0 && amountEast<0){
  211.                                 System.out.println("You are inbetween North and South and at West " + amountEast*-1);  
  212.                                 }
  213.                                 else if(amountNorth<0 && amountEast==0){
  214.                                         System.out.println("You are at South " + amountNorth*-1 + " and in between East and West");    
  215.                                         }
  216.                                 else if(amountNorth==0 && amountEast>0){
  217.                                         System.out.println("You are inbetween North and South and at East " + amountEast);     
  218.                                         }
  219.                                 else if(amountNorth>0 && amountEast==0){
  220.                                         System.out.println("You are at North " + amountNorth + " and in between East and West");       
  221.                                         }
  222.                     return 0;
  223.             case 'E':
  224.                     System.out.println("You went east.");
  225.                     amountStep++;
  226.                     amountEast++;                    
  227.                    
  228.                           if(amountNorth>0 && amountEast>0){
  229.                               System.out.println("You are at North " + amountNorth + " and East " + amountEast);
  230.                                         } else if(amountNorth<0 && amountEast<0) {                    
  231.                                         System.out.println("You are at South " + amountNorth*-1 + " and West " + amountEast*-1);
  232.                                         }
  233.                                         else if(amountNorth>0 && amountEast<0){
  234.                                                 System.out.println("You are at North " + amountNorth + " and West " + amountEast*-1);  
  235.                                         }
  236.                                         else if(amountNorth<0 && amountEast>0){
  237.                                                 System.out.println("You are at South " + amountNorth*-1 + " and East " + amountEast);  
  238.                                         }
  239.                                         else if(amountNorth==0 && amountEast==0){
  240.                                                 System.out.println("You are in between North and South and East and West");            
  241.                                         }
  242.                                         else if(amountNorth==0 && amountEast<0){
  243.                                         System.out.println("You are inbetween North and South and at West " + amountEast*-1);  
  244.                                         }
  245.                                         else if(amountNorth<0 && amountEast==0){
  246.                                                 System.out.println("You are at South " + amountNorth*-1 + " and in between East and West");    
  247.                                                 }
  248.                                         else if(amountNorth==0 && amountEast>0){
  249.                                                 System.out.println("You are inbetween North and South and at East " + amountEast);     
  250.                                                 }
  251.                                         else if(amountNorth>0 && amountEast==0){
  252.                                                 System.out.println("You are at North " + amountNorth + " and in between East and West");       
  253.                                                 }
  254.                    
  255.                     return 1;                  
  256.             case 'S':
  257.                     System.out.println("You went south.");
  258.                     amountStep++;
  259.                     amountNorth--;
  260.                     if(amountNorth>0 && amountEast>0){
  261.                         System.out.println("You are at North " + amountNorth + " and East " + amountEast);
  262.                                         } else if(amountNorth<0 && amountEast<0) {                    
  263.                                         System.out.println("You are at South " + amountNorth*-1 + " and West " + amountEast*-1);
  264.                                         }
  265.                                         else if(amountNorth>0 && amountEast<0){
  266.                                                 System.out.println("You are at North " + amountNorth + " and West " + amountEast*-1);  
  267.                                         }
  268.                                         else if(amountNorth<0 && amountEast>0){
  269.                                                 System.out.println("You are at South " + amountNorth*-1 + " and East " + amountEast);  
  270.                                         }
  271.                                         else if(amountNorth==0 && amountEast==0){
  272.                                                 System.out.println("You are in between North and South and East and West");            
  273.                                         }
  274.                                         else if(amountNorth==0 && amountEast<0){
  275.                                         System.out.println("You are inbetween North and South and at West " + amountEast*-1);  
  276.                                         }
  277.                                         else if(amountNorth<0 && amountEast==0){
  278.                                         System.out.println("You are at South " + amountNorth*-1 + " and in between East and West");    
  279.                                         }
  280.                                         else if(amountNorth==0 && amountEast>0){
  281.                                         System.out.println("You are inbetween North and South and at East " + amountEast);     
  282.                                         }
  283.                                         else if(amountNorth>0 && amountEast==0){
  284.                                         System.out.println("You are at North " + amountNorth + " and in between East and West");       
  285.                                         }
  286.                     return 2;
  287.             case 'W':
  288.                     System.out.println("You went west.");  
  289.                     amountStep++;
  290.                     amountEast--;
  291.                     if(amountNorth>0 && amountEast>0){
  292.                         System.out.println("You are at North " + amountNorth + " and East " + amountEast);
  293.                                         } else if(amountNorth<0 && amountEast<0) {                    
  294.                                         System.out.println("You are at South " + amountNorth*-1 + " and West " + amountEast*-1);
  295.                                         }
  296.                                         else if(amountNorth>0 && amountEast<0){
  297.                                                 System.out.println("You are at North " + amountNorth + " and West " + amountEast*-1);  
  298.                                         }
  299.                                         else if(amountNorth<0 && amountEast>0){
  300.                                                 System.out.println("You are at South " + amountNorth*-1 + " and East " + amountEast);  
  301.                                         }
  302.                                         else if(amountNorth==0 && amountEast==0){
  303.                                                 System.out.println("You are in between North and South and East and West");            
  304.                                         }
  305.                                         else if(amountNorth==0 && amountEast<0){
  306.                                         System.out.println("You are inbetween North and South and at West " + amountEast*-1);  
  307.                                         }
  308.                                         else if(amountNorth<0 && amountEast==0){
  309.                                         System.out.println("You are at South " + amountNorth*-1 + " and in between East and West");    
  310.                                         }
  311.                                         else if(amountNorth==0 && amountEast>0){
  312.                                         System.out.println("You are inbetween North and South and at East " + amountEast);     
  313.                                         }
  314.                                         else if(amountNorth>0 && amountEast==0){
  315.                                         System.out.println("You are at North " + amountNorth + " and in between East and West");       
  316.                                         }
  317.                     return 3;
  318.             case 'P':
  319.                 if (potion > 0) {
  320.                     potion--; //remove 1 potion
  321.                     health++;
  322.                     amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  323.                
  324.                     health += amount; //heal from potion
  325.                     if (health > 100) {
  326.                         health = 100;
  327.                    
  328.                     System.out.println("You drink a potion.");
  329.                     System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  330.                     System.out.println("You have " + potion + " potions left.");
  331.                     }
  332.                 } else {
  333.                         System.out.println("You have 0 potions to drink.");
  334.                     JOptionPane.showMessageDialog(null, "You have no potions to drink.");
  335.                 }
  336.            
  337.                 return 5;
  338.                
  339.                        
  340.             default:
  341.                
  342.                     return 6;
  343.                    
  344.                    
  345.     }
  346.      
  347.      
  348.     }
  349.      
  350.     public static void battle ()
  351.            
  352.     {
  353.             if (health > 0) { //check you're alive.
  354.                     uncheckedInput = JOptionPane.showInputDialog(null, "What do you do, (A)ttack (D)efend (P)otion or (R)un?"); //take input string
  355.                     if (!uncheckedInput.equals("")) { //check there actually is a character at (0) to stop game crashing
  356.                             battleChoice = Character.toUpperCase(uncheckedInput.charAt(0)); //set the battlechoice variable to the Char at 0, and capitalise it.
  357.                     } else {
  358.                             battle(); //re-call the battle method to ask question again because user entered nothing
  359.                     }
  360.                    
  361.                  
  362.                     int hit;        
  363.                     int runChance;
  364.                    
  365.                     switch (battleChoice){
  366.                             case 'A':
  367.                                     hit = (int)(Math.random() * 6 *.5 * level + 2); //your damage
  368.                                     enemyHealth -= hit;
  369.                                    
  370.                                     if(hit >= enemyHealth) { //hit high enough to kill the enemy
  371.                                         System.out.println("You hit " + hit + " damage and kill the enemy!");
  372.                                                 JOptionPane.showMessageDialog(null, "You hit " + hit + " damage and kill the enemy!");
  373.                                              
  374.                                             gold += (int)((Math.random() * 10) + 1); //gives player gold between 1-10.
  375.                                             exp += (int) ((Math.random() * 10) + 1); //gives player exp;
  376.                                             System.out.println("You now have " +exp+ " exp and " +gold+ " gold.");
  377.                                             JOptionPane.showMessageDialog(null, "You now have " +exp+ " exp and " +gold+ " gold.");
  378.                                             int potionDrop = (int) (Math.random() * 10);
  379.                                             if (potionDrop == 0) {
  380.                                                 potion ++;
  381.                                                 System.out.println("You have gained a potion! You now have " + potion + " potions.");
  382.                                                 JOptionPane.showMessageDialog(null, "You have gained a potion! You now have " + potion + " potions.");        
  383.                                             }
  384.                                             level();
  385.                                             break;
  386.                                     } else {
  387.                                         System.out.println("you hit " + hit + " damage. The enemy now has " + enemyHealth + " health.");
  388.                                              JOptionPane.showMessageDialog(null, "You hit " + hit + " damage. The enemy now has " + enemyHealth + " health.");    
  389.                                            
  390.                                             hit = (int)((Math.random() * 8) + 2);
  391.                                             health -= hit; //enemy hits you back
  392.                                             System.out.println("The enemy retaliates with " + hit + " damage. Your health is now " + health + ".");
  393.                                             JOptionPane.showMessageDialog(null, "The enemy retaliates with a " + hit + ". Your health is now " + health + ".");
  394.                                            
  395.                                             battle(); //battle isn't over cos both alive so make it ask you what to do next in battle.
  396.                                            
  397.                                     }
  398.                                     break;
  399.                             case 'D':
  400.                                     hit = (int)((Math.random() * 5)); //enemy hits half of normal because defending mode.
  401.                                     health -= hit;
  402.                                     System.out.println("You took " +hit+ " damage! Your health is now " + health);
  403.                                     JOptionPane.showMessageDialog(null, "You took " +hit+ " damage! Your health is now " + health);
  404.                                    
  405.                                     battle(); // battle continues
  406.                                     break;
  407.                             case 'P':
  408.                                     if (potion > 0) {
  409.                                             potion--; //remove 1 potion
  410.                                             amount = (int)((Math.random() * 11) + 10); //generate random heal amount between 10-20
  411.                                        
  412.                                             health += amount; //heal from potion
  413.                                             if (health > 100) {
  414.                                                 health = 100;
  415.                                             }
  416.                                             System.out.println("You healed " + amount + " health! you now have " + health + " health.");
  417.                                             System.out.println("You have " + potion + " potions left.");
  418.                                             JOptionPane.showMessageDialog(null, "You drink a potion.");
  419.                                             JOptionPane.showMessageDialog(null, "You healed " + amount + " health! you now have " + health + " health.");
  420.                                             JOptionPane.showMessageDialog(null, "You have " + potion + " potions left.");
  421.                                            
  422.                                             hit = (int)((Math.random() * 6 + 2)); //enemy hit on you after potion
  423.                                             health -= hit; //enemy hits you back
  424.                                             System.out.println("enemy hits you with a " + hit + ". Your health is now " + health);
  425.                                             JOptionPane.showMessageDialog(null, "enemy hits you with a " + hit + ". Your health is now " + health);
  426.                                            
  427.                                            
  428.                                     } else {
  429.                                         System.out.println("You have 0 potions to drink.");
  430.                                             JOptionPane.showMessageDialog(null, "You have no potions to drink.");
  431.                                            
  432.                                     }
  433.                                     battle();
  434.                                     break;
  435.                             case 'R':
  436.                                     runChance = (int) (Math.random() * 2); //50/50 chance of escape
  437.                                     if (runChance == 0) {
  438.                                             //successful escape, battle over and continues adventure
  439.                                         System.out.println("You successfully escape!");
  440.                                             JOptionPane.showMessageDialog(null, "You successfully escape!");
  441.                                            
  442.                                             break;
  443.                                     } else {
  444.                                             //unsuccessful escape
  445.                                             hit = (int)((Math.random() * 11) + 6); //enemy hit between 10-20
  446.                                             health -= hit; //so you get hit
  447.                                             System.out.println("You try to escape but are too slow and the enemy hits you for a " + hit +" . You now have " + health + " health.");
  448.                                             JOptionPane.showMessageDialog(null, "You try to escape but are too slow and the enemy hits you for a " + hit +" . You now have " + health + " health.");
  449.                                            
  450.                                             battle(); //battle continues
  451.                                     }
  452.                             default:
  453.                                     battle(); //user didn't enter any of the battle options, so we ask them again
  454.                                     break;
  455.                     }
  456.                    
  457.                            
  458.                            
  459.             } else if(health < 1) {
  460.                
  461.                     die = true; //dead
  462.                     if (health < 0) {
  463.                         health = 0;
  464.                     }
  465.                     System.out.println("Oh dear, you are dead!");
  466.                     JOptionPane.showMessageDialog(null, "Oh dear, you are dead!");
  467.                     System.out.println("You die with " +exp+ " exp and " +gold+ " gold.");
  468.                     JOptionPane.showMessageDialog(null, "You die with " +exp+ " exp and " +gold+ " gold.");
  469.                     System.out.println("You die at " + amountNorth + amountEast);
  470.                     JOptionPane.showMessageDialog(null, "You die at North " + amountNorth + " and East " + amountEast);
  471.                     System.exit(0);
  472.                    
  473.             }
  474.     }
  475.    
  476.     public static void level ()
  477.     {
  478.                     switch (level)
  479.                     {
  480.      
  481.      case 0:
  482.             if(exp<20)                
  483.             JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  484.             System.out.println("Level "+ level+ ".");  
  485.             break;                    
  486.             case 1:
  487.                     if(exp>=20)                
  488.                     level++;
  489.                     JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  490.                     System.out.println("Level "+ level+ ".");  
  491.                     break;                  
  492.                     case 2:
  493.                         if(exp>=40)                
  494.                         level++;
  495.                         JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  496.                         System.out.println("Level "+ level+ ".");      
  497.                         break;
  498.                         case 3:
  499.                             if(exp>=80)                
  500.                             level++;
  501.                             JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  502.                             System.out.println("Level "+ level+ ".");  
  503.                             break;
  504.                             case 4:
  505.                                 if(exp>=160)              
  506.                                 level++;
  507.                                 JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  508.                                 System.out.println("Level "+ level+ ".");      
  509.                                 break;
  510.                                 case 5:
  511.                                     if(exp>=320)                  
  512.                                     level++;
  513.                                     JOptionPane.showMessageDialog(null, "You are level " + level + ".");
  514.                                     System.out.println("Level "+ level+ ".");          
  515.                                     break;
  516.              
  517.                                 default:
  518.                                     break;
  519.             }
  520.     }
  521.    
  522.    
  523.     public static void leave(){
  524.        
  525.        
  526.         uncheckedInput = JOptionPane.showInputDialog("Do you leave, (Y)es or (N)o?");
  527.         if (!uncheckedInput.equals("")) {
  528.                 userInput = Character.toUpperCase(uncheckedInput.charAt(0));
  529.         }
  530.        
  531.         switch(userInput) {
  532.         case 'Y':
  533.             leave = true;
  534.             System.out.println("You leave with " +exp+ " exp and " +gold+ " gold.");
  535.             JOptionPane.showMessageDialog(null, "You leave with " +exp+ " exp and " +gold+ " gold.");
  536.             System.out.println("Your exit was at " + amountNorth + amountEast);
  537.             JOptionPane.showMessageDialog(null, "Your exit was at at North " + amountNorth + " and East " + amountEast);
  538.             System.exit(0);
  539.     case 'N':
  540.             leave = false;
  541.             break;
  542.     default:
  543.             leave();
  544.             break;
  545.             }
  546.  
  547. }
  548.     }
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
 
Top