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

Windows Forms Discussion :

Faire un Memory Game en VB (problème)


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut Faire un Memory Game en VB (problème)
    Bonjour !

    Je suis nouvelle et j'apprends depuis peu le VB. Dans le cadre d'un projet, je dois créer un Memory Game, un jeu où il faut trouver 4 cartes identiques (mon jeu comporte 20 cartes, avec 5 cartes différentes). Une fois que l'utilisateur a trouvé 4 cartes identiques, elles "disparaissent". Pour les images, j'ai utilisé des labels et je me pose des questions sur comment je vais faire pour retourner les cartes lorsque l'utilisateur va cliquer sur le dos des cartes.

    J'ai pensé "empiler" les cartes (son dos et le devant) et ensuite faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
        Label21.Show()
        Label1.Hide()
    End Sub
    'Les labels de 1 à 20 représentent le dos(donc identiques) et de 20 à 40 sont le devant(=différentes)
    Mais voilà... cette technique risque d'être un peu longue .. et puis, avec les contrôles sur les images identiques, je ne pense vraiment pas qu'il s'agit d'une bonne méthode ! Surtout que le code risque d'être un peu répétitif si je fais Label2.Click, Label3.Click ... 20 fois ! Il y a également le problème lié à l'image : je ne peux pas comparer deux images (ex: label1.image <> label2.image).

    Je ne sais donc pas comment m'y prendre, ni par où commencer..

    Merci d'avance !

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    tu peux commencer par lire ce cours : http://plasserre.developpez.com/cours/vb-net/
    ca prend quelques dizaines d'heures mais après on est un peu plus paré

    vb.net est un langage orienté objet, il faut donc coder en suivant ce concept
    il te faut donc des classes
    par exemple une classe carte avec l'affichage de chaque face par exemple, et le contenu de la carte
    comme ca au démarrage du défini le nombre de cartes, éventuellement le nombre de cartes identiques par série
    et l'interface peut alors être construite avec une boucle (plutot que de poser les controles à la main)
    et une classe série (= un essai) avec une collection de carte cliquée
    quand la série est remplie, alors tu vérifies que les cartes ont toute le même contenu

    ainsi tu n'as pas de code style label1, tu as du code générique qui s'applique peu importe les cartes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut
    Tout d'abord merci pour votre réponse !
    J'ai également une autre question : pour les cartes j'ai utilisé des labels. Serait-il préférable d'utiliser une pictureBox ou bien cela n'a pas grande importance ? Surtout parce qu'il faut après comparer deux images..

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Si tu codes en poo tu pourras remplacer les labels par des picturebox très facilement. Donc autant partir sur des labels simples avec du texte et quand ca marche tu regardes pour améliorer l'interface.
    Et ca ne sera pas l'image elle même que tu vas comparer mais un identifiant d'image
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

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

    Cela fait plusieurs jours maintenant que je travaille sur ce projet et j'ai encore des difficultés ...
    En premier : je ne vois pas comment retourner les cartes. Je tiens à préciser que comme je viens de débuter, je ne pense pas qu'il nous ait demandé de faire des classes etc.. mais seulement des formules et module.
    Je ne vois également pas comment ajouter des images aux labels : je les ai rajouté "manuellement" par le biais de la fenêtre de propriétés mais je ne suis pas sure s'il s'agit de la bonne façon de faire.. (j'ai entendu dire qu'il fallait mettre un chemin relatif de l'image...)
    Une dernière chose : dans le module, j'ai fait une structure Joueur, caractérisée par entre autre son nom, son meilleur temps etc.. et par la suite j'ai fait un tableau de Joueur pour stocker les joueurs pour, par la suite, mettre les noms dans une combobox au niveau de l'accueil du jeu (l'utilisateur pourra taper un nouveau nom ou selectionner un nom déjà rentré). Je voudrais savoir s'il est préférable de faire un tableau de Joueurs ou un tableau de String ?
    En faisant ça, ma combobox ne fonctionne pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cbox_NomJoueur.DataSource = JeuM.tableauJ
    Merci de votre aide !

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    Citation Envoyé par Obalie Voir le message
    Je tiens à préciser que comme je viens de débuter, je ne pense pas qu'il nous ait demandé de faire des classes etc.. mais seulement des formules et module.
    si le but c'est de faire un truc tout nul, tout moche et que ne suit pas les normes du langage autant que tu te débrouilles
    (ce n'est qu'à moitié une blaque, si le but c'est de coder sans connaissance c'est étrange, et si le but c'est de coder comme sur un langage des années 90 autant rester sur un langage des années 90 plutôt qu'un langage orienté objet)

    concernant le combobox, lui donner une liste de chose c'est bien, mais il faut lui préciser ce qu'il doit afficher pour ces choses
    cmbbox.displaymember = "le nom de la propriété de ta sructure que tu veux afficher"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par Obalie Voir le message
    En premier : je ne vois pas comment retourner les cartes.
    Comme @Pol63 l'a indiqué, tu peux faire une classe carte, qui comprend une face cachée et une face visible et qui gère l'affichage de celle-ci. (un contrôle utilisateur serait parfait). Et dans les faits, tu ne vas pas "retourner" la carte, mais changer son image.

    Un conseil, avant de t'embêter avec la gestion des images, essaye de faire la même chose avec un simple texte (genre des numéros de 1 à 5). Ca va simplifier les choses dans un premier temps. Une fois ton jeu fonctionnel tu pourras t'occuper de la partie design de ton app

    Citation Envoyé par Obalie Voir le message
    Je tiens à préciser que comme je viens de débuter, je ne pense pas qu'il nous ait demandé de faire des classes etc.. mais seulement des formules et module.
    Il y a deux écoles pour ça : faire le minimum syndicale ou essayer de faire au mieux. Si tu essayes dès à présent de manipuler les concepts POO, je peux t'assurer que tu vas gagner du temps par la suite (tu comprendras mieux les cours, tu prendras de l'avance sur le long chemin de l'apprentissage du métier, etc...

Discussions similaires

  1. Un petit Memory game dynamique!
    Par Ivady dans le forum Projets
    Réponses: 22
    Dernier message: 18/07/2009, 17h13
  2. Faire un BMP avec plusieurs PNG, problème de couleur ?
    Par [ZiP] dans le forum Composants VCL
    Réponses: 6
    Dernier message: 09/09/2008, 16h41
  3. Problème unit CRT pour Faire du Pascal avec Delphi
    Par alexmorel dans le forum Débuter
    Réponses: 4
    Dernier message: 01/06/2004, 17h13
  4. Réponses: 7
    Dernier message: 26/02/2004, 09h32
  5. Problème avec memory mapping
    Par gemai dans le forum C
    Réponses: 13
    Dernier message: 04/07/2003, 09h50

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