/
Robot.java
93 lines (76 loc) · 1.64 KB
/
Robot.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import java.util.*;
public class Robot {
private int[] hall;
private int pos;
private boolean facingRight;
public Robot() {
hall = new int[5];
pos = (int)(Math.random() * 100 % hall.length);
facingRight = true;
for (int i=0; i<hall.length; i++)
hall[i] = (int)(Math.random() * 100 % 10);
}
public String toString() {
String s = "";
String t = "";
for (int i=0; i<hall.length; i++) {
s = s + hall[i];
if (pos == i && facingRight)
t = t + ">";
else if (pos == i && !facingRight)
t = t + "<";
else
t = t + " ";
}
return s + "\n" + t;
}
private boolean hallIsClear() {
for (int i=0; i<hall.length; i++)
if ( hall[i] != 0 )
return false;
return true;
}
/**
* THESE ARE THE THREE METHODS YOU NEED TO WRITE FOR THE ASSIGNMENT!
*/
private boolean forwardMoveBlocked() {
if (facingRight && pos == hall.length-1)
return true;
else if (!facingRight && pos == 0)
return true;
else
return false;
}
public void move() {
if (hall[pos] > 0)
hall[pos]--;
if (hall[pos] == 0) {
if (forwardMoveBlocked())
facingRight = !facingRight;
else if (facingRight)
pos++;
else
pos--;
}
}
public int clearHall() {
int numMoves = 0;
boolean empty = false;
while (!empty) {
move();
numMoves++;
empty = true;
for (int i = 0; i < hall.length; i++)
if (hall[i] > 0)
empty = false;
}
return numMoves;
}
//END OF ASSIGNMENT
public static void main(String[] args) {
Robot r = new Robot();
System.out.println(r);
System.out.println( r.clearHall() );
System.out.println(r);
}
}