-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayer.java
47 lines (39 loc) · 1.45 KB
/
Player.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
package bgs.brains.players;
import bgs.area.IArea;
import bgs.brains.scanners.ChessKingScanner;
import bgs.brains.src.AbstractPlayer;
import bgs.brains.vars.StepLog;
import bgs.brains.vars.TimeSpan;
import bgs.visual.src.IVisual;
import java.awt.*;
/**
* @author Roman
*/
public class Player extends AbstractPlayer {
public Player(IArea area, Color color, IVisual visual, String name) {
super(area, color, visual, name);
}
@Override
public StepLog step() {
if (new ChessKingScanner(this.Area).isKingDead(this.Color)) {
this.Visual.showMessage(this.Name + " defeat on " + this.stepNumber + " step.", false);
return StepLog.DEFEAT;
}
int squareNumber;
int figureSquareNumber;
try {
this.Visual.showMessage(this.Name + " turn.", false);
String input = this.Visual.showMessage(
"Please, write object square number.", true);
squareNumber = Integer.parseInt(input);
input = this.Visual.showMessage(
"Please, write target square number.", true);
figureSquareNumber = Integer.parseInt(input);
} catch (NumberFormatException e) {
return StepLog.STEP_IS_IMPOSSIBLE;
}
return this.Area.moveObjectSafe(squareNumber, figureSquareNumber, this.Color)
? this.sendNormalLog(TimeSpan.NO_TIME_SPAN)
: StepLog.STEP_IS_IMPOSSIBLE;
}
}