myrdok123

The Heigan Dance

Jan 28th, 2025
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1.  
  2. import java.util.*;
  3.  
  4. public class Demo1 {
  5.  
  6.  
  7.     public static void main(String[] args) {
  8.  
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         String[][] chamber = new String[15][15];
  12.         double playerHP = 18500;
  13.         boolean playerLost = false;
  14.         double playerDmg = Double.parseDouble(scanner.nextLine());
  15.         double bossHP = 3000000;
  16.         boolean playerWon = false;
  17.         int playerX = 7;
  18.         int playerY = 7;
  19.         boolean isCloudActive = false;
  20.         String spell = "";
  21.         String spellData = scanner.nextLine();
  22.  
  23.         while (true) {
  24.  
  25.             if (playerHP > 0) {
  26.                 bossHP -= playerDmg;
  27.                 if (bossHP < 0) {
  28.                     playerWon = true;
  29.                 }
  30.             }
  31.  
  32.             if (isCloudActive) {
  33.                 playerHP -= 3500;
  34.                 if (playerHP <= 0) {
  35.                     playerLost = true;
  36.                 }
  37.                 isCloudActive = false;
  38.             }
  39.  
  40.             if (playerWon || playerLost) {
  41.                 break;
  42.             }
  43.  
  44.             spell = spellData.split(" ")[0];
  45.             int spellX = Integer.parseInt(spellData.split(" ")[1]);
  46.             int spellY = Integer.parseInt(spellData.split(" ")[2]);
  47.  
  48.             if (playerIsInSpellRange(spellX, spellY, playerX, playerY)) {
  49.                 if (!playerIsInSpellRange(spellX, spellY, playerX - 1, playerY) && playerIsInChamber(playerX - 1, playerY, chamber)) {
  50.                     playerX--;
  51.                 } else if (!playerIsInSpellRange(spellX, spellY, playerX, playerY + 1) && playerIsInChamber(playerX, playerY + 1, chamber)) {
  52.                     playerY++;
  53.                 } else if (!playerIsInSpellRange(spellX, spellY, playerX + 1, playerY) && playerIsInChamber(playerX + 1, playerY, chamber)) {
  54.                     playerX++;
  55.                 } else if (!playerIsInSpellRange(spellX, spellY, playerX, playerY - 1) && playerIsInChamber(playerX, playerY - 1, chamber)) {
  56.                     playerY--;
  57.                 } else {
  58.                     if (spell.equals("Cloud")) {
  59.                         playerHP -= 3500;
  60.                         isCloudActive = true;
  61.                     } else if (spell.equals("Eruption")) {
  62.                         playerHP -= 6000;
  63.                     }
  64.                     if (playerHP <= 0) {
  65.                         playerLost = true;
  66.                         break;
  67.                     }
  68.                 }
  69.             }
  70.             spellData = scanner.nextLine();
  71.         }
  72.  
  73.         if (playerWon) {
  74.             System.out.println("Heigan: Defeated!");
  75.             if(playerHP <= 0){
  76.                 spell = "Plague Cloud";
  77.                 System.out.printf("Player: Killed by %s\n", spell);
  78.             }else {
  79.                 System.out.printf("Player: %.0f\n", playerHP);
  80.             }
  81.         } else {
  82.             System.out.printf("Heigan: %.2f\n", bossHP);
  83.             if (spell.equals("Cloud")) {
  84.                 spell = "Plague Cloud";
  85.             }
  86.             System.out.printf("Player: Killed by %s\n", spell);
  87.         }
  88.         System.out.printf("Final position: %d, %d\n", playerX, playerY);
  89.     }
  90.  
  91.     private static boolean playerIsInSpellRange(int spellRangeX, int spellRangeY, int playerPosX, int playerPosY) {
  92.         return (spellRangeX - 1 <= playerPosX && spellRangeX + 1 >= playerPosX) && (spellRangeY - 1 <= playerPosY && spellRangeY + 1 >= playerPosY);
  93.     }
  94.  
  95.     private static boolean playerIsInChamber(int playerPosX, int playerPosY, String[][] chamber) {
  96.         return playerPosX >= 0 && playerPosX < chamber.length && playerPosY >= 0 && playerPosY < chamber.length;
  97.     }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment