[2D] Sokoban Like
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
[2D] Sokoban Like
Sokoban Like
■ Objectif..
Dans un entrepôt divisé en cases carrées, vous incarnez un gardien et devez ranger des caisses sur des cases cibles.
Le gardien peut se déplacer dans les quatre directions, et pousser (mais pas tirer) une seule caisse à la fois.
Cliquer sur ce lien pour une démonstration vidéo des niveaux 1 à 5
En savoir plus sur Wikipédia https://fr.wikipedia.org/wiki/Sokoban
■ Le code.
Vous trouverez dans cette distribution deux codes réalisés avec le langage PureBasic.
SokobanEditor.pb
Créer autant de niveaux pour Sokoban Like en plaçant les différentes pièces de la scène avec l'aide du gardien que vous déplacez avec les flèches de votre clavier.
Les différentes piéces.
Comment placer les éléments ?
Déplacer le gardien avec les flèches de votre clavier puis utiliser :
La touche 1 permet de placer un mur
La touche 2 permet de placer une caisse
La touche 8 permet de placer une cible.
La touche 9 permet de placer une caisse sur une cible (Elle devient rouge).
Placez autant de caisses (ou plus) qu'il y a de cibles.
Quand vous avez terminé la création du niveau, placer le gardien en position de départ.
Cette position de départ est sauvegardée dans dans un fichier setup du niveau qui sera lu automatiquement par le code Sokoban.pb (Le player).
Au menu.
- Nouvelle scène ou Ctrl + N pour créer une nouvelle scène
Avant de créer une scène, donner un nom. Exemple S101
Chaque scène est sauvegardée dans deux fichiers :
NomDeLaScene.grid.json (Type et position de chaque élément de la scène)
NomDeLaScene.setup.json (Position de départ du gardien, nombre de cibles)
Exemple : S101.grid.json et S101.setup.json
- Ouvrir une scène ou Ctrl + O pour ouvrir une scène existante.
- Renommer une scène ou F2 pour renommer une scène en cours d'édition.
- Sauver une scène en cours d'édition ou Ctrl + S pous sauvegarder une scène.
Les niveaux sont enregistrés dans le dossier Levels du dossier d'installation de Sokoban.
Vidéo : https://www.youtube.com/watch?v=_P1RlYhcymc
Sokoban.pb
C'est le player de Sokoban. A vous de jouer et de résoudre les différents niveaux.
■ Téléchargement.
Les sources, assets et différents niveaux sont sont publiés sur la plateforme communautaire GitHub
https://github.com/falsam/SokobanLike/a ... master.zip
Voir la publication : https://github.com/falsam/SokobanLike
Les Sprites sont open source sur http://opengameart.org/content/sokoban-pack
PS : Spock évite tes commentaires (je suis poli je n'ai pas dit ne me gonfle pas]) tant que tu n'as pas testé ces codes. (Joke hein ?)
■ Objectif..
Dans un entrepôt divisé en cases carrées, vous incarnez un gardien et devez ranger des caisses sur des cases cibles.
Le gardien peut se déplacer dans les quatre directions, et pousser (mais pas tirer) une seule caisse à la fois.
Cliquer sur ce lien pour une démonstration vidéo des niveaux 1 à 5
En savoir plus sur Wikipédia https://fr.wikipedia.org/wiki/Sokoban
■ Le code.
Vous trouverez dans cette distribution deux codes réalisés avec le langage PureBasic.
SokobanEditor.pb
Créer autant de niveaux pour Sokoban Like en plaçant les différentes pièces de la scène avec l'aide du gardien que vous déplacez avec les flèches de votre clavier.
Les différentes piéces.
Comment placer les éléments ?
Déplacer le gardien avec les flèches de votre clavier puis utiliser :
La touche 1 permet de placer un mur
La touche 2 permet de placer une caisse
La touche 8 permet de placer une cible.
La touche 9 permet de placer une caisse sur une cible (Elle devient rouge).
Placez autant de caisses (ou plus) qu'il y a de cibles.
Quand vous avez terminé la création du niveau, placer le gardien en position de départ.
Cette position de départ est sauvegardée dans dans un fichier setup du niveau qui sera lu automatiquement par le code Sokoban.pb (Le player).
Au menu.
- Nouvelle scène ou Ctrl + N pour créer une nouvelle scène
Avant de créer une scène, donner un nom. Exemple S101
Chaque scène est sauvegardée dans deux fichiers :
NomDeLaScene.grid.json (Type et position de chaque élément de la scène)
NomDeLaScene.setup.json (Position de départ du gardien, nombre de cibles)
Exemple : S101.grid.json et S101.setup.json
- Ouvrir une scène ou Ctrl + O pour ouvrir une scène existante.
- Renommer une scène ou F2 pour renommer une scène en cours d'édition.
- Sauver une scène en cours d'édition ou Ctrl + S pous sauvegarder une scène.
Les niveaux sont enregistrés dans le dossier Levels du dossier d'installation de Sokoban.
Vidéo : https://www.youtube.com/watch?v=_P1RlYhcymc
Sokoban.pb
C'est le player de Sokoban. A vous de jouer et de résoudre les différents niveaux.
■ Téléchargement.
Les sources, assets et différents niveaux sont sont publiés sur la plateforme communautaire GitHub
https://github.com/falsam/SokobanLike/a ... master.zip
Voir la publication : https://github.com/falsam/SokobanLike
Les Sprites sont open source sur http://opengameart.org/content/sokoban-pack
PS : Spock évite tes commentaires (je suis poli je n'ai pas dit ne me gonfle pas]) tant que tu n'as pas testé ces codes. (Joke hein ?)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [2D] Sobokan Lite
Sympathoche
Merci pour le partage.
Merci pour le partage.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: [2D] Sobokan Lite
Feedback.
Tu as du te tromper dans la délimitation des tableaux ou dans la vérification des coords. Lorsqu'on pousse une casse contre un des bords de l'ecran ça génère une erreur sur GRID().
Testé avec ce level :
Tu as du te tromper dans la délimitation des tableaux ou dans la vérification des coords. Lorsqu'on pousse une casse contre un des bords de l'ecran ça génère une erreur sur GRID().
Testé avec ce level :
Dans ton Json peut-être qu'il faut ajouter un valeur supplémentaire pour les cases hors ecran.[[0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0], [0, 2, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0], [0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0], [0, 0, 0, 0, 0, 1, 1, 0, 8, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 8, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 8, 1, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0]]
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokoban Lite
Quelle idée aussi d'essayer de pousser une caisse en dehors du screen ?^^Ar-S a écrit :Lorsqu'on pousse une casse contre un des bords de l'ecran ça génère une erreur sur GRID().
En principe il y aurait du il y avoir un mur. Je vais prendre ce cas là en compte. Merci de ton feedback Ar-s.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokokan Like
Mise à jour des codes.
- Quelques commentaires supplémentaires.
- Il n'est plus possible de pousser une caisse en dehors des limites de la grille. (Encore une fois merci Ar-s pour ton feedback ^^)
- Sauvegarde du nombre de cibles crées (Variable CountTargets.i) dans le fichier gridsetup.json quand on quitte l'éditeur de niveau.Voir le premier message pour le lien de téléchargement.
- Quelques commentaires supplémentaires.
- Il n'est plus possible de pousser une caisse en dehors des limites de la grille. (Encore une fois merci Ar-s pour ton feedback ^^)
- Sauvegarde du nombre de cibles crées (Variable CountTargets.i) dans le fichier gridsetup.json quand on quitte l'éditeur de niveau.
Code : Tout sélectionner
;Joueur
Structure NewSprite
x.i ;Position x du joueur
y.i ;Position y du joueur
Direction.i ;Déplacement du joueur (Gauche=10, droite=11, bas=12, haut=13)
CountTargets.i ;Nombre de cible crée par le joueur
EndStructure
Global Player.NewSprite
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [2D] Sobokan Lite
Cool merci du partage falsam
ps: je vais faire mon Ar-S Dans l'editeur j'ai mis un mur sous mon perso et j'ai fait échappe, donc sur la game je démarre sur un mur pas cool. Mais je chipote tkt
@++
ps: je vais faire mon Ar-S Dans l'editeur j'ai mis un mur sous mon perso et j'ai fait échappe, donc sur la game je démarre sur un mur pas cool. Mais je chipote tkt
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokokan Like
Je sais que tu chipotes tout comme Ar-S qui ne place pas de mur pour délimiter le périmétre du niveauvenom a écrit :Dans l'editeur j'ai mis un mur sous mon perso et j'ai fait échappe, donc sur la game je démarre sur un mur pas cool.
Comme je l'ai dit dans ma présentation ....
falsam a écrit :Quand vous avez terminé la création du niveau, Vous placerez le gardien en position de départ.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [2D] Sobokan Lite
oups autant pour moifalsam a écrit :Quand vous avez terminé la création du niveau, Vous placerez le gardien en position de départ.
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokoban Like
J'ai remercié Ar-S de la remonté du souci qu'il rencontre bien que ce ne soit pas un bug pour moi. le principe de Sokoban est de délimiter une aire de jeu. Si Ar-s ne le fait pas je n'y peut rien. Toutefois j'ai quand meme comblé cette lacune.Spock a écrit :Il ne faut rien exagérer je ne trouve pas que les l'utilisateurs chipotent
ils te font remonter des bugs, c'est la moindre des choses que de les remercier plutôt
venom qu'en a lui a fait une remarque sur le ton de la plaisanterie et je lui ai répondu de la meme manière.
Tu vois le problème est là avec toi. Tu commentes une application sans même la tester.Spock a écrit :Je n'ai pas testé ton code, mais ne peut tu pas par programmation 'replacer le gardien en position de départ ?
Si je fais revenir le gardien dans une position fixe, comment je peux savoir si il n'y a pas un mur ?
Quand on utilise l'éditeur de niveau il faut placer le gardien dans la position ou je jeu doit démarrer.
Ne dit rien c'est mieux et teste ces codes la prochaine fois.Spock a écrit :Ou alors de ne rien dire....
Ces deux codes ne sont que des templates minimalistes ne contenant que l'essentiel pour faire un vrai sokoban. C'est suite à une conversation privé avec venom que j'ai proposé ces deux codes.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: [2D] Sobokan Lite
Note : J'ai bien délimité l'aire de jeu, c est ingame qu en poussant une caisse contre un des bords que l erreur apparaissait.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: [2D] Sobokan Lite
Allez poursuivons sur de bonnes bases avant que je ne nettoie ce topic.
J'ai pu tester que mon level, la correction fonctionne. Merci.
J'ai pu tester que mon level, la correction fonctionne. Merci.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokoban Like
Ce que tu n'as pas compris Spock et c'est normal parce non seulement tu n'as pas testé, mais de plus tu ne veux pas comprendre.
C'est le concepteur du niveau qui va définir la position de départ du gardien. Cette position est sauvegardée dans le setup du niveau.
Mais oui bien sur et je prends n'importe laquelle de libre ? Et bien non ce n'est pas le concept.Spock a écrit :tu lis le level, et tu regardes a prendre une case vide .....
C'est le concepteur du niveau qui va définir la position de départ du gardien. Cette position est sauvegardée dans le setup du niveau.
A toi je te le dis Spock : Vas te faire voir ailleurs. Tu reviendras quand tu auras testé les deux codes.Spock a écrit :mais tu peux aussi dire a tes testeurs d'aller se faire voir ailleurs , il suffit juste de le savoir
Tu as raison, Je m'empresse de l'écrire dans mon premier message en mentionnant ton nom bien sur.Spock a écrit :phrase a ecrire dans ton premier message , avec mention, "me gonflez pas si un truc déconne dans le code"
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokoban Like
J'utilise l'éditeur officiel et j'ai les accents.Spock a écrit :ton editeur ne prends pas les accents ?
je ne rajouterais pas de code inutile. Le créateur de niveau peut placer le gardien dans la position de départ de son choix : Donc sur un espace libre en principe (Faut quand même etre béta pour le placer dans un mur ou une caisse)Spock a écrit :ce qui a pour effet de remplacer ce qui se trouve sous le Gardien par de l'herbe !
ça résous le problème du gardien sur un mur ou une caisse !
Cette position du gardien est sauvegardé dans un fichier setup qui sera lu par le player.
Tout est dit, c'est pas grand chose à faireSpock a écrit :c'est pas grand chose a faire ....
Comme c'est spécifié dans le premier message, c'est deux codes sont des templates de bases pour la création d'un jeu complet. Ils ne contiennent que le strict minimum facile à déboguer avant de passer à la suite.
Quelques idées pour la suite qui fera l'objet d'un code indépendant de ceux que j'ai posté.
■ Editeur de niveau
- Un menu comprenant ..
- Un item pour charger un niveau.
- un item pour sauvegarder le niveau avec contrôle de cohérence.
- Un setup pour hiérarchiser les niveaux.
...
■ Le player
- Compter les déplacements
- Passer au niveau suivant
- Comptabiliser les scores.
- Créer un challenge multijoueurs.
...
Merci pour tes remarques judicieuses Spock
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sobokan LiKe
Nouvelle mise à jour des deux codes. Merci à Ar-S, Spock et Venom pour leurs commentaires.
■ Éditeur de niveau
- Lors de la sauvegarde, un message vous informe si le gardien se trouve dans un mur ou une caisse.
■ Player
- Un message vous informe quand la mission est atteinte.
- Ajout de quelques commentaires
■Téléchargement sur la plateform Github
https://github.com/falsam/SobokanLike/a ... master.zip
■ Éditeur de niveau
- Lors de la sauvegarde, un message vous informe si le gardien se trouve dans un mur ou une caisse.
■ Player
- Un message vous informe quand la mission est atteinte.
- Ajout de quelques commentaires
■Téléchargement sur la plateform Github
https://github.com/falsam/SobokanLike/a ... master.zip
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [2D] Sokokan Like
Ooops j'ai fait une erreur dans le titre de ce sujet. Quelqu'un m'a fait remarqué sur un tchat que le jeu s'appelle Sokoban et non Sobokan. Le titre est corrigé.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%