Le chasseur de bombes

Pour partager vos applications (Excel, Calc et Google Sheets) avec les autres membres
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 13 septembre 2019, 19:04

Bonjour,

j'ouvre ce soir le sujet "Chasseur de bombes".
Bon je ne l'ai pas encore mis en validation, mais cela devrait se faire sous peu.
J'ai eu beaucoup de mal à gérer l'étendue des cases "blanches", mais ça y est j'ai une procédure correcte.
Je suis content car le jeu en lui-même ne prend pas trop de ligne de code, c'est plus au niveau de la cosmétique que la grandeur augmente ! ;;)

@ bientôt

LouReeD
Modifié en dernier par LouReeD le 15 septembre 2019, 18:49, modifié 1 fois.
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'129
Appréciations reçues : 273
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 14 septembre 2019, 01:54

LouReeD a écrit :
13 septembre 2019, 19:04
j'ouvre ce soir le sujet "Chasseur de bombes".
Bon je ne l'ai pas encore mis en validation, mais cela devrait se faire sous peu.
J'ai eu beaucoup de mal à gérer l'étendue des cases "blanches", mais ça y est j'ai une procédure correcte.
Je suis content car le jeu en lui-même ne prend pas trop de ligne de code, c'est plus au niveau de la cosmétique que la grandeur augmente ! ;;)
slt LouReeD,
j'ai bien hâte de voir ton "Chasseur de bombes"
à très bientôt :wink:

oups, du coup je viens de réaliser que j'ai participé à un fil qui contient un gros mot et que je suis maintenant la proie des chasseurs de gros mots ::( :cry:
Merci! de faire un clic sur le bouton résolu pour nous aider à t'aider.
Si vous avez un doute :
annonces/explications-et-regles-a-respecter-t13.html

isabelle
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 14 septembre 2019, 10:40

Bonjour,

évidemment, vu sous cet angle... :oops:
Loin de moi cette idée ! :lol:
Je peux dire "mine" c'est vrai vu que c'est une (pâle) copie du Démineur©... Mais bon, je crois que je vais garder "Bombes" !

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 15 septembre 2019, 18:52

Bonsoir,

Allez, pour faire patienter tout le monde, voici un ScreenShot de la futur version :
Aperçu.png
Aperçu.png (58.46 Kio) Vu 403 fois
La mise en forme fait ralentir le code mais cela me convient tout de même, Je triche en mettant suffisamment de bombes pour éviter les trop grandes surfaces "blanches" ! ;;)

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 16 septembre 2019, 23:03

La fin est proche !
Je viens de finir la gestion de la victoire, il me reste à finaliser le tableau des scores où seul le temps et la taille des grilles seront pris en compte... Enfin, pour le moment ! :lol:

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
E
ExcelCoreGame
Membre fidèle
Membre fidèle
Messages : 392
Appréciations reçues : 13
Inscrit le : 24 octobre 2017
Version d'Excel : 2007FR

Message par ExcelCoreGame » 17 septembre 2019, 00:14

Le design du jeu est sympa en tout cas :)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 17 septembre 2019, 10:29

Bonjour,

Merci pour la remarque ;;)
Mais comme dit plus haut cela ralenti le code, pourtant je réduis au minimum l'accès à la feuille mais bon vu la mise en forme je suis "obligé" d'y aller pour chaque cellule...

La finalisation est proche... ;;)

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 18 septembre 2019, 18:39

Bonsoir,

Petits contre temps... Mais je ne me décourage pas, il devrait bientôt sortir... Mais je travaille actuellement en parallèle sur StarTron ! Alors du coup je m'y perds et je prend du retard !

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 5'916
Appréciations reçues : 249
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 19 septembre 2019, 21:01

Bonsoir,

du nouveau sous le soleil ! :-)

Vous racontant que mon code mettait "un peu de temps" à afficher les zones blanches du fait pour une partie de la mise en forme des cellules, je me suis senti "obligé" de chercher une solution...
Et je crois que je suis arrivé sur un joli résultat ! :-)

Je me suis rappelé que les "tests" étaient gourmant en ressources...
Je me suis aussi rappelé d'un test "inversé" jouant sur la gestion d'erreur de VBA...
En effet, dans un classeur ayant plusieurs feuilles, lors de la création d'une nouvelle feuille, on "se doit" de vérifier que le nom proposé par l'utilisateur n'est pas déjà existant. Ce que je faisais "à l'époque" était une boucle sur les noms de toutes les feuilles avec un test : "si nom proposé est égal au nom de la feuille 1 testée alors pas bon sinon on teste avec la feuille suivante" etc...
Hors avec une gestion d'erreur tout est plus simple :
on demande d'activer la feuille portant le nom proposé par l'utilisateur : si erreur le nom est inconnu on peut le garder, si pas d'erreur c'est qu'il faut changer de nom ! C'est beaucoup plus rapide car un seul test !

Donc dans mon code il y a plusieurs tests lors de la recherche d'étendue de zone blanche :
une cellule blanche = on vérifie les 8 qui sont autour de la première, mais il y a 8 test pour s'assurer que l'on ne va pas tester une zone "hors jeu", car si la cellule de départ est au bord de la grille, les cellules autours sont pour certaines hors jeu.
Du coup pour une cellule de coordonnées X et Y il me fallait faire si X-1<1 et Y-1 <1 then, et les 7 autres tests...

Maintenant le code est plus simple je fait une boucle de i=-1 to 1 et J=-1 to 1
et je test la cellule de coordonnées X +i, Y+i, au final 9 cellules sont testées, et pour celles qui sont hors jeu la gestion d'erreur permet de se rendre directement à la fin de l'instruction, du coup je passe de 8 tests systématiques à un certains nombres de gestion d'erreur qui arriveront moins souvent que le 8 systématiques.

L'autre "parade" est de joueur sur deux tableaux "grille" : une grille de référence qui contient la place des bombes ainsi que les valeurs numériques des cellules qui les entourent, comme cela lors des tests d'étendue, je n'ai plus besoin d'avoir recours à une procédure de compte de bombe pour afficher le numéro.
Une deuxième grille pour l'affichage du résultat sur la feuille Excel, ce tableau correspond au jeu du joueur.
Une fois l'étendue déterminée est "clôturée" alors il suffit de faire un "copier" de la grille affichage vers la feuille et toutes les données sont copiées dans les cellules...Hélas sur un tableau de 1500 colonnes et lignes il fallait à Excel environ 3 à 4 secondes pour faire cette recopie ! :cry:
Du coup il m'est venu l'idée de ne copier sur la feuille que la partie de la grille "nouvellement modifiée" pour cela dans la procédure j'ai intégré 4 variables nouvelles Xmin, Xmax, Ymin et Ymax qui ont pour valeur les numéros mini et maxi de la zone "blanche" dans le tableau grille affichage ! Du coup la recopie sur la feuille est quasi instantanée car il n'y a pas les 1500x1500 cellules à copier !
Une MFC est mise en place sur la grille de jeu afin de mettre en couleur les différents chiffres, les cellules "blanches" qui sont violette (j'aime le violet, vous savez ;-) ), et l'absence de bordure sur ces dernières.
Il me reste à gérer la modification de police sur les cellules "bombes" afin de les afficher comme des bombes à mèches...
Hélas pour moi Wingdings n'a pas et les bombes et les chiffres ! Il faut donc que je modifie ceci sur la feuille.
Deux solutions : lors du placement des bombes, créer un objet range avec les différentes cellules de bombes calculées (trop long)
Lors du placement des bombes, modifier la police sur les cellules concernées, je penche pour cette solution.

Tout cela mis bout à bout fait que le jeu est plus fluide. Mais par rapport à l'autre code ce n'est pas grand chose mais je suis content de moi ! :lol:
Alors il est vrai que sur une grille de 1500 x 1500 avec très peu de bombes, le code met malgré tout un peu beaucoup de temps pour faire apparaître le violet, mais à quoi bon une si grande grille avec si peu de bombes ! :lol:

Voilà pour les dernières nouvelles, je vais de ce pas essayer de finir ce chasseur de bombes !

@ bientôt

LouReeD
Contributeur depuis peu ! 8-)
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
E
ExcelCoreGame
Membre fidèle
Membre fidèle
Messages : 392
Appréciations reçues : 13
Inscrit le : 24 octobre 2017
Version d'Excel : 2007FR

Message par ExcelCoreGame » 19 septembre 2019, 23:58

Pourquoi tester si une feuille existe à chaque fois? juste le faire à l'ouverture n'est pas suffisant? après si le joueur renomme toute les feuilles en cours de route tant pis pour lui :D

Pour le check des cases autour en effet de faire une boucle de i=-1 to 1 et J=-1 to 1 je pense aussi :)
Par contre je ne vois pas en quoi une gestion d'erreur est nécessaire, l'instruction "exit for" sert exactement à faire ça nan? ou du coup il faut partir sur un while ^^
Je crois que je fais des tests dans le miens, je pourrais encore gagner du temps de traitement avec cette astuce au pire :)

Bizarre pour les 1500x1500 lignes recopié qui prennent du temps, tu passes bien par des tableaux?

Carrément faire des ranges serait vraiment trop long aie!
Le mieux est de modifier la police clairement ou directement de faire dans les MFC

Je suis impatient de voir ce que tu proposes d'autres comme option dans le jeu yeah! courage en tout cas

ECG
Répondre Sujet précédentSujet suivant