Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AMPEL
- {
- int positionX = 0;
- int positionY = 0;
- String ampelphase;
- char ausrichtung;
- LAMPE lampeOben;
- LAMPE lampeMitte;
- LAMPE lampeUnten;
- AMPEL ()
- {
- positionX = 1;
- positionY = 1;
- ampelphase = "rot";
- ausrichtung = 'S';
- lampeOben = new LAMPE();
- lampeMitte = new LAMPE();
- lampeUnten = new LAMPE();
- RotSetzen();
- AmpelAnordnen();
- }
- AMPEL (int x, int y, char ausrichtung) {
- lampeOben = new LAMPE();
- lampeMitte = new LAMPE();
- lampeUnten = new LAMPE();
- RotSetzen();
- AusrichtungSetzen(ausrichtung);
- PositionSetzen(x, y);
- AmpelAnordnen();
- }
- void GruenSetzen ()
- {
- ampelphase = "gruen";
- lampeOben.FarbeSetzen("schwarz");
- lampeMitte.FarbeSetzen("schwarz");
- lampeUnten.FarbeSetzen("gruen");
- }
- void GelbSetzen ()
- {
- ampelphase = "gelb";
- lampeOben.FarbeSetzen("schwarz");
- lampeMitte.FarbeSetzen("gelb");
- lampeUnten.FarbeSetzen("schwarz");
- }
- void RotgelbSetzen ()
- {
- ampelphase = "rotgelb";
- lampeOben.FarbeSetzen("rot");
- lampeMitte.FarbeSetzen("gelb");
- lampeUnten.FarbeSetzen("schwarz");
- }
- void RotSetzen ()
- {
- ampelphase = "rot";
- lampeOben.FarbeSetzen("rot");
- lampeMitte.FarbeSetzen("schwarz");
- lampeUnten.FarbeSetzen("schwarz");
- }
- /**
- * Setzt die Position der Ampel.
- * Der Ursprung liegt in der Mitte des
- * Fensters, die y-Achse zeigt nach unten. (x /y) bedeutet das
- * Kästchen rechts unterhalb der Gitterlinien.
- * @param x xNeu-Position
- * @param y yNeu-Position
- */
- void PositionSetzen (int xNeu, int yNeu)
- {
- positionX = xNeu;
- positionY = yNeu;
- AmpelAnordnen();
- }
- /**
- * Setzt die Ausrichtung der Ampel auf die möglichen
- * Werte S, W, N, O.
- * @param ausrichtungNeu neue Ausrichtung der Ampel
- */
- void AusrichtungSetzen(char ausrichtungNeu)
- {
- ausrichtung = Character.toUpperCase(ausrichtungNeu);
- AmpelAnordnen();
- }
- /**
- * Zeichnet die Ampel im Raster.
- */
- void AmpelAnordnen()
- {
- switch ( ausrichtung )
- {
- case 'S':
- lampeOben.PositionSetzen(positionX, positionY);
- lampeMitte.PositionSetzen(positionX, positionY + 1);
- lampeUnten.PositionSetzen(positionX, positionY + 2);
- break;
- case 'W':
- lampeOben.PositionSetzen(positionX, positionY);
- lampeMitte.PositionSetzen(positionX - 1, positionY);
- lampeUnten.PositionSetzen(positionX - 2, positionY);
- break;
- case 'N':
- lampeOben.PositionSetzen(positionX, positionY);
- lampeMitte.PositionSetzen(positionX, positionY - 1);
- lampeUnten.PositionSetzen(positionX, positionY - 2);
- break;
- case 'O':
- lampeOben.PositionSetzen(positionX, positionY);
- lampeMitte.PositionSetzen(positionX + 1, positionY);
- lampeUnten.PositionSetzen(positionX + 2, positionY);
- break;
- default:
- System. out. println ("Unzulässige Ausrichtung: " + ausrichtung);
- break;
- }
- }
- void Weiterschalten()
- {
- if (ampelphase == "rot")
- {
- RotgelbSetzen();
- }
- else
- {
- if (ampelphase == "rotgelb")
- {
- GruenSetzen();
- }
- else
- {
- if (ampelphase == "gruen")
- {
- GelbSetzen();
- }
- else
- {
- RotSetzen();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement