KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 2007
-
19 mars 2007 à 11:42
e_gaillard
Messages postés2Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 1 avril 2007
-
1 avril 2007 à 10:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
e_gaillard
Messages postés2Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 1 avril 2007 1 avril 2007 à 10:33
Notez que le principe n'est pas de resoudre un systeme lineaire n*n mais de regarder une matrice n*8 ou etant le nombre de point entourant le point que je cherche a determiner. C'etait marrant ca a bien fait rigoler mes collegues.
e_gaillard
Messages postés2Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 1 avril 2007 1 avril 2007 à 10:26
Bonjour,
Il y a qq annees j'ai fait un prog de demineur.
Le but etait qu'il joue seul qd j'appuie sur un bouton.
Le principe pour cela etait le suivant.
A chaque case du demineur on cherche la reponse 0 (pas de mine), 1 (il y a une mine)
on obtient une matrice n*n ou n est le nombre de carre du champ de mine. Bien entendu au debut on joue seul. Puis le systeme affecte le nombre de mine autour des points selectionnes. Le systeme lineaire se remplit. On appuie sur le bouton..Le systeme calcule et regarde si il ne trouve pas de solution sur un des sous systemes. Si il trouve 1 ... Il dit il y a 1 mine , 0 y'en a pas et la decouvre alors. Et ainsi de suite ... Des fois il dit 'jai rien trouvé'. Alors je jouait. Sa limite etait la suivante . Il ne tenait pas compte du nombre de mine restantes sur le champ. Mais cela dit ... Il joait mieux qu'un humain en general..Je sais plus si j'ai encore le code de ce prog.
bAzilew
Messages postés23Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention23 mars 2007 23 mars 2007 à 21:11
Bonsoir,
Le programme n'arrive ps à resoudre le mode expert par défaut à 99 bombes. Ne pourrais tu pas demander au début si le joueur utilise le mode débutant, intermediaire ou expert, et pour les trois autres les valeurs sont par défaut et expert il demande les autres parametres, avec au pire un seul calibrage dans une direction à faire ?
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 21 mars 2007 à 09:55
Je viens de regarder la window du démineur, effectivement c'est possible de tout calculer... mais je ne me lancerai pas dedans. Mon but était de faire un prg qui joue au démineur, c'est chose faite. Pour le nombre de case, c'est ce qu'y est deja fait mis a part que le point d'entree est le curseur de la souris.
En meme temps une fois que l'on connait le principe de la calibration il ne faut que 10 secondes pour recalibrer. Sachant que l'on ne recalibre que si l'on change la position de la fenetre ou la taille de la grille.
hisoka67
Messages postés8Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention20 mars 2007 20 mars 2007 à 22:33
Oui, t'as l'avantage que le démineur est toujours resté pareil et ne change pas avec le skin de windows, et donc que les couleurs sont toujours les mèmes
Par exemple, d'abord tu détectes le bouton recommencer (couleur jaune), puis ensuite tu cherches le premier pixel gris foncé en dessous du bouton, c'est le coin haut gauche de la grille, ensuite tu calcule le nombre de pixel d'écart entre 2 bordures blanches des cases de la grille pour la largeur/hauteur d'une case. Pour la taille totale, tu peux faire comme a dit vecchio
Un peu compliqué je sais mais si tu y arrives ca vaut le coup
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 20 mars 2007 à 18:29
Tu ne peux pas utiliser GetDlgItem, ca c'est sur
Par contre, tu peux toujours connaitre le nombre de cases en fonction de la taille de la fenêtre
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 20 mars 2007 à 13:50
Figure toi qu'au debut j'étais parti sur ton idée du findWindow, essayer de retrouver les GetDlgItem, le caption etc.. du coup cela aurai ete plus simple. Si tu y arrive cela m'interresse...
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 20 mars 2007 à 13:48
Quand tu changes de mode (debutant, intermediaire,..) la taille change, et selon ton principe cela veut dire qu'il faut savoir a l'avance que les cases font 16 x 16 que la première est a 3 ou 4 pixel du bord gauche et a environ 30 ou 40 du haut etc, etc...
hisoka67
Messages postés8Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention20 mars 2007 20 mars 2007 à 12:58
Je pense que c'est surtout la calibration qui pourrait ètre largement améliorée, en fait je comprend pas pourquoi tu calibres, comme le démineur ne change pas de taille il me semble entre les windows, tu pourrais juste récupérer le HWND de la fenètre avec un FindWindow(), ensuite tu peux déterminer les coordonnées sans passer par le calibrage... ca évite en mème temps de lire la doc, et en plus tout se fait automatiquement
exemple, tu fais des GetPixel jusqu'à trouver le premier pixel jaune pour le bouton recommencer, etc...
En tout cas j'aime bien l'idée
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 20 mars 2007 à 11:40
C clair l'algo de résolution peut etre largement amélioré (comme je l'avais précisé dans le titre) résolution par supposition par exemple...
Pour la doc tu penses a quoi au juste ? (un appui F1 -> qui ouvre une doc HTML, CHM ou une appli ?)
Le truc c'est qu'il a résolu les 3 niveaux en 1 seconde (grace au mode gagne pour le mode Expert), donc meme si l'algo est plus rapide ou s'il resoud plus souvent la grille, tu ne peut pas descendre en dessous de la seconde...
skone007
Messages postés166Date d'inscriptionmercredi 24 avril 2002StatutMembreDernière intervention23 juin 2009 20 mars 2007 à 11:06
Très bon programme j'avais l'intention d'en faire un... Mais dommage que la doc soit en doc... Il la resolution est pas trop top y a des petits test à ajouter je retoucherais ton programme... Et je posterais ... +++
Très bonne idée
KeniiyK
Messages postés326Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention 2 novembre 20072 19 mars 2007 à 11:42
J'ai oublié de préciser que l'éxécutable est présent : "DemineurSolver._x_" -> a renommer.
La doc : "DemineurSolver.doc"
1 avril 2007 à 10:33
1 avril 2007 à 10:26
Il y a qq annees j'ai fait un prog de demineur.
Le but etait qu'il joue seul qd j'appuie sur un bouton.
Le principe pour cela etait le suivant.
A chaque case du demineur on cherche la reponse 0 (pas de mine), 1 (il y a une mine)
on obtient une matrice n*n ou n est le nombre de carre du champ de mine. Bien entendu au debut on joue seul. Puis le systeme affecte le nombre de mine autour des points selectionnes. Le systeme lineaire se remplit. On appuie sur le bouton..Le systeme calcule et regarde si il ne trouve pas de solution sur un des sous systemes. Si il trouve 1 ... Il dit il y a 1 mine , 0 y'en a pas et la decouvre alors. Et ainsi de suite ... Des fois il dit 'jai rien trouvé'. Alors je jouait. Sa limite etait la suivante . Il ne tenait pas compte du nombre de mine restantes sur le champ. Mais cela dit ... Il joait mieux qu'un humain en general..Je sais plus si j'ai encore le code de ce prog.
23 mars 2007 à 21:11
Le programme n'arrive ps à resoudre le mode expert par défaut à 99 bombes. Ne pourrais tu pas demander au début si le joueur utilise le mode débutant, intermediaire ou expert, et pour les trois autres les valeurs sont par défaut et expert il demande les autres parametres, avec au pire un seul calibrage dans une direction à faire ?
21 mars 2007 à 09:55
En meme temps une fois que l'on connait le principe de la calibration il ne faut que 10 secondes pour recalibrer. Sachant que l'on ne recalibre que si l'on change la position de la fenetre ou la taille de la grille.
20 mars 2007 à 22:33
Par exemple, d'abord tu détectes le bouton recommencer (couleur jaune), puis ensuite tu cherches le premier pixel gris foncé en dessous du bouton, c'est le coin haut gauche de la grille, ensuite tu calcule le nombre de pixel d'écart entre 2 bordures blanches des cases de la grille pour la largeur/hauteur d'une case. Pour la taille totale, tu peux faire comme a dit vecchio
Un peu compliqué je sais mais si tu y arrives ca vaut le coup
20 mars 2007 à 18:29
Par contre, tu peux toujours connaitre le nombre de cases en fonction de la taille de la fenêtre
20 mars 2007 à 13:50
20 mars 2007 à 13:48
20 mars 2007 à 12:58
exemple, tu fais des GetPixel jusqu'à trouver le premier pixel jaune pour le bouton recommencer, etc...
En tout cas j'aime bien l'idée
20 mars 2007 à 11:40
Pour la doc tu penses a quoi au juste ? (un appui F1 -> qui ouvre une doc HTML, CHM ou une appli ?)
Le truc c'est qu'il a résolu les 3 niveaux en 1 seconde (grace au mode gagne pour le mode Expert), donc meme si l'algo est plus rapide ou s'il resoud plus souvent la grille, tu ne peut pas descendre en dessous de la seconde...
20 mars 2007 à 11:06
Très bonne idée
19 mars 2007 à 11:42
La doc : "DemineurSolver.doc"