My problem is that program is not reading codes as i intended \"he\" would.
I have
if (hero.getPos() == (6 | 11 | 16)) {
move = new Object[] {\"Up\",
(6 | 11 | 16)
would be evaluated first to 31 (binary operation), which is 6 != 31
. Not what you want.
Better is to check every single position (you have only 3, so inline is good, for more consider using a loop):
if (hero.getPos() == 6 || hero.getPos() == 11 | hero.getPos() == 16)) {
move = new Object[] {"Up", "Right", "Left"};
} else {
move = new Object[] {"Up", "Down", "Right", "Left"};
}