-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmagicalArena.java
72 lines (60 loc) · 2.2 KB
/
magicalArena.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.util.Scanner;
public class MagicalArena {
private Player playerA;
private Player playerB;
private Scanner sc;
private Dice dice;
//constructor
public MagicalArena(Player playerA, Player playerB) {
this.playerA = playerA;
this.playerB = playerB;
this.sc = new Scanner(System.in);
this.dice = new Dice();
}
//player turn to fight
public void play() {
Player attacker;
Player defender;
//first rounds attacker and defender
if (playerA.getHealth() <= playerB.getHealth()) {
attacker = playerA;
defender = playerB;
}
else {
attacker = playerB;
defender = playerA;
}
while (playerA.isAlive() && playerB.isAlive()) {
fight(attacker, defender);
Player temp = attacker;
attacker = defender;
defender = temp;
}
String winner = (playerA.isAlive()) ? "Player A" : "Player B";
System.out.printf("%s wins.\n", winner);
System.out.print("----------GAME OVER----------");
}
//fight result
public void fight(Player attacker, Player defender) {
System.out.printf("%s's turn to attack. Roll Dice(Press Enter)", attacker);
sc.nextLine();
int attackval = dice.rollDice();
int attackedval = attacker.attackplayer(attackval);
System.out.printf("%s's turn to defend. Roll Dice(Press Enter)", defender);
sc.nextLine();
int defendval = dice.rollDice();
int defendedval = defender.defendplayer(defendval);
int damageCaused = attackedval - defendedval;
if (damageCaused > 0) {
defender.damageRecieve(damageCaused);
}
System.out.printf("%s attacks with %d damage. \n%s defends with %d defense. \n",attacker, attackedval, defender, defendedval);
System.out.printf("%s receives %d damage.", defender, (damageCaused > 0) ? damageCaused : 0);
if (defender.getHealth()>0){
System.out.printf("Remaining health: %d\n\n", defender.getHealth());
}
else {
System.out.printf("%s dies\n\n",defender);
}
}
}