Czy mogę zastosować technikę projektowania gier, aby całkowicie usunąć sytuacje „Nie ma więcej ruchów w lewo”. to znaczy. gra nie powinna zawierać niemożliwych scenariuszy.
O ile sądzę, wszystko zależy od tego, jaki klejnot i gdzie dajesz użytkownikowi po rozpuszczeniu grupy klejnotów 3 lub 4.
Czy to możliwe ? An always infinitely solvable Bejewelled game?
game-design
level-design
Wisznu
źródło
źródło
Odpowiedzi:
Z pewnością można stworzyć niekończącą się grę Bejeweled. PopCap zrobiło to samo z najnowszym Bejeweled 3 (tryb nazywa się „trybem Zen”).
Przede wszystkim musisz upewnić się, że jest co najmniej jeden prawidłowy ruch podczas pierwszego generowania planszy.
Za każdym razem, gdy gracz wykonuje ruch, musisz obliczyć wynikową planszę i poszukać prawidłowych ruchów. Jeśli nie można ich znaleźć, musisz kontrolować klejnoty, które zostaną odrodzone w celu przywrócenia prawidłowej planszy. Ponieważ (co najmniej) 3 klejnoty zostaną usunięte jednym ruchem i będziesz musiał odrodzić 3 klejnoty zastępcze, możesz zapewnić, że te 3 klejnoty zapasowe utworzą kolejny ważny ruch z bieżącą planszą. Tryb nieskończony osiągnięty.
Oczywiście nie jest idealne, aby nowy ruch pojawiał się z nowymi klejnotami, ale jest to tani sposób na zapewnienie grywalnej planszy. A ponieważ tworzenie prawidłowych ruchów w rzeczywistości oznacza zamianę pozycji klejnotów, nie potrwa długo, zanim inne ruchy staną się możliwe.
Jak już wspomniano, bomby i inne sposoby usuwania dużych części planszy zwiększą różnorodność rozgrywki, ale nie są one potrzebne do zapewnienia nieskończonego trybu.
źródło
Tak. W rzeczywistości byłoby to możliwe. Nie jest to przypadek problemu zatrzymania, ponieważ przypadek jest zdefiniowany, a nie arbitralny. Aby odpowiedzieć na to pytanie, należy odpowiedzieć na dwie części; po pierwsze, jeśli istnieje rozwiązanie, można je znaleźć, a po drugie, zawsze będzie można znaleźć prawidłowe rozwiązanie.
Pierwsza część polega na tym, jak znaleźć zestaw płytek zastępczych (klejnotów), które stworzyłyby grywalną planszę. Można to osiągnąć za pomocą metod brutalnej siły, po prostu sprawdzaj każdy możliwy zestaw zastępczy, aż napotkasz grywalny (byłyby również bardziej optymalne metody nie brutalnej siły).
Drugą częścią jest ustalenie, czy zawsze będzie zestaw zastępczy, który da zestaw do gry. Każdy zestaw płytek usunięty jednym ruchem będzie nadzbiorem zestawów trzech płytek, więc jeśli w minimalnym przypadku zostaną usunięte tylko trzy, jeśli zawsze można znaleźć zestaw do gry, to dla wszystkich możliwych wzorów usuniętych płytek będzie dostępny zestaw do gry, ponieważ będzie zawierał wszystkie rozwiązania dla każdego zestawu trzech usuniętych płytek, który jest podzbiorem usuniętych płytek.
W minimalnym przypadku wyczyszczenia tylko trzech płytek w rzędzie / kolumnie, zestaw zastępczy zawierający dwie płytki typu A oddzielone płytką typu B (gdzie typ A to rodzaj płytki powyżej lub poniżej wyczyszczonego zestawu trzech w przypadek kolumny trzy, lub w lewo lub prawo w przypadku rzędu trzech). Spowoduje to ruch, w którym zamiana środka tych trzech płytek z odpowiednim kafelkiem A obok niego spowoduje utworzenie zestawu trzech. To pokazuje, że zawsze można znaleźć zestaw płytek, który spowoduje prawidłowy ruch wzdłuż kolumny / wiersza, w którym oryginalne płytki zostały usunięte. Ograniczanie przyszłych ruchów do tej kolumny lub wiersza, choć byłoby prawidłowym rozwiązaniem dla gry w nieskończoność, nie byłoby zbyt zabawne. Ale stosując wszystkie reguły dla popularnych gier w stylu bejeweled, łatwo jest pokazać, że zawsze będzie rozwiązanie, które pozwoli również na ruch poza tym rzędem / kolumną. Załóżmy, że upuszczamy trzy kafelki typu A, gdzie A jest jednym z kafelków powyżej lub poniżej / po lewej lub prawej stronie usuniętego zestawu trzech. W ten sposób powstanie kafelek w stylu „bomby”, który usunie obszar po usunięciu. Jeśli następnie wrzucimy inny zestaw płytek, co spowoduje dopasowanie z tą bombą, obszar płytek zostanie wyczyszczony. Obszar ten będzie zawierał 3 podzbiory kafelków w innych rzędach, co oznacza, że przyszłe ruchy niekoniecznie będą ograniczone do jednego wiersza / kolumny. W ten sposób powstanie kafelek w stylu „bomby”, który usunie obszar po usunięciu. Jeśli następnie wrzucimy inny zestaw płytek, co spowoduje dopasowanie z tą bombą, obszar płytek zostanie wyczyszczony. Obszar ten będzie zawierał 3 podzbiory kafelków w innych rzędach, co oznacza, że przyszłe ruchy niekoniecznie będą ograniczone do jednego wiersza / kolumny. W ten sposób powstanie kafelek w stylu „bomby”, który usunie obszar po usunięciu. Jeśli następnie wrzucimy inny zestaw płytek, co spowoduje dopasowanie z tą bombą, obszar płytek zostanie wyczyszczony. Obszar ten będzie zawierał 3 podzbiory kafelków w innych rzędach, co oznacza, że przyszłe ruchy niekoniecznie będą ograniczone do jednego wiersza / kolumny.
źródło
Dotknąłeś problemu zatrzymania w informatyce.
Czy na podstawie opisu dowolnego programu komputerowego możemy wywnioskować, czy w pewnym momencie przestanie działać, czy będzie działał wiecznie? Istnieje powód nazywany „problemem”.
Krótka odpowiedź brzmi: nie, nie możesz zagwarantować, że gra Bejeweled nigdy nie będzie miała nielegalnych ruchów. Ponieważ zagwarantowanie zajmie nieskończony czas obliczeniowy.
źródło