Guest User

Untitled

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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×