Le monde des Buggles

Ce monde a été inventé par Lyn Turbak, du Wellesley College. Il est peuplé de Buggles, petites bêtes qui comprennent des ordres simples, et offre de nombreuses possibilités d'interaction avec le monde : prendre ou poser des objets, colorier le sol, se cogner à des murs, etc.

Méthodes comprises par les buggles

Bouger
(voir aussi la note sur les exceptions, plus bas)
Tourner à gauche
Tourner à droite
Se retourner
Avancer
Reculer
[!java|c]void [/!]gauche()
[!java|c]void [/!]droite()
[!java|c]void [/!]retourne()
[!java|c]void [/!][!python|java|scala]avance()[/!][!c]avancePas()[/!] or [!java|c]void [/!]avance([!java|c]int [/!]nbPas[!scala]:Int[/!])
[!java|c]void [/!][!python|java|scala]recule()[/!][!c]reculePas()[/!] or [!java]void [/!]recule([!java|c]int [/!]nbPas[!scala]:Int[/!])
Obtenir l'abscisse
Obtenir l'ordonnée
Changer l'abscisse
Changer l'ordonnée
Changer la position
[!java|c]int [/!]getX()[!scala]:Int[/!]
[!java|c]int [/!]getY()[!scala]:Int[/!]
[!java|c]void [/!]setX([!java|c]int [/!]x[!scala]:Int[/!])
[!java|c]void [/!]setY([!java|c]int [/!]y[!scala]:Int[/!])
[!java|c]void [/!]setPos([!java|c]int [/!]x[!scala]:Int[/!], [!java|c]int [/!]y[!scala]:Int[/!])
Informations sur la buggle
Obtenir la couleur de la buggle
Changer la couleur de la buggle
[!java|c]Color [/!]getCouleurCorps()[!scala]:Color[/!]
[!java|c]void [/!]setCouleurCorps([!java|c]Color [/!]c[!scala]:Color[/!])
Chercher un mur devant
Chercher un mur derrière
[!java]boolean [/!][!c]int [/!]estFaceMur()[!scala]:Boolean[/!]
[!java]boolean [/!][!c]int [/!]estDosMur()[!scala]:Boolean[/!]
Obtenir la direction
Changer la direction

Les directions valides sont :
[!java|c]Direction [/!]getDirection()[!scala]:Direction[/!]
[!java|c]void [/!]setDirection([!java|c]Direction [/!]dir[!scala]:Direction[/!])
[!scala|java|python]Direction.[/!]NORTH (nord), [!scala|java|python]Direction.[/!]EAST (est), [!scala|java|python]Direction.[/!]SOUTH (sud) et [!scala|java|python]Direction.[/!]WEST (ouest)
Renvoi si la buggle est actuellement sélectionnée dans l'interface [!java]boolean [/!][!c]int [/!]estChoisie()[!scala]:Boolean[/!]
À propos de la brosse
Baisser la brosse
Lever la brosse
Obtenir la position de la brosse
[!java|c]void [/!]leveBrosse()
[!java|c]void [/!]baisseBrosse()
[!java]boolean [/!][!c]int [/!]estBrosseBaissee()[!scala]:Boolean[/!]
Modifier la couleur de la brosse
Obtenir la couleur de la brosse
[!java|c]void [/!]setCouleurBrosse([!java|c]Color [/!]c[!scala]:Color[/!])
[!java|c]Color [/!]getCouleurBrosse()[!scala]:Color[/!]
Interagir avec le monde
Obtenir la couleur du sol [!java|c]Color [/!]getCouleurSol()[!scala]:Color[/!]
Chercher un biscuit par terre
Chercher un biscuit dans ses poches
Prendre un biscuit
Poser un biscuit

(voir la note sur les exceptions)
[!java]boolean [/!][!c]int [/!]estSurBiscuit()[!scala]:Boolean[/!]
[!java]boolean [/!][!c]int [/!]porteBiscuit()[!scala]:Boolean[/!]
[!java]void [/!]prendBiscuit()
[!java]void [/!]poseBiscuit()
 
Chercher un message
Ajouter un message
Lire le message
Effacer le message
[!java]boolean [/!][!c]int [/!]estSurMessage()[!scala]:Boolean[/!]
[!java]void [/!]ecritMessage([!java]String [/!][!c]char* [/!]msg[!scala]:String[/!])
[!java]String [/!][!c]char* [/!]litMessage()[!scala]:String[/!]
[!java]void [/!]effaceMessage()

Couleurs valides

NomCouleur
[!scala|java|python]Color.[/!]black  
[!scala|java|python]Color.[/!]blue  
[!scala|java|python]Color.[/!]cyan  
[!scala|java|python]Color.[/!]darkGray  
[!scala|java|python]Color.[/!]gray  
[!scala|java|python]Color.[/!]green  
[!scala|java|python]Color.[/!]lightGray 
[!scala|java|python]Color.[/!]magenta  
[!scala|java|python]Color.[/!]orange  
[!scala|java|python]Color.[/!]pink  
[!scala|java|python]Color.[/!]red  
[!scala|java|python]Color.[/!]white  
[!scala|java|python]Color.[/!]yellow  

Note sur les exceptions

Les buggles normales lèvent une exception BuggleWallException si on cherche à leur faire traverser un mur. Elles lèvent une exception NoBaggleUnderBuggleException si vous cherchez à prendre un biscuit dans une case qui n'en contient pas, ou une exception AlreadyHaveBaggleException si vous portez déjà un biscuit. Tenter de déposer un biscuit sur une case qui en contient déjà lève une exception AlreadyHaveBaggleException. Tenter de poser un biscuit alors qu'on n'en a pas lève une exception DontHaveBaggleException.

Les "SimpleBuggles" (c.-à-d., celles utilisées dans les premiers exercices) affichent un message d'erreur sans que vous ayez à vous soucier de ce qu'est une exception.