Existe-t-il une technique de conception de jeu que je peux utiliser pour supprimer complètement les situations «Plus de mouvements à gauche». c'est à dire. le jeu ne doit contenir aucun scénario impossible.
Pour autant que je suppose, tout dépend de quel bijou et de l'endroit où vous donnez à l'utilisateur après la dissolution d'un groupe de 3 ou 4 joyaux.
C'est possible ? An always infinitely solvable Bejewelled game?
game-design
level-design
Vishnu
la source
la source
Réponses:
Il est certainement possible de créer un jeu Bejeweled sans fin. PopCap l'a fait lui-même avec le dernier Bejeweled 3 (le mode est appelé "Zen Mode").
Tout d'abord, vous devez vous assurer qu'il y a au moins un mouvement valide lorsque vous générez le plateau pour la première fois.
Chaque fois qu'un joueur fait un coup, vous devez calculer le plateau résultant et rechercher des coups valides. S'il n'y en a pas, vous devez contrôler les gemmes qui seront générées pour restaurer une carte valide. Puisque (au moins) 3 gemmes seront supprimées d'un seul coup et que vous devrez générer 3 gemmes de remplacement, vous pouvez vous assurer que ces 3 gemmes de remplacement formeront un autre mouvement valide avec le plateau actuel. Mode sans fin atteint.
Bien sûr, il n'est pas idéal que le nouveau mouvement apparaisse avec de nouvelles gemmes, mais c'est un moyen bon marché de toujours garantir une planche jouable. Et puisque créer des mouvements valides signifie en fait échanger des positions de gemmes, il ne faudra pas longtemps pour que d'autres mouvements deviennent possibles.
Comme déjà mentionné, les bombes et autres moyens pour effacer de grandes parties du plateau ajouteront plus de variété au gameplay, mais ils ne sont pas nécessaires pour assurer un mode sans fin.
la source
Oui. Ce serait en fait possible. Ce n'est pas un cas de problème d'arrêt tel que le cas est défini, pas arbitraire. Pour répondre à cela, il faut répondre à deux parties; premièrement, si une solution existe, elle peut être trouvée, et deuxièmement, il y aura toujours une solution valide à trouver.
La première partie est de savoir comment trouver un ensemble de tuiles de remplacement (gemmes) qui produiraient une planche jouable. Cela peut être réalisé via des méthodes de force brute, il suffit de vérifier chaque jeu de remplacement possible jusqu'à ce qu'un jeu jouable soit rencontré (il y aurait également des méthodes de force non brute plus optimales).
La deuxième partie consiste à déterminer s'il y aura toujours un jeu de remplacement qui produira un jeu jouable. Tout ensemble de tuiles supprimées en un seul mouvement va être un surensemble d'ensembles de trois tuiles, donc si dans le cas minimal de seulement trois suppressions, si un ensemble jouable peut toujours être trouvé, alors pour tous les modèles possibles de tuiles supprimées il y aura un ensemble jouable, car il contiendra toutes les solutions pour chaque ensemble de trois tuiles supprimées qui est un sous-ensemble des tuiles supprimées.
Dans le cas minimal de la suppression de seulement trois tuiles dans une ligne / colonne, un ensemble de remplacement contenant deux tuiles de type A séparées par une tuile de type B (où le type A est le type d'une tuile au-dessus ou en dessous de l'ensemble effacé de trois dans le cas d'une colonne de trois, ou vers la gauche ou la droite dans le cas d'une rangée de trois). Cela produira un mouvement où l'échange du centre de ces trois tuiles avec la tuile A appropriée à côté d'elle produira un ensemble de trois. Cela montre qu'un ensemble de tuiles peut toujours être trouvé, ce qui produira un déplacement valide le long de la colonne / ligne où les tuiles d'origine ont été effacées. Restreindre les déplacements futurs à cette colonne ou ligne ne serait pas très amusant, tout en étant une solution valable pour un jeu jouable à l'infini. Mais en utilisant toutes les règles pour les jeux de style bejeweled communs, il est facile de montrer qu'il existera toujours une solution qui permettra également les déplacements en dehors de cette ligne / colonne. Supposons que nous déposons trois tuiles de type A, où A est l'une des tuiles au-dessus ou en dessous / à gauche ou à droite de l'ensemble de trois supprimé. Cela produira une tuile de style «bombe» qui dégagera une zone une fois retirée. Si nous déposons ensuite un autre jeu de tuiles de remplacement, ce qui entraîne une correspondance avec cette bombe, une zone de tuiles sera effacée. Cette zone contiendra un certain nombre de 3 sous-ensembles de tuiles dans d'autres lignes, ce qui signifie que les déplacements futurs ne seront pas nécessairement limités à une seule ligne / colonne. Cela produira une tuile de style «bombe» qui dégagera une zone une fois retirée. Si nous déposons ensuite un autre jeu de tuiles de remplacement, ce qui entraîne une correspondance avec cette bombe, une zone de tuiles sera effacée. Cette zone contiendra un certain nombre de 3 sous-ensembles de tuiles dans d'autres lignes, ce qui signifie que les déplacements futurs ne seront pas nécessairement limités à une seule ligne / colonne. Cela produira une tuile de style «bombe» qui dégagera une zone une fois retirée. Si nous déposons ensuite un autre jeu de tuiles de remplacement, ce qui entraîne une correspondance avec cette bombe, une zone de tuiles sera effacée. Cette zone contiendra un certain nombre de 3 sous-ensembles de tuiles dans d'autres lignes, ce qui signifie que les déplacements futurs ne seront pas nécessairement limités à une seule ligne / colonne.
la source
Vous avez abordé le problème de l'arrêt en informatique.
Étant donné la description d'un programme informatique arbitraire, pouvons-nous en déduire s'il s'arrêtera à un moment donné ou s'il s'exécutera indéfiniment? Il y a une raison pour laquelle cela s'appelle un "problème".
La réponse courte est: non, vous ne pouvez pas garantir qu'un jeu Bejeweled n'aura jamais de mouvements illégaux. Parce que garantir cela prendrait un temps de calcul infini.
la source