Jeu et génération aléatoire de niveaux

Mammouth du PHP | 1967 Messages

16 oct. 2023, 09:04

Bonjour, j'ai une question générique.

Je cherche à savoir comment un jeu de type puzzle génère des niveaux aléatoires et surtout comment on gère la difficulté.

J'imagine qu'on peut le faire par essai erreur, mais j'ai peur de la durée du process.

Il y a 15 ans je m'étais mis à un solveur et générateur de Sudoku pour apprendre le PHP. aprés avoir mis au point mon solveur, je me suis mis au générateur, je génèrait une série de nombre aléatoire dans ma grille en m'assurant juste qu'il n'y avait pas d'incohérence et je résolvais la grille, si elle était pas pleine je générais un nombre aléatoire mais cohérent en plus et je recommencais. J'avais géré rapidement la difficulté en ajoutant 5 nombre de la solution au hasard pour faire du facile et en optimisant la grille pour les difficiles.

Mais je ne pense pas que c'étais la meilleure approche. Je me penche désormais sur un jeux plus comme un Sokoban, j'ai un solveur qui fonctionne (par force brute) et je me demande comment générer des niveaux. L'approche aléatoire risque de prendre du temps et la difficulté d'un sokoban ne réside pas que sur le nombre de coups.

Avez vous des conseils ou retour d'expérience ?

Merci
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Mammouth du PHP | 1528 Messages

16 oct. 2023, 22:29

Intéressant, j'avais à l'époque tenté de réaliser un soduko, sans succès #-o

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9725 Messages

17 oct. 2023, 10:56

Il y a plusieurs papiers de recherche sur la génération de Sokoban :
https://ianparberry.com/techreports/LARC-2011-01.pdf
https://digital.library.unt.edu/ark:/67 ... tation.pdf
https://www.techrxiv.org/articles/prepr ... 16640095/2

Sur Github, on retrouve aussi quelques implémentations, le sujet semble complexe si on veut vraiment avoir des niveaux réalisables et avec un bon niveau de difficulté.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 1967 Messages

17 oct. 2023, 13:55

Merci pour les liens.

Cela m'a l'air bien plus complexe que prévu. Je vais voir si je veux y investir du temps.

@two3d Je peux te filer mon code, mais c'est un code de débutant en php 4 que je n'ai jamais revu depuis.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Mammouth du PHP | 1528 Messages

17 oct. 2023, 16:49

Merci pour ta proposition. T'embêtes pas, j'aurais pas forcément l'envie et le temps à présent :)