Wpis z mikrobloga

#java #programowanie

powiedzmy ze mam tablice 2 wymiarowa, taka np 10x10. W kazdym polu jest jedna literka(char od A do Z). No i wpisujemy slowa, potem sprawdzam w slowniku czy jest, jak jest to sprawdzam czy z literek porozrzucanych w tej tablicy mozna sklecic dane slowo, nie musza byc kolo siebie literki. Ok jak mozna to usuwam te literki z tej tablicy i daje za to slowo punkty graczowi. No i do tego miejsca zajebiscie. Ale chcialbym zeby gra sprawdzala, czy z danych literek ktore pozostaly w tablicy, da sie ulozyc jakies slowko, czy juz nie, bo np zostana "a", "a" "i" i nie da sie ulozyc zadnego slowa, aby po prostu gra sie konczyla. Game over i rezultacik, etc? Jak to zrobic z tym sprawdzaniem, czy jeszcze jest jakas mozliwa kombinacja slowek, do ulozenia z tych literek co nam pozostaly, czy moze lepiej sie nie #!$%@? i dac 3 szanse, jezeli pod rzad #!$%@? to konczyc gre?. Jednak chcialbym jakos ten problem rozwiac ze gra bedzie jakos wiedziec czy jest mozliwe ulozenie jakiegos slowa, na podstawie slownika jaki posiadam :)
  • 5
  • Odpowiedz
@porque: Moja propozycja - talibcę 10x10 zapisz jako tablicę haszową literka->liczba wystąpień. Następnie iterujesz po każdym słowie w słowniku i sprawdzasz, czy dane słowo da się utworzyć z literek w hashTable (możesz wpierw litery w danym słowie posortować, wtedy sprawdzanie będzie łatwiejsze).
  • Odpowiedz
@imlach: dobre, moge stworzyc druga baze danych z posortowanymi literkami, genialne i przeleciec binarySearch czy istneieje w bazie danych takie slowo, jak nie, to koniec gry, tylko jest pewien problem chyba :D mam np 5 literek, c a s a a i wiadomo takiego slowa nie ma ale slowo np casa wystepuje, musze jakos to przemyslec, i przejrzec o co chodzi z tym haszowaniem :D

ale baze danych z posegregowanymi
  • Odpowiedz
Może źle napisałem, sama tablica haszująca niczego nie zmienia, chodzi po prostu o mapę literka -> liczba wystąpień. Czyli po prostu jak chcesz sprawdzić, czy można jakieś słowo złożyć z literek (np. zostały Tobia c a s a a), to w tej mapie masz [a] -> 3, [c] -> 1, [s] -> 1. Następnie podczas przeglądania słownika trafiasz na słowo 'casa', w posortowanej formie zostaje Tobie 'aacs' i po kolei sprawdzasz, czy
  • Odpowiedz