Par exemple :
Tu dois traverser la rue. Scène simple, contexte simple.
Pour cela tu :
- dois trouver un passage piéton
- regarder à gauche
- regarder à droite
- regarder à gauche
- traverser
Donc, pour créer la méthode "crossStreet", celle-ci sera composée de ces méthodes-là.
Ok. Les contrôles latéraux sont en fait une vérification de la présence de véhicule. On pourrait donc remplacer les trois étapes "regarder à gauche/droite/gauche" par une seule : vérifier qu'il n'y a pas de véhicules.
Bon, on a à présent le cas nominal (scénario idéal).
Que se passe-t-il s'il y a une voiture ?
Il faut attendre qu'elle passe, puis contrôler de nouveau.
Que se passe-t-il si le feu piéton est au rouge alors qu'il n'y a aucun véhicule ?
En bref : ne te pose pas la question en terme de mécanique de langage, mais en terme d'étape de résolution de problème. Une fois que tu auras les étapes, tu pourras envisager de transposer ça en code.