Advertisement
Guest User

AMPEL_10b

a guest
Feb 18th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.07 KB | None | 0 0
  1. class AMPEL
  2. {
  3.     int positionX = 0;
  4.     int positionY = 0;
  5.     String ampelphase;
  6.     char ausrichtung;
  7.     LAMPE lampeOben;
  8.     LAMPE lampeMitte;
  9.     LAMPE lampeUnten;
  10.  
  11.     AMPEL ()
  12.     {
  13.         positionX = 1;
  14.         positionY = 1;
  15.         ampelphase = "rot";
  16.         ausrichtung = 'S';
  17.        
  18.         lampeOben = new LAMPE();
  19.         lampeMitte = new LAMPE();
  20.         lampeUnten = new LAMPE();
  21.         RotSetzen();
  22.         AmpelAnordnen();
  23.     }
  24.    
  25.     AMPEL (int x, int y, char ausrichtung) {
  26.         lampeOben = new LAMPE();
  27.         lampeMitte = new LAMPE();
  28.         lampeUnten = new LAMPE();
  29.         RotSetzen();
  30.         AusrichtungSetzen(ausrichtung);
  31.         PositionSetzen(x, y);
  32.         AmpelAnordnen();
  33.     }
  34.  
  35.     void GruenSetzen ()
  36.     {
  37.         ampelphase = "gruen";
  38.         lampeOben.FarbeSetzen("schwarz");
  39.         lampeMitte.FarbeSetzen("schwarz");
  40.         lampeUnten.FarbeSetzen("gruen");
  41.     }
  42.  
  43.     void GelbSetzen ()
  44.     {
  45.         ampelphase = "gelb";
  46.         lampeOben.FarbeSetzen("schwarz");
  47.         lampeMitte.FarbeSetzen("gelb");
  48.         lampeUnten.FarbeSetzen("schwarz");
  49.     }
  50.  
  51.     void RotgelbSetzen ()
  52.     {
  53.         ampelphase = "rotgelb";
  54.         lampeOben.FarbeSetzen("rot");
  55.         lampeMitte.FarbeSetzen("gelb");
  56.         lampeUnten.FarbeSetzen("schwarz");
  57.     }
  58.  
  59.     void RotSetzen ()
  60.     {
  61.         ampelphase = "rot";
  62.         lampeOben.FarbeSetzen("rot");
  63.         lampeMitte.FarbeSetzen("schwarz");
  64.         lampeUnten.FarbeSetzen("schwarz");
  65.     }
  66.    
  67.     /**
  68.      * Setzt die Position der Ampel.
  69.      * Der Ursprung liegt in der Mitte des
  70.      * Fensters, die y-Achse zeigt nach unten. (x /y) bedeutet das
  71.      * Kästchen rechts unterhalb der Gitterlinien.
  72.      * @param x xNeu-Position
  73.      * @param y yNeu-Position
  74.      */
  75.     void PositionSetzen (int xNeu, int yNeu)
  76.     {
  77.         positionX = xNeu;
  78.         positionY = yNeu;
  79.         AmpelAnordnen();
  80.     }
  81.    
  82.     /**
  83.      * Setzt die Ausrichtung der Ampel auf die möglichen
  84.      * Werte S, W, N, O.
  85.      * @param ausrichtungNeu neue Ausrichtung der Ampel
  86.      */
  87.     void AusrichtungSetzen(char ausrichtungNeu)
  88.     {
  89.         ausrichtung = Character.toUpperCase(ausrichtungNeu);
  90.         AmpelAnordnen();
  91.     }
  92.    
  93.     /**
  94.      * Zeichnet die Ampel im Raster.
  95.      */
  96.     void AmpelAnordnen()
  97.     {
  98.          switch ( ausrichtung )
  99.          {
  100.              case 'S':
  101.                 lampeOben.PositionSetzen(positionX, positionY);
  102.                 lampeMitte.PositionSetzen(positionX, positionY + 1);
  103.                 lampeUnten.PositionSetzen(positionX, positionY + 2);
  104.                
  105.                 break;
  106.              case 'W':
  107.                 lampeOben.PositionSetzen(positionX, positionY);
  108.                 lampeMitte.PositionSetzen(positionX - 1, positionY);
  109.                 lampeUnten.PositionSetzen(positionX - 2, positionY);
  110.                 break;
  111.              case 'N':
  112.                 lampeOben.PositionSetzen(positionX, positionY);
  113.                 lampeMitte.PositionSetzen(positionX, positionY - 1);
  114.                 lampeUnten.PositionSetzen(positionX, positionY - 2);
  115.                 break;
  116.              case 'O':
  117.                 lampeOben.PositionSetzen(positionX, positionY);
  118.                 lampeMitte.PositionSetzen(positionX + 1, positionY);
  119.                 lampeUnten.PositionSetzen(positionX + 2, positionY);
  120.                 break;
  121.              default:
  122.                 System. out. println ("Unzulässige Ausrichtung: " +  ausrichtung);
  123.                 break;
  124.          }  
  125.     }
  126.  
  127.     void Weiterschalten()
  128.     {
  129.         if (ampelphase == "rot")
  130.         {
  131.             RotgelbSetzen();
  132.         }
  133.         else
  134.         {
  135.             if (ampelphase == "rotgelb")
  136.             {
  137.                 GruenSetzen();
  138.             }
  139.             else
  140.             {
  141.                 if (ampelphase == "gruen")
  142.                 {
  143.                     GelbSetzen();
  144.                 }
  145.                 else
  146.                 {
  147.                      RotSetzen();
  148.                 }
  149.             }
  150.         }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement