Stworzyłem data class jak poniżej:
data class WynikiWszystkichSedziow(
val nazwa_sedziego: String ="",
val nazwa_zawodnika: String = "",
val wynik_zawodnika: Int = 0,
)
Jest 3 sędziów i 12 zawodników ( w tym przykładzie )
Zapakowałem ( odczyt z plików) do data class dane w sposób jak poniżej:
ByteArrayOutputStream().use {
client.retrieveFile(plik, it)
val dataSedziowie = String(it.toByteArray())
val tablicaSedziowie = dataSedziowie.lines() //pobrana tablica z pliku
println("tablicaSedziowie= " + tablicaSedziowie)
val rozmiarTablicaSedziowie = (tablicaSedziowie.size - 1)
println("rozmiarTablicaSedziowie= " + rozmiarTablicaSedziowie)
/// koniec czytania nazw sedziow
val tablicaSedziaLine: MutableList<WynikiWszystkichSedziow> = mutableListOf() //tablica z wszystkimi wynikami
var nazwaSedzia: String =""
var plikSedzia = ""
var wynik_tablicaSedzia = 0
var rozmiar_tablicy = 0
for (i in 0..rozmiarTablicaSedziowie - 1) { //petla, w zaleznosci od ilosci sedziow
nazwaSedzia = tablicaSedziowie[i] // pobranie kolejnej nazwy sedziego
plikSedzia = "kotlin/" + nazwaSedzia + "_calosc.txt" //link do pliku z wynikami konkretnego sedziego
//odczyt wynikow dla kolejnego sedziego
ByteArrayOutputStream().use {
client.retrieveFile(plikSedzia, it)
val dataSedzia = String(it.toByteArray())
val tablicaSedzia = dataSedzia.lines() //pobrana tablica z pliku
// przypisywanie wartosci do rekordu: WynikiWszystkichSedziow
rozmiar_tablicy = (tablicaSedzia.size - 1)
for (numer in 1..rozmiar_tablicy){
wynik_tablicaSedzia = tablicaSedzia[numer -1].toInt()//pobranie kolejnego wyniku zawodnika
tablicaSedziaLine.add(WynikiWszystkichSedziow(nazwaSedzia,"Z"+numer,wynik_tablicaSedzia))
}
// KONIEC - przypisywanie wartosci do rekordu: WynikiWszystkichSedziow
Po println. wygląda to z grubsza tak: ;-)
[WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z1, wynik_zawodnika=36), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z2, wynik_zawodnika=43), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z3, wynik_zawodnika=48), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z4, wynik_zawodnika=40), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z5, wynik_zawodnika=63), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z6, wynik_zawodnika=58), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z7, wynik_zawodnika=32), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z8, wynik_zawodnika=57), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z9, wynik_zawodnika=81), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z10, wynik_zawodnika=12), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z11, wynik_zawodnika=61), WynikiWszystkichSedziow(nazwa_sedziego=Maciek, nazwa_zawodnika=Z12, wynik_zawodnika=44), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z1, wynik_zawodnika=6), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z2, wynik_zawodnika=35), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z3, wynik_zawodnika=21), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z4, wynik_zawodnika=40), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z5, wynik_zawodnika=63), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z6, wynik_zawodnika=58), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z7, wynik_zawodnika=32), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z8, wynik_zawodnika=57), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z9, wynik_zawodnika=81), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z10, wynik_zawodnika=12), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z11, wynik_zawodnika=61), WynikiWszystkichSedziow(nazwa_sedziego=Andrzej, nazwa_zawodnika=Z12, wynik_zawodnika=44), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z1, wynik_zawodnika=1), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z2, wynik_zawodnika=89), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z3, wynik_zawodnika=11), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z4, wynik_zawodnika=40), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z5, wynik_zawodnika=63), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z6, wynik_zawodnika=58), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z7, wynik_zawodnika=32), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z8, wynik_zawodnika=57), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z9, wynik_zawodnika=81), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z10, wynik_zawodnika=12), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z11, wynik_zawodnika=61), WynikiWszystkichSedziow(nazwa_sedziego=Leszek, nazwa_zawodnika=Z12, wynik_zawodnika=44)]
No i w tym miejscu utknąłem. :-)
Potrzebuję wykonać dodawanie w układzie:
Wynik zawodnika 1 = wynik sedziego 1 + wynik sedziego 2 + wynik sedziego 3
Wynik zawodnika 2 = wynik sedziego 1 + wynik sedziego 2 + wynik sedziego 3
itd..
Wyniki lecą po kolei dla każdego zawodnika.
Czyli:
Sedzia 1 = 10, 15, 16 ...
Sedzia 2 = 11, 5, 21...
Sedzia 3 = 13, 95, 88...
Pierwsza wartość odpowiada Zawodnikowi 1, następna drugiemu itd.
Wynik dla Z1 = 10 + 11 + 13
Wynik dla Z2 = 15 + 5 +95
Wynik dla Z3 = 16 + 21 +88
Nie chodzi mi o logikę tylko jak to fizycznie zapisać :-)...chyba już wiem :-)