Étape 3: Deux Actions aléatoires
Que se passe-t-il si nous voulons ajouter encore plus de complexité au comportement apparemment aléatoire de robots ? Vous pouvez faire trois choses fondamentales. On ajoute une action du robot qui n’a rien à voir avec les mouvements de base énoncées dans le code d’origine. Par exemple, le robot pourrait juste juste tourner dans un cercle à intervalles déterminés strictement par le générateur de nombres aléatoires à venir avec un numéro en particulier. Ou vous pouvez ajouter une autre action aléatoire indépendante de celui que nous avons ajoutés plus tôt. Par exemple, si le robot rencontre un obstacle vers la gauche, peut-être parfois elle agit comme elle le fait dans le code d’origine et déplacement vers la droite, et peut-être d’autres fois il pourrait demi-tour complètement et se déplacent dans la direction opposée. Ou, enfin, vous pouvez ajouter une action aléatoire qui est entrelacée avec la première action aléatoire, tels que décrits dans la dernière étape, qui pourrait être indépendante de la mesure ou toujours prévisible lié à cette action. Cette dernière possibilité, c’est ce que j’ai fait ici.
Maintenant, lorsque le robot rencontre un obstacle droit devant, il déterminera tout d’abord quel sens pour faire tourner sa roue basée sur le nombre aléatoire généré soit impair ou même comme il est expliqué dans la dernière étape. Pour ajouter à la complexité, vous pouviez programmer le robot à laisser tourner le moteur vers l’arrière pour une durée donnée, si il a été tourné à gauche, et une autre durée donnée si elle était a viré à droite, faisant ainsi le robot à des degrés divers basée sur le sens du virage. Ou, vous pourriez faire ce que j’ai fait ici et rendre ces deux variables indépendantes de l’autre. En d’autres termes, un nombre aléatoire est généré qui déterminera si on tourne la roue gauche ou la droite et un autre nombre aléatoire est généré afin de déterminer si le robot sera de retour dans ce virage pendant 2,5 secondes ou 5 secondes. Cela nous donne 4 variantes de comment le robot se comporte lorsqu’il sauvegarde après avoir rencontré un obstacle droit devant.