-0-----
--0----
---0---
----0--
-----0-
------0
-----0-
----0--
---0---
--0----
-0-----
0------
-0-----
--0----
---0---
----0--
-----0-
------0
-----0-
----0--
---0---
--0----
-0-----
0------
-0-----
--0----
---0---
----0--
-----0-
------0
-----0-
----0--
---0---
--0----
-0-----
0------
package chobit;
public class NightRider {
private String display = "-------";
private int i = 0;
private byte dir = 1;
private Character char1 = '-';
private Character char2 = '0';
public String getDisplay() {
display = display.substring(0, i) + char1 + display.substring(i + 1);
i += dir;
display = display.substring(0, i) + char2 + display.substring(i + 1);
if (i == display.length() - 1 || i == 0) {
dir *= -1;
}
return display;
}
}
https://www.youtube.com/watch?v=N5_towRcN84
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
-0----0-
--0--0--
---00---
--0--0--
-0----0-
0------0
3 modes solved so far
package chobit;
public class NightRider {
private String display = "--------";
private int i = 0;
private byte dir = 1;
private Character char1 = '-';
private Character char2 = '0';
private int mode = 1;
public void setMode(int mode) {
this.mode = mode;
}
public String getDisplay() {
String result = "";
switch (mode) {
case 1:
result = mode1();
break;
case 2:
result = mode2();
break;
case 3:
result = mode3();
break;
default:
break;
}
return result;
}
private String mode1() {
display = display.substring(0, i) + char1 + display.substring(i + 1);
i += dir;
display = display.substring(0, i) + char2 + display.substring(i + 1);
if (i == display.length() - 1 || i == 0) {
dir *= -1;
}
return display;
}
private String mode2() {
int half = display.length() / 2;
display = display.substring(0, i) + char1 + display.substring(i + 1);
display = display.substring(0, i + half) + char1 + display.substring(i + 1 + half);
i += dir;
display = display.substring(0, i) + char2 + display.substring(i + 1);
display = display.substring(0, i + half) + char2 + display.substring(i + half + 1);
if (i == display.length() / 2 - 1 || i == 0) {
dir *= -1;
}
return display;
}
private String mode3() {
int max = display.length() - 1;
display = display.substring(0, i) + char1 + display.substring(i + 1);
display = display.substring(0, max - i) + char1 + display.substring(max - i + 1);
i += dir;
display = display.substring(0, i) + char2 + display.substring(i + 1);
display = display.substring(0, max - i) + char2 + display.substring(max - i + 1);
if (i == display.length() / 2 - 1 || i == 0) {
dir *= -1;
}
return display;
}
}