Étape 5: Les mouvements aléatoires (et pas tellement aléatoires)
RandomMove prend un paramètre qui représente un nombre de coups pour choisir de. Ensuite, l’interprète à l’aide d’un générateur de nombres aléatoires pour sélectionner un du prochain nombre de commandes. Ici encore, la valeur de ScriptStack() est utilisée, comme chacune des commandes suivantes ont la valeur de la commande suivante après le bloc de commandes choisies au hasard.
RandomPause utilise un générateur de nombres aléatoires pour suspendre quelque part entre le temps de pause minimum et maximum. Il s’agit d’un cas particulier où le ScriptDescription() contient autre chose que l’index d’un autre élément de données, mais une heure spécifiée en millisecondes.
ActionSeq n’est pas tellement une commande au hasard, mais en réalité tout le contraire. Il est utilisé pour exécuter un bloc de commandes dans l’ordre chaque fois que le script est appelé. Par conséquent, s’il y a quatre commandes spécifiées, la première fois que le script est appelé, la première commande du bloc est exécuté ; la quatrième fois que le script est appelé, le quatrième commandement est exécuté ; la cinquième fois que le script est appelé, la première commande est exécutée. J’utilise ceci pour avoir l’animatronique à avoir une conversation, sur une période aléatoire. Ici encore une fois, la valeur de ScriptStack() de la commande ActionSeq est utilisée pour garder une trace de qui commande à exécuter ensuite.