فهرست منبع

Create BoebotSimulator.java

De code achter de rijdende boebot op de Simulator.
Remco 11 سال پیش
والد
کامیت
c69c46fed0
1فایلهای تغییر یافته به همراه173 افزوده شده و 0 حذف شده
  1. 173 0
      gui/BoebotSimulator.java

+ 173 - 0
gui/BoebotSimulator.java

@@ -0,0 +1,173 @@
+import java.util.*;
+/**
+ * Write a description of class BoebotSimulator here.
+ * 
+ * @author Remco Sannen
+ * @version (a version number or a date)
+ */
+public class BoebotSimulator
+{
+   private int rotation;
+   private int x;
+   private int y;
+   private int xx;
+   private int xy;
+   private int ex;
+   private int ey;
+   public String coordinaten;
+   public ArrayList<Integer> ax;
+   public ArrayList<Integer> ay;
+   public ArrayList<Integer> arotation;
+   public BoebotSimulator(int x, int y, int rotation)
+   {
+       this.x = x;
+       this.y = y;
+       xx = -1;
+       xy = -1;
+       rotation = 0;
+       ax = new ArrayList<Integer>();
+       ay = new ArrayList<Integer>();
+       arotation = new ArrayList<Integer>();
+   }
+   public void turnleft()
+   {
+       rotation = rotation - 90;
+       if (rotation < 0)
+       {
+           rotation = 270;
+       }
+   }
+   public void turnright()
+   {
+       rotation = rotation + 90;
+       if (rotation > 270)
+       {
+           rotation = 0;
+       }
+   }
+   public void keren()
+   {
+       rotation = rotation + 180;
+       if (rotation == 360)
+       {
+           rotation = 0;
+       }
+       if(rotation == 450)
+       {
+           rotation = 90;
+       }
+   }
+   public void vooruit()
+   {
+       if (rotation == 0)
+       {
+           y ++;
+       }
+       if (rotation == 90)
+       {
+           x ++;
+       }
+       if (rotation == 180)
+       {
+           y --;
+       }
+       if (rotation == 270)
+       {
+           x --;
+       }
+   }
+   public String geefCoordinaten()
+   {
+       coordinaten = "(" + x + "," + y + ")";
+       return coordinaten;
+   }
+   public boolean voerOpdrachtUit(String[] opdracht, int bx, int by, int lengte, int ex, int ey)
+   {
+       this.x = bx;
+       this.y = by;
+       this.ey = ey;
+       this.ex = ex;
+       int teller = 0;
+       boolean botsing = false;
+       ax.add(x);
+       ay.add(y);
+       arotation.add(rotation);
+       while(teller < lengte)
+       {
+           if(opdracht[teller].equals("vooruit") && !(x == xx && y == xy))
+           {
+               vooruit();
+           }
+           if(opdracht[teller].equals("linksaf")&& !(x == xx && y == xy))
+           {
+               turnleft();
+               vooruit();
+           }
+           if(opdracht[teller].equals("rechtsaf")&& !(x == xx && y == xy))
+           {
+               turnright();
+               vooruit();
+           }
+           if(opdracht[teller].equals("keren")&& !(x == xx && y == xy))
+           {
+               keren();
+               vooruit();
+           }
+           if(x == xx && y == xy)
+           {
+               teller = lengte - 1;
+               botsing = true;
+               keren();
+               vooruit();
+               keren();
+           }
+           ax.add(x);
+           ay.add(y);
+           arotation.add(rotation);
+           teller ++;
+       }
+       if(x == ex && y == ey)
+       {
+           System.out.println("Boebot is op juiste bestemming()");
+       }
+       else
+       {
+           System.out.println("Boebot is gecrasht");
+       }
+       return botsing;
+   }
+   public String plaatsObstakel(int xx, int xy)
+   {
+       this.xx = xx;
+       this.xy = xy;
+       return "Obstakel geplaatst op: " + "(" + xx + "," + xy + ")";
+   }
+   public int geefX()
+   {
+       return x;
+   }
+   public int geefY()
+   {
+       return y;
+   }
+   public int geefRotation()
+   {
+       return rotation;
+   }
+   public int geefXX()
+   {
+       return xx;
+   }
+   public int geefXY()
+   {
+       return xy;
+   }
+   public int geefEX()
+   {
+       return ex;
+   }
+   public int geefEY()
+   {
+       return ey;
+   }
+}