class Lamagraph(){ val spuckmatrix = arrayListOf( arrayListOf(0, 2, 0, 0, 0), arrayListOf(4, 0 ,8, 5, 7), arrayListOf(0, 0, 0, 0, 0), arrayListOf(1, 0, 0, 0, 2), arrayListOf(0, 0, 3, 0, 0) ) val namensliste = arrayListOf("Gerti", "Susi", "Baldi", "Henni", "Rawi") fun wieOftHatAngespuckt(spuckend: String, angespuckt: String): Int { val spuckendIndex = namensliste.indexOf(spuckend) val angespucktIndex = namensliste.indexOf(angespuckt) if (spuckendIndex != -1 && angespucktIndex != -1) { return spuckmatrix[spuckendIndex][angespucktIndex] } else { return -1 } } fun wenHatAngespuckt(name: String): ArrayList { val angespuckte = ArrayList(0) var spuckend = namensliste.indexOf(name) for ((index, anspuckzahl) in spuckmatrix[spuckend].withIndex()) { if (anspuckzahl > 0) { angespuckte.add(namensliste[index]) } } return angespuckte } // Alle moeglicherweise infizierten Lamas finden fun traversierenVonStartknoten(name: String): ArrayList { val evtlInfizierte = arrayListOf(name) var spuckendIndex = 0 while (spuckendIndex < evtlInfizierte.count()) { val spuckname = evtlInfizierte[spuckendIndex] val angespListe = wenHatAngespuckt(spuckname) for (angespName in angespListe) { if (evtlInfizierte.contains(angespName) == false) { evtlInfizierte.add(angespName) } } spuckendIndex += 1 } return evtlInfizierte } }