Hallo tgx,
ich habe aus purer Langeweile mal in wenigen Minuten eine Füllroutine gebastelt, die deinen Anforderungen entspricht:
Ich habe es nur auf ein 6*6-Array beschränkt mit je 9 grünen, orangen und roten Einträgen (durchnummeriert von 1 bis 27). Du darfst das jetzt für dein größeres Array anpassen und dir dabei überlegen, warum der Algorithmus so funktioniert. Wie ich sagte: du brauchst nur etwas Modulo-Arithmetik!
(Ich musste mal eine Scanner-Matrix abbilden: 400 Schalter in einer 20×20-Matrix, denen 200 Kanäle zugeordnet waren - glücklicherweise nach einer sinnvollen [d.h. mathematisch abbildbaren] Anordnung!)