comme déjà répondu, ça serait beaucoup trop compliqué de résoudre le déplacement des pendulaires de manière synchrone, c'est à dire en prenant compte de l'ensemble des déplacements désirés pour décider ce que doit faire chaque pendulaire.
Le travail demandé est une mise à jour asynchrone, certes pas du tout optimale mais faisable par vous.
une mise à jour asynchrone, c'est simplement une boucle qui traite les pendulaires, un après l'autre, de manière "aveugle". Quand on met à jour le pendulaire d'indice k on regarde s'il y a de l'espace disponible devant lui et c'est tout. On ne se préoccupe pas de ce que pourrait faire le pendulaire k' qui est devant et qui l'empêche d'avancer.
Ne prenez pas de votre temps précieux pour faire mieux que ce qui est demandé. ça ne rapportera rien en plus.