Koduję grę podobną do Boggle, w której gracz powinien znaleźć słowa wewnątrz dużego łańcucha z losowych liter.Który algorytm najlepiej pasuje do rozwiązania gry wyszukiwania słów, jak "Boggle" z Pythonem
Na przykład w tym przypadku istnieje pięć tablic z ciągami znaków. Pięć wierszy, wykonane z sześciu liter każdy:
AMSDNS
MASDOM
ASDAAS
DSMMMS
OAKSDO
Tak, użytkownicy gry powinny wyrabiać słowa pomocą liter dostępne z następującymi ograniczeniami i zasadami pamiętać:
- Nie jest możliwe powtórz tę samą literę, aby słowo. Mówię o "fizycznej" literze w grze, która jest kostką. Nie można użyć tej samej kostki dwa lub więcej razy, aby przekazać słowo.
- Nie można "przeskoczyć" żadnej litery, aby złożyć słowo. Litery tworzące słowo muszą być ciągłe.
- Użytkownik może poruszać się w dowolnym kierunku, który chce, bez żadnych ograniczeń poza dwa wyżej wymienione. Więc możliwe jest przejście na górę, potem na dół, potem na prawo, potem znowu na górę i tak dalej. Tak więc ruchy w poszukiwaniu słów mogą być w jakiś sposób niekonsekwentne.
Chcę wiedzieć, jak przejść przez wszystkie ciągi znaków, aby utworzyć słowa. Poznać słowa Im użyję pliku txt ze słowami.
Nie wiem, jak zaprojektować algorytm, który jest w stanie przeprowadzić wyszukiwanie, szczególnie myśląc o błędnych ruchach, które są potrzebne do znalezienia słów i przestrzegania ograniczeń.
Zaimplementowałam już UX, logikę do rzucania kostką i wypełnienia gry planszowej oraz całą logikę sześcioznakowych kości.
Ale ta część nie jest łatwa i chciałbym przeczytać Wasze sugestie dotyczące tego interesującego wyzwania.
Używam Pythona do tej gry, ponieważ jest to język, którego używam do kodowania i języka, który najbardziej lubię. Ale wyjaśnienie lub sugestia samego algorytmu również powinny być miłe, niezależnie od języka.
@WinnieTong (1) Nie ma nic wspólnego z cstheory. (2) Zupełnie dobrze jest zadawać pytania algorytmiczne w SO. Pytania nie muszą być "Jak podzielić ciąg", pytanie, które zajmuje się aspektami algorytmów (które można zaprogramować w dowolnym języku po zrozumieniu) jest idealnie w porządku. To powiedziawszy, uważam, że to dupek, myślę, że pamiętam podobne pytanie, szukając go. – amit
OK, to nie jest dupe, ale podobne pytanie (ograniczenia są nieco inne w pytaniach): [Drukowanie wszystkich możliwych słów z tablicy 2D znaków] (http://stackoverflow.com/q/13680440/572670) – amit
Jeszcze jedno: powinieneś wyjaśnić, w jaki sposób słownik słów jest ci dany i czy możesz go wstępnie przetworzyć. Co to jest oczekiwany rozmiar (i rozmiar puzzli)? – amit