Prechádzať zdrojové kódy

Aansturing verwerkt in applicatie (gemaakt door remco)

Janco Kock 11 rokov pred
rodič
commit
e7749f3f1c
1 zmenil súbory, kde vykonal 134 pridanie a 0 odobranie
  1. 134 0
      Aansturing.java

+ 134 - 0
Aansturing.java

@@ -0,0 +1,134 @@
+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;
+   }
+}