Messagerie


Notion Solveur (niveau novice).

Kloug
1497 messages
Fusion 2.5
jeudi 21 février 2013 à 14:05
Salut,

Des "experts", hélas fort nombreux sur Internet, donnent des conseils afin de réaliser un jeu vidéo, mais au final ils sont peu crédibles et aussi fiables, qu'une allumette craquée sous la douche.

Les plus rigolos sont ceux qui prétendent qu'un amateur (novice), doit apprendre un langage de programmation, "c'est beaucoup plus mieux et moins pire que pire", le pire étant bien sûr, un logiciel fast food.

Connaître sur le bout des doigts un langage de programmation, ou l'interface d'un logiciel polyvalent, n'est pas très utile face à une problématique spécifique liée à un type (genre) de jeu.

Ne cherchez pas de définition concernant le solveur d'un jeu vidéo, mais plutôt un cliqueur qui se concentre sur un problème, essayant de synthétiser les informations et les connaissances pour parvenir à une solution.

Problématique spécifique pour ce cours, celle du Mastermind.

But du jeu:
Résoudre un code.

Sans avoir jamais jouer au Mastermind, juste avec le but du jeu, il est possible de mettre au point le principe du solveur.

1) Synthétiser les informations.



2) Les connaissances pour parvenir à une solution.

La solution se résume souvent à ceci, pour les cliqueurs les plus doués, une ligne comparative (optimisation).

Comme le niveau est novice, un tableau de comparaisons schématisé s'impose.



Maintenant que la solution est trouvée, il s'agit de la "matérialiser" via un langage de programmation, ou un logiciel polyvalent.

Dans notre cas, cela se fait à l'aide de l'interface MMF, évidemment.



Un compteur mis dans la scène MMF, est une boite (voir tableau de comparaisons schématisé).
La valeur du compteur, est la couleur d'un pion.

Une boite contient une couleur variable, (un compteur affiche une valeur modifiable), car en début de scène, MMF donne au hasard, un emplacement pour chacun des huit pions PC.

Étant très nul en programmation, je subodore qu'avec n'importe quel langage, l'objectif est de passer en revue le code PC, le code joueur, de les comparer.

Huit compteurs, noms, 01, 02, 03, 04, 05, 06, 07, 08.

Rangée cachée (code caché 4 couleurs), définit par les compteurs 01, 02, 03, 04.

Rangée réalisée par le joueur (code visible 4 couleurs), définit par les compteurs 05, 06, 07, 08.

Solveur pion rouge:

Valeur du compteur 01 est égale à valeur du compteur 05, alors MMF place un pion rouge.
Valeur du compteur 02 est égale à valeur du compteur 06, alors MMF place un pion rouge.
Valeur du compteur 03 est égale à valeur du compteur 07, alors MMF place un pion rouge.
Valeur du compteur 04 est égale à valeur du compteur 08, alors MMF place un pion rouge.

Quatre pions rouges, le joueur trouve la solution du matermind.

Solveur pion blanc pour le premier pion de la rangée (premier à gauche):

Valeur du compteur 01 est égale à la valeur du compteur 06, alors MMF place un pion blanc.
Valeur du compteur 01 est égale à la valeur du compteur 07, alors MMF place un pion blanc.
Valeur du compteur 01 est égale à la valeur du compteur 08, alors MMF place un pion blanc.

Idem pour les compteurs 02, 03, 04, nombre de lignes pour le solveur pion blanc, 3x4.

Solveur deux fois la même couleur sur la rangée en cours de réalisation par le joueur:

Valeur du compteur 05 est égale à la valeur du compteur 06, alors MMF fait gréve.
Valeur du compteur 05 est égale à la valeur du compteur 07, alors MMF fait un sitting.
Valeur du compteur 05 est égale à la valeur du compteur 08, alors MMF fait une pause.

Valeur du compteur 06 est égale à la valeur du compteur 07, alors MMF fait gréve.
Valeur du compteur 06 est égale à la valeur du compteur 08, alors MMF fait un sitting.

Valeur du compteur 07 est égale à la valeur du compteur 08, alors MMF fait gréve.

22 lignes comparatives pour trois solveurs (non optimisés), normalement 26 lignes pour quatre solveurs, c'est long mais accessible à tous.

La mise en pratique, 45 lignes environ, à décortiquer afin de voir l'astuce qui permet d'activer et désactiver les solveurs, avec mise à zéro des différents compteurs.

Mastermind_Solveurs.zip
http://files.getwebb.org/download.php?id=cre631po

Version stricte du Mastermind, pas de vide, deux fois la même couleur, sur une rangée.
A vous de découvrir le gameplay.



En résumé, savoir programmer (klik coder) et savoir résoudre une problématique liée à un type de jeu, sont deux choses, totalement différentes.

Un novice doit étudier d'urgence, le solveur, le moteur de déplacement.

Un solveur est généralement composé d'une, ou plusieurs lignes comparatives.
Il est parfois nécessaire de l'associer à un moteur de déplacement (autonome).

Là forcément, on change de niveau.
http://comptoir-mmf.eu/index.php?topic=217.0

Un solveur optimisé (moteur gestion des plans sur une map isométrique).
http://205.196.123.14/ab6cy776i18g/26ks9vdrf0isekg/PerfectIsoMovement.zip

En espérant que ce cours sera utile.

A+++

The master of the house forms.
Klougy!

Kloug
1497 messages
Fusion 2.5
mercredi 13 mars 2013 à 15:44
Salut,

Comme de coutume ces derniers temps, je reviens sur la notion "solveur".

Évidemment le mot résolveur est des plus inapproprié pour un puriste.

En étudiant le cas du Mastermind, résoudre la problématique du jeu, ne donne pas au final le résolveur du jeu, néanmoins la nécessité de s'approprier une notion et la volonté de pinailler sont peut être deux choses antinomiques?

Ce genre de solveur semble hélas dépassé avec Hyper Mastermind (l'assistanat à tous les étages mdr).
http://www.dcode.fr/solveur-mastermind

Bon gré, mal gré, cela donne toujours d'un côté comme de l'autre, une I.A pour un Mastermind, donc des lignes comparatives à mettre au point avec TGF, MMF.
D'après le peu que j'ai capté, un "solveur" est composé au mieux après optimisation d'une seule ligne comparative.

Avec TGF2, l'objet "natif" afin de résoudre une problématique spécifique se nomme généralement tableau.

Quel scoop!

L'objet tableau de chiffres, permet d'entrer une valeur à "l'emplacement" d'un index.
En gros de placer un nombre dans une case.
Cette case étant numérotée (par un index), il est plus facile de la retrouver.

Afin de comparer deux valeurs de l'objet tableau, lire la page 51 du manuel MMF (comparer deux valeurs générales).

L'exemple ci-dessus démontre si besoin que l'objet tableau n'est pas obligatoire, tout dépend du projet.

Un projet sérieux se résume donc à une succession de compromis, on essaye de prendre au fur et à mesure la solution qui convient le mieux suivant le contexte, son niveau et non la meilleure solution préconisée par un "maestro" de la programmation.

Avec MMF savoir programmer est plutôt un handicap, puisque la colonne vertébrale est l'éditeur de scènes.

Par ailleurs, j’espère que vous avez compris que ce cours sur le Mastermind, est particulièrement "mauvais", par exemple la partie du "solveur" pion blanc a atteint le summum du ridicule, car une seule condition par couleur suffit, en réfléchissant un minimum sur une meilleure utilisation des objets actifs.

Rien ne remplace la pratique, mettre les mains régulièrement dans le cambouis, est obligatoire.
Un module d'exercices, une formation pour MMF n'a aucune valeur, si par la suite on se tourne les pouces.

Contrairement aux apparences, je n'ai pas résolu "correctement" la problématique du Mastermind, je vous laisse réfléchir à la façon d'optimiser le "Klik" code.

Lors d'un gros projet, savoir réduire le nombre de conditions est essentiel, sinon vous risquez vite de vous perdre dans des centaines de lignes, pour la plupart inutiles.

Alors pourquoi le coup des compteurs?
Parce que c'est une solution passe partout, pragmatique quand on débute, visualiser les résultats du "solveur" est facile, à réserver donc pour un "petit" jeu.

Pour conclure...

Aller sur un forum, télécharger des tutoriaux ne sert pas à grand chose, à moins de s'autoformer, ce qui n'est pas dit dans la chanson (le refrain) de la réalisation d'un jeu vidéo un tantinet sérieux, le voici, tôt ou tard, on se retrouve seul devant notre programme, les slogans du genre "le C++ un langage incontournable" ou "sans aucune notion de programmation", à mettre au plus vite dans les toilettes face à une problématique spécifique.

MMF revient à faire de la gymnastique intellectuelle, d'un côté l'interface, de l'autre des notions de "programmation" acquises au fur et à mesure (l'autoformation).

Puisque les slogans sont à la mode en voici un valable.

Le meilleur moteur de jeu vidéo est celui que l'on comprend de A à Z.

L'auto-formation consiste en quoi avec MMF?

1) Pratiquer régulièrement.

2) Faire des recherches, des études de cas concernant des problématiques générales et spécifiques.

Quand aucun exemple se trouve sur le Web, ne pas baisser les bras, s'attaquer quand même au problème, si vous arrivez à résoudre une problématique, n'hésitez pas à en faire profiter les "amis".

A+++

Klougy.

Nota:
Cette étude de cas niveau novice a donné un moteur de jeu vidéo, du jeu Mastermind de Mordecai Meirovitz, ce moteur appartient à son auteur selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale.

Hyper Mastermind:
http://files.getwebb.org/download.php?id=cre62zmc

Merci de votre attention.
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 10 visiteurs au total

Derniers messages