| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package boebot;
- public class Aansturing{
- private int rotation, x, y;
- private int maxx, maxy;
- private int ex, ey;
- public Aansturing(int maxx, int maxy){
- this.maxx = maxx;
- this.maxy = maxy;
- rotation = 0;
- x = 0;
- y = 0;
- ex = 0;
- ey = 0;
- }
- public void turnleft(){
- rotation = rotation - 90;
- if (rotation < 0){
- rotation = 270;
- }
- }
- public void turnright(){
- rotation = rotation + 90;
- if (rotation > 270){
- rotation = 0;
- }
- }
- public void vooruit(){
- if (rotation == 0 && y < maxy){
- y ++;
- }
-
- if (rotation == 90 && x < maxx){
- x ++;
- }
- if (rotation == 180 && y > 0){
- y --;
- }
-
- if (rotation == 270 && x > 0){
- x --;
- }
- }
- public char[] berekenRoute(int eindx, int eindy, int beginx, int beginy, int rotatie){
- char[] route = new char[40];
- int teller = 0;
- x = beginx;
- y = beginy;
- rotation = rotatie;
- if(eindx <= maxx && eindy <= maxy && eindx >= 0 && eindy >= 0){
- ex = eindx;
- ey = eindy;
- }else{
- return route;
- }
-
- if(beginx <= maxx && beginy <= maxy && beginx >= 0 && beginy >= 0){
- x = beginx;
- y = beginy;
- }else{
- return route;
- }
- while(ex != x){
- if(x < ex){
- if(rotation == 90){
- vooruit();
- route[teller] = 'v';
- System.out.println("vooruit");
- teller ++;
- }else{
- turnleft();
- route[teller] = 'l';
- System.out.println("turnleft");
- teller ++;
- }
- }else{
- if(x > ex){
- if(rotation == 270){
- vooruit();
- route[teller] = 'v';
- System.out.println("vooruit");
- teller ++;
- }else{
- turnleft();
- route[teller] ='l';
- System.out.println("turnleft");
- teller ++;
- }
- }
- }
- }
- while(ey != y){
- if(y < ey){
- if(rotation == 0){
- vooruit();
- route[teller] = 'v';
- System.out.println("vooruit");
- teller ++;
- }else{
- turnright();
- route[teller] = 'r';
- System.out.println("turnright");
- teller ++;
- }
- }else{
- if(y > ey){
- if(rotation == 180){
- vooruit();
- route[teller] = 'v';
- System.out.println("vooruit");
- teller ++;
- }else{
- turnright();
- route[teller] = 'r';
- System.out.println("turnright");
- teller ++;
- }
- }
- }
- }
- return route;
- }
- }
|