Witam!
W poprzednim semestrze jako projekt z programowania zrobiłem grę na wzór spadających kulek (poglądowy screen zasady gdy w załączniku - punkty zdobywa się za zbicie jak największych skupisk kulek tego samego koloru sąsiadujących w pionie lub poziomie - zbicie wszystkich kulek oznacza przyznanie sporej premii punktowej).
W tym semestrze zaproponowano mi stworzenie metod umożliwiających rozwiązanie tej gry.
I tutaj pojawia się problem. Myślałem nad stworzeniem drzewa gry oraz przeszukanie jego liści, odszukanie najlepszego wyniku oraz przejście od wyszukanego liścia do korzenia, jednak takie drzewo gry jest zbyt duże i czasochłonne do wygenerowania. Czy ktoś miałby pomysł na sposób wyszukania najlepszego rozwiązania, albo przynajmniej rozwiązania lepszego niż wyszukałby przeciętny gracz ;).
Nie wiem jak inni, ale ja nie rozumiem zasad tej gry. Co właściwie robi w niej uzytkownik? Jak "zbija" te kulki ze sobą? Skąd się te kulki biorą?
Użytkownik dostaje wygenerowaną losowo planszę np 20 kolumn na 15 wierszy. Wypełniona jest ona różnokolorowymi kulkami. Punkty zdobywa się zbijając kule (tzn klikając w skupisko kul (więcej niż jedna kula w skupisku), im więcej kul w skupisku tym więcej punktów zdobywa się jednym ruchem np. za 5 kul w skupisku otrzyma się 55 punktów, za 8kul w skupisku => 88punktów. Po zbiciu skupiska, kule powyżej opadają w dół jak z resztą pokazane jest w załączniku. Celem gry jest zdobycie jak największej ilości punktów.
Dodam, iż gra działa bez zarzutu. Strukturą przechowującą stan gry jest lista powiązana (zgodnie z życzeniem prowadzącego).