Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Main {
- static int objectX;
- static int objectY;
- static int objectW;
- static int objectH;
- static int spellX;
- static int spellY;
- static final int[] FIRE = {20, 30, 50};
- static final int[] WATER = {10, 25, 40};
- static final int[] EARTH = {25, 55, 70};
- static final int[] AIR = {18, 38, 60};
- static int damage;
- static int radius;
- public static void main(String[] args) {
- int n = 0;
- Scanner scan = new Scanner(System.in);
- do {
- System.out.println("Quanti test vuoi fare? Inserisci un numero da 1 a 1000");
- n = scan.nextInt();
- } while (n<1 || n>1000);
- for (int i=0; i<n; i++) {
- setObjectCoordinates(scan);
- setSpell(scan);
- damageCheck();
- }
- }
- static void setObjectCoordinates(Scanner scan) {
- boolean flag;
- do {
- System.out.println("Inserisci larghezza, altezza, coordinata X e Y separate da spazi. Solo numeri compresi tra 1 e 1000");
- flag = false;
- objectW = scan.nextInt();
- if (objectW<1 || objectW>1000) {
- flag = true;
- continue;
- }
- objectH = scan.nextInt();
- if (objectH<1 || objectH>1000) {
- flag = true;
- continue;
- }
- objectX = scan.nextInt();
- if (objectX<0 || objectX>1000) {
- flag = true;
- continue;
- }
- objectY = scan.nextInt();
- if (objectY<0 || objectY>1000) {
- flag = true;
- }
- objectW += objectX;
- objectH += objectY;
- } while (flag);
- }
- static void setSpell(Scanner scan) {
- boolean flag;
- String element;
- int n;
- do {
- System.out.println("Inserisci elemento, livello, coordinata X e Y separati da spazi.");
- flag = false;
- element = scan.next().toLowerCase();
- n = scan.nextInt();
- if (n<1 || n>3) {
- flag = true;
- continue;
- }
- spellX = scan.nextInt();
- if (spellX<0 || spellX>1000) {
- flag = true;
- continue;
- }
- spellY = scan.nextInt();
- if (spellY<0 || spellY>1000) {
- flag = true;
- }
- } while (flag);
- if (element.equals("fire")) {
- radius = FIRE[n-1];
- damage = 200;
- }
- if (element.equals("water")) {
- radius = WATER[n-1];
- damage = 300;
- }
- if (element.equals("earth")) {
- radius = EARTH[n-1];
- damage = 400;
- }
- if (element.equals("air")) {
- radius = AIR[n-1];
- damage = 100;
- }
- }
- static void damageCheck() {
- if (objectX >= spellX && objectY >= spellY) {
- if (hitTopRight())
- System.out.println(damage);
- else
- System.out.println(0);
- } else if (objectX <= spellX && objectY >= spellY) {
- if (hitTopLeft())
- System.out.println(damage);
- else
- System.out.println(0);
- } else if (objectX >= spellX && objectY <= spellY) {
- if (hitBottomRight())
- System.out.println(damage);
- else
- System.out.println(0);
- } else if (objectX <= spellX && objectY <= spellY) {
- if (hitBottomLeft())
- System.out.println(damage);
- else
- System.out.println(0);
- }
- }
- static boolean hitTopRight() {
- return spellX+radius >= objectX && spellY+radius >= objectY;
- }
- static boolean hitTopLeft() {
- return spellX-radius <= objectW && spellY+radius >= objectY;
- }
- static boolean hitBottomRight() {
- return spellX+radius >= objectX && spellY-radius <= objectH;
- }
- static boolean hitBottomLeft() {
- return spellX-radius <= objectW && spellY-radius <= objectH;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement