IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création d'un jeu Memory en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Par défaut Création d'un jeu Memory en VBA
    Bonjour à tous,

    Je suis étudiant et notre professeur d'informatique nous a donné un travail à faire comme indiqué dans l'intitulé, nous devons créer un jeux "MEMORY".

    Le but du jeu est de mémoriser un carré (6x6) comportant des cases de couleurs (Jaune, Vert, Bleu et Rouge) qui sont générées aléatoirement, qui apparaissent 5 secondes; après ces 5 secondes un grille neuve apparaît et il faut reconstituer la grille en utilisant des boutons qui rempliront la ou les cases sélectionnées.

    Règles du jeu:
    - Pour commencer à jouer cliquez sur le bouton "JOUER", puis sur le bouton oui.
    - Les cases de la grille se remplissent avec les 4 couleurs
    - Elles restent affichées 5 secondes, à vous de les mémoriser, après ces 5 secondes elle redeviennent blanches.
    - Vous devez alors vous positionner dans une case ou plusieurs puis cliquer sur le bouton de la couleur qui vous semble être la bonne.
    - Une fois que vous avez finit (toutes les cases ne doivent pas forcement être remplies si la difficulté est trop grande pour vous) vous devez cliquer sur le bouton "RÉSULTATS" pour afficher votre score et le comparer au meilleur résultat qui reste toujours affiché


    AIDES/CONTRAINTES:
    - Un bouton "JOUER" genère une grille de 36 cases colorées aléatoirement de 4 couleurs (ROUGE, BLEU, VERT et JAUNE)
    - La grille reste visible 5 secondes, il faut la re-créer avec les boutons de chaque couleur qui recolore la ou les cases.
    - Le meilleur score du fichier reste afficher au fil des parties
    - Le bouton jouer doit déclancher une alerte de type "Voulez vous commencer une nouvelle partie?" avec un bouton oui qui recommence une nouvelle partie aléatoire et un bouton non qui laisse la partie en cour se dérouler
    - Un bouton résultat doit être présent
    - Le joueur ne peut modifier que les 36 cellules à l'aide des boutons, tout le reste doit être protégé.
    - Le score de la partie doit être présent (en début de partie la cellule est vide)
    - La présentation du jeux est libre (fond forme taille des cases de la grille, taille des boutons)
    - Les règles du jeu doivent être affichées en bas du jeu.

    Après une semaine de panique devant ma fenêtre Excel un ami m'a conseillé de demander de l'aide sur un forum, je m'en remet donc à vos connaissances

    Je précise que mon niveau de VBA est celui d'un novice.


    Si mon post n'est pas complet et que vous souhaitez avoir des informations complémentaires je me tiens à votre disposition dans la limite de mes connaissances.
    Je vous remercie d'avance

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Inscris ce que tu as fait et où ça coince.
    On n'a aucune raison de faire ton devoir.
    Ce serait nuire à ton apprentissage.

    Personnellement, j'opterais pour une 2e feuille masquée dans laquelle tu crées le jeu (voir Rnd et Randomize) et que tu copies dans la 1ere.
    Ce serait plus facile de valider (Range("A1").Interior.Color vs Range("A1").Interior.Color)
    Autrement, tu pourrais utiliser un tableau à 2 dimensions.

    Pour le temps, il y a OnTime ou encore Timer

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Par défaut
    Merci de votre réponse. J'ai oublié de préciser mais effectivement j'attends une aide de votre part et non un travail final.

    J'ai bien avancé, j'ai réussi à générer la grille avec les 4 couleurs aléatoirement (rouge, jaune, bleu, vert) et à la faire disparaître au bout de 5 secondes (cases blanches).

    - Il me manque principalement le code pour indiquer mon score sur la partie venant d'être effectuée et aussi un autre code pour qu'il y ai le meilleur score de noter (celui-ci ne doit pas changer dès l'ouverture d'Excel)

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Pour tes 2 questions, il faudrait voir comment tu as procédé:
    Ta grille est dans quel plage de cellules.
    Est-ce que tu as l'original dans une feuille (si oui, où?) ou dans un tableau ou autre ?

    Pour le score, tu devras faire une double-boucle, j'imagine, pour balayer de gauche à droite en descendant et en validant avec l'original.

    Pour le meilleur score, tu pourrais stocker dans une feuille tous les scores et utiliser la formule MAX() pour retrouver le plus haut.
    Tu pourrais ajouter le username.
    Ça te donnerait la possibilité de sortir le meilleur score du joueur ainsi que le meilleur score de tous les joueurs.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 12
    Par défaut
    Ma grille est en cellule C3;H8.

    Quelle serait la formule pour faire une double boucle pour afficher le résultat ?

    Enfin, est-il possible d'envoyer une pièce jointe en message privé ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Je ne sais pas si tu peux joindre un fichier en message privé, mais si tu le mets ici, tu auras plus d'idées, éventuellement.
    Si ton fichier est en xlsm, compresse-le en zip avant de le joindre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LG] Jeu mémory : initialisation de tableau
    Par DarkLords dans le forum Langage
    Réponses: 1
    Dernier message: 19/10/2005, 15h13
  2. Topic - La création d'un jeu avec opengl.
    Par AsmCode dans le forum OpenGL
    Réponses: 2
    Dernier message: 18/10/2005, 16h19
  3. Création liste dans cellules Excel en VBA
    Par yazoo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/04/2005, 14h46
  4. Réponses: 19
    Dernier message: 15/03/2005, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo