5. viikon palautus

Oma tekemä HashSet on nyt täysin implementoitu ja testejäkin pitäisi olla riittävästi. Koodia tuli myös siistittyä aika paljon ainakin kontrollien ja näkymien suhteen. Tekoäly on osoittautunut haastavaksi, mitä tulee laudalla jo olevien kirjaimien huomioimiseen. Teoriassa sain sen huomioimaan kirjaimet laudalla, mutta käsittely vie aivan liian kauan aikaa. Sadan LetterPool-kirjaimista muodostetun permutaation käsitteleminen 8x8 laudalla jokaisessa solussa vie n. puolisekuntia aikaa nykyisellä koodilla ja käsiteltäviä permutaatioita on 40 000. Yritin vähentää uusien olioiden luomista, mutta ongelmana on, että String-olioita on pakko luoda, jotta sana voidaan tarkistaa MyHashSet:stä. Saattaisi jopa auttaa, jos HashSetissä käyttäisi Stringien sijaan LetterContainer[] olioita? Sopivalla HashFunctionilla ei haittaisi vaikka itse Array-oliot eivät olisikaan samoja. Noin ei ainakaan tarvitsisi luoda uusia String-olioita.

Loput kurssista mennee jonkinlaisen ratkaisun löytämiseen tuohon, JavaDocin ja testien täydentämiseen ja UI:n tekemiseen.

Update: Huomasin juuri palautuksen jälkeen, että tryPermutations metodissa on täysin turha for-loop, jonka ei kuuluisi enää olla siinä. Käsittely nopeutui jonkin verran mutta ei tarpeeksi.