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 :

Problème de condition pour le Jeu OXO


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de condition pour le Jeu OXO
    Bonjour les Developpez,

    Je suis un débutant et je ne suis pas calé en programmation.
    Prière m'apportez votre aide pour l'avancement de mon projet.
    Bref, Je suis entrain de faire le jeu OXO en C#
    Depuis un bon bout je suis bloqué au niveau des conditions.
    Mon objectif est de faire ressortir un messageBox lorsque les A ou B sont alignées en lignes ou en diagonales (A A A / B B B), en plus que le jeu recommence en cliquant sur le messageBox.
    Lorsque j'écris les conditions sur le joueur A, il ne reconnait pas la lettre A pourtant cette lettre s'affiche sur mes buttons après un clic. Comme sous l'image ci dessous.

    Nom : Capture.JPG
Affichages : 192
Taille : 30,6 Ko


    voici aussi mon Code:

    "
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace Games
    {
    public partial class Form1 : Form
    {
    int i;


    public Form1()
    {
    InitializeComponent();
    }

    /*private void button1_Click(object sender, EventArgs e)
    {

    }
    */
    private void Form1_Load(object sender, EventArgs e)
    {
    //if (button1.Text == button2.Text && button2.Text == button3.Text && button1.Text == "A")
    if (button1.Text == A && button2.Text == A && button3.Text == A )
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    //if (button6.Text == button5.Text && button5.Text == button4.Text && button6.Text == A)
    if (button4.Text == A && button5.Text == A && button6.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    //if (button9.Text == button8.Text && button8.Text == button7.Text && button9.Text == A)
    if (button7.Text == A && button8.Text == A && button9.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    // if (button1.Text == button4.Text && button4.Text == button7.Text && button1.Text == A)
    if (button1.Text == A && button4.Text == A && button7.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    //if (button2.Text == button5.Text && button5.Text == button8.Text && button2.Text == A)
    if (button2.Text == A && button5.Text == A && button8.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    //if (button3.Text == button6.Text && button6.Text == button9.Text && button3.Text == A)
    if (button3.Text == A && button6.Text == A && button9.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    // if (button1.Text == button5.Text && button5.Text == button9.Text && button1.Text == A)
    if (button1.Text == A && button5.Text == A && button9.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    //if (button3.Text == button5.Text && button5.Text == button7.Text && button3.Text == A)
    if (button3.Text == A && button5.Text == A && button7.Text == A)
    {
    MessageBox.Show("Joueur" + A + "à GAGNER");
    NewJeu();
    }
    else if (i == 9)
    {
    MessageBox.Show("Jeu Perdu");
    NewJeu();
    }

    }

    private void button10_Click(object sender, EventArgs e)
    {
    Application.Exit();

    }

    private void button11_Click (object sender, EventArgs e)

    {
    button1.Text = button2.Text =
    button3.Text = button4.Text =
    button5.Text = button6.Text =
    button7.Text = button8.Text =
    button9.Text = "";

    i = 0;

    }
    public void NewJeu()
    {
    button1.Text = button2.Text =
    button3.Text = button4.Text =
    button5.Text = button6.Text =
    button7.Text = button8.Text =
    button9.Text = "";

    i = 0;
    MessageBox.Show("Jeu Perdu");
    NewJeu();
    }

    private void labelScoreA_Click(object sender, EventArgs e)
    {

    }

    private void labelScoreB_Click(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (i < 9 && button1.Text == "")
    if (i % 2 == 0)
    button1.Text = "A";
    else
    button1.Text = "B";
    i++;
    }

    private void button2_Click_1(object sender, EventArgs e)
    {
    if (i < 9 && button2.Text == "")
    if (i % 2 == 0)
    button2.Text = "A";
    else
    button2.Text = "B";
    i++;
    }

    private void button3_Click_1(object sender, EventArgs e)
    {

    if (i < 9 && button3.Text == "")
    if (i % 2 == 0)
    button3.Text = "A";
    else
    button3.Text = "B";
    i++;
    }

    private void button4_Click_1(object sender, EventArgs e)
    {
    if (i < 9 && button4.Text == "")
    if (i % 2 == 0)
    button4.Text = "A";
    else
    button4.Text = "B";
    i++;
    }

    private void button5_Click_1(object sender, EventArgs e)
    {

    if (i < 9 && button5.Text == "")
    if (i % 2 == 0)
    button5.Text = "A";
    else
    button5.Text = "B";
    i++;
    }

    private void button6_Click_1(object sender, EventArgs e)
    {

    if (i < 9 && button6.Text == "")
    if (i % 2 == 0)
    button6.Text = "A";
    else
    button6.Text = "B";
    i++;
    }

    private void button7_Click_1(object sender, EventArgs e)
    {
    if (i < 9 && button7.Text == "")
    if (i % 2 == 0)
    button7.Text = "A";
    else
    button7.Text = "B";
    i++;
    }

    private void button8_Click_1(object sender, EventArgs e)
    {
    if (i < 9 && button8.Text == "")
    if (i % 2 == 0)
    button8.Text = "A";
    else
    button8.Text = "B";
    i++;
    }

    private void button9_Click_1(object sender, EventArgs e)
    {

    if (i < 9 && button9.Text == "")
    if (i % 2 == 0)
    button9.Text = "A";
    else
    button9.Text = "B";
    i++;
    }


    }
    }
    "

    Merci d'avance pour votre votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Tu as déjà toute ta panoplie de test de victoire, il faut juste modifier tes A par des "A" (button1.Text == "A" && button4.Text == "A")
    Tu devrait tous les placer dans une fonction 'TestWin ' par exemple et l'appeler après que quelqu'un à jouer un coup.

    Je ne comprend pas le code dans 'NewJeu', tu doit définir vide pour chaque bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    button1.Text = "";
    button2.Text = "";
    button3.Text = "";
    ...
    Je pense que c'est un bon jeu pour commencer à développer et nous pourront grandement l'améliorer mais essayons déjà de le faire fonctionner

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous;

    Merci pour ton intervention, bref le code que tu dis ne pas comprendre permet réinitialiser les cases de mon jeu.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 183
    Points : 5 754
    Points
    5 754
    Par défaut
    Ok ça marche

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 72
    Points : 135
    Points
    135
    Par défaut
    Salut !

    Voilà un petit truc qui t'aideras dans tes développements.

    Crée la fonction suivante et relie le clic des 9 boutons de jeu sur celle ci. Tu pourras ainsi supprimer les 9 autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void buttonN_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;  //sender représente l'objet appelant. En mettant (Button) devant, on assume que l'objet est un button.
        if (i < 9 && btn.Text == "")
        if (i % 2 == 0)
            btn.Text = "A";
        else
            btn.Text = "B";
        i++;
    }
    Et, comme le dit si justement ericlm128, place un test de victoire à la fin, juste avant l'accolade finale.

    Concernant le test de victoire, tu as une multitude de méthodes utilisables. Depuis la comparaison des valeurs dans les .Text des boutons, comme tu le fait, à une comparaison bit à bit.

    [Quelques minutes plus tard...]
    Finalement, je t'ai fais un petit exemple avec de petites astuces en pièce jointe. Pas de binaires, il faudra compiler.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Problème de plateforme pour un jeu de plateforme
    Par Guiguimon dans le forum SDL
    Réponses: 4
    Dernier message: 26/10/2009, 16h01
  2. problème de typage pour un jeu d'échec
    Par chlab dans le forum Caml
    Réponses: 2
    Dernier message: 02/08/2009, 10h11
  3. Problème de condition pour un formulaire
    Par druzillia dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2008, 14h07
  4. Réponses: 6
    Dernier message: 15/06/2006, 15h15
  5. Problème d'accelération pour un jeu
    Par jbidou88 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 08/05/2006, 10h16

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