PROG0191 - Traffic light

no tags 

Traffic lights regulate driving into intersections, the access to bridges, tunnels and railway crossings, the access to car parks and buildings, as well as access control in factories, companies and other enclosed areas by means of light signals. Traffic lights can have one of three conditions at any given moment: green, orange or red.

verkeerlicht

Assignment

Define a class Trafficlight which can be used to make instances of traffic lights. Every instance has one of three conditions at a given moment: green, orange or red. The objects of the class Trafficlight must support the following methods:

  • the initializing method __init__ allows to set an initial condition of the traffic lights through an optional parameter with standard value red; the only valid initial conditions that may be given are green, orange and red (lowercase letters)
  • the method __str__ prints the condition of the traffic lights as a string; consequentially, traffic lights can be represented by strings
  • the method __repr__ prints the condition of the traffic lights as a string of the format Trafficlight('condition')
  • the method next makes the traffic lights change: after red comes green, after green comes orange, and after orange comes rood again

No arguments must be given to the methods __str__, __repr__ and next.

Example

>>> light1 = Trafficlight()
>>> light1
Trafficlight('red')
>>> licht2 = Trafficlight('green')
>>> print(light1, light2)
red green
>>> light1.next()
>>> print(light1, light2)
green green
>>> light1.next()
>>> light1.next()
>>> light2.next()
>>> print(light1, light2)
red orange

Verkeerslichten regelen met behulp van lichtsignalen het oprijden van kruispunten, de toegang tot bruggen, tunnels en spoorwegovergangen, de toegang tot parkeergarages en -terreinen, evenals de toegangsregulering bij fabrieken, bedrijven en andere afgesloten terreinen. Een verkeerslicht bevindt zich op elk ogenblik in één van drie mogelijke toestanden: groen, oranje of rood.

verkeerlicht

Opgave

Definieer een klasse Verkeerslicht waarmee instanties van verkeerslichten kunnen aangemaakt worden. Elke instantie van een verkeerslicht bevindt zich op elk ogenblik in één van drie mogelijke toestanden: groen, oranje of rood. De objecten van de klasse Verkeerslicht moeten ondersteuning bieden aan de volgende methoden:

  • de initialisatiemethode __init__ laat toe om de begintoestand van het verkeerslicht in te stellen via een optionele parameter met standaardwaarde rood; de enige geldige begintoestanden die mogen meegegeven worden zijn groen, oranje en rood (kleine letters)
  • de methode __str__ geeft de toestand van het verkeerslicht terug als een string; hiermee kan een verkeerslicht als een string voorgesteld worden
  • de methode __repr__ geeft de toestand van het verkeerslicht terug als een string met formaat Verkeerslicht('toestand')
  • de methode volgende laat het verkeerslicht naar zijn volgende toestand springen: na rood komt groen, na groen komt oranje, en na oranje komt terug rood

Aan de methoden __str__, __repr__ en volgende moeten geen argumenten doorgegeven worden.

Voorbeeld

>>> licht1 = Verkeerslicht()
>>> licht1
Verkeerslicht('rood')
>>> licht2 = Verkeerslicht('groen')
>>> print(licht1, licht2)
rood groen
>>> licht1.volgende()
>>> print(licht1, licht2)
groen groen
>>> licht1.volgende()
>>> licht1.volgende()
>>> licht2.volgende()
>>> print(licht1, licht2)
rood oranje


Added by:Peter Dawyndt
Date:2011-11-27
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None