예제 #1
0
파일: Plateau.cs 프로젝트: Astre80/qwirkle
 //Retour la bonne couleur
 public static char testretourcouleur(int PositionX, int PositionY, Tuile tuile)
 {
     char[] Donnee = new char[10];
     Donnee = RecupAutourTuile(PositionX, PositionY);
     //return Donnee[8];
     return(GetCase(PositionX + 1, PositionY).GetForme()); // retourne la couleur a droite
 }
예제 #2
0
파일: Plateau.cs 프로젝트: Astre80/qwirkle
        //Methode - autre


        public static void Init()
        {
            Tuile init = new Tuile(' ', ' ', @"");

            for (int i = 0; i < 20; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    SetCase(i, j, init);
                }
            }
        }
예제 #3
0
파일: Pioche.cs 프로젝트: Astre80/qwirkle
        public static void PiocherCarte(Joueur joueur, int position_tuile)
        {
            if (pioche.Count > 0)
            {
                nb_tuiles = pioche.Count;
                int   alea_nb = aleatoire.Next(nb_tuiles);
                Tuile tuile   = pioche.ElementAt(alea_nb);

                joueur.SetMain(position_tuile, tuile);

                pioche.ElementAt(alea_nb).UtilisationDeTuile();
                if ((pioche.ElementAt(alea_nb)).GetNb_utilisation() == 0)
                {
                    CarteEpuisee(alea_nb);
                }
            }
        }
예제 #4
0
파일: Joueur.cs 프로젝트: Astre80/qwirkle
 public void SetMain(int position, Tuile tuile)
 {
     this.Main[position] = tuile;
 }
예제 #5
0
 public static void SetSwap(Tuile tuile)
 {
     Swap[numecase] = tuile;
     numecase++;
 }
예제 #6
0
파일: Plateau.cs 프로젝트: Astre80/qwirkle
        public static bool ValiderPlacement(int PositionX, int PositionY, Tuile tuile)
        {
            char forme            = tuile.GetForme();
            char couleur          = tuile.GetCouleur();
            bool bonne_ligne      = false;
            int  testpositionX    = PositionX; //reprend la position actuelle de la tuile pour pouvoir la manipuler et checker les tuiles alentours
            int  testpositionY    = PositionY;
            char testX            = 'A';       //lettre au hasard, non existante en code couleur ou forme . Si elle change alors ça indique quel indice il faut tester
            char testY            = 'A';
            int  Nb_pions_lignesX = 0;
            int  Nb_pions_lignesY = 0;

            if (GetCase(PositionX, PositionY).GetCouleur() != ' ') //s'il retourne une couleur, il possède normalement aussi une forme donc aucun besoin de tester. Idem pour les autres tests
            {
                return(false);
            }

            if ((PositionY - 1 >= 0) && (GetCase(PositionX, PositionY - 1).GetCouleur() != ' '))                                                            //Test si case au dessus valide, et si case au dessus
            {
                if ((GetCase(testpositionX, testpositionY - 1).GetCouleur() != couleur) && (GetCase(testpositionX, testpositionY - 1).GetForme() != forme)) //test si couleur et forme différentes
                {
                    return(false);
                }

                if (GetCase(testpositionX, testpositionY - 1).GetCouleur() == couleur) // test si même couleur
                {
                    if (testY == 'A')
                    {
                        testY = couleur;
                    }
                    else
                    {
                        if (testY != couleur)
                        {
                            return(false);
                        }
                    }

                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionY--;
                    while ((testpositionY >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionY >= PositionY - 5))
                    {
                        Nb_pions_lignesY++;
                        if ((GetCase(testpositionX, testpositionY).GetCouleur() != testY) || (GetCase(testpositionX, testpositionY).GetForme() == forme) || (Nb_pions_lignesY > 5))
                        {
                            return(false);
                        }
                        testpositionY--;
                    }
                    if ((testpositionY >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                testpositionX = PositionX;
                testpositionY = PositionY;

                if (GetCase(testpositionX, testpositionY - 1).GetForme() == forme) //test si même forme
                {
                    if (testY == 'A')
                    {
                        testY = forme;
                    }
                    else
                    {
                        if (testY != forme)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionY--;
                    while ((testpositionY >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionY >= PositionY - 5))
                    {
                        Nb_pions_lignesY++;
                        if ((GetCase(testpositionX, testpositionY).GetForme() != testY) || (GetCase(testpositionX, testpositionY).GetCouleur() == couleur) || (Nb_pions_lignesY++ > 5))
                        {
                            return(false);
                        }
                        testpositionY--;
                    }
                    if ((testpositionY >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                bonne_ligne   = true;
                testpositionX = PositionX;
                testpositionY = PositionY;
            }

            if ((PositionY + 1 <= 19) && (GetCase(PositionX, PositionY + 1).GetCouleur() != ' '))                                                           // Test si case en dessous
            {
                if ((GetCase(testpositionX, testpositionY + 1).GetCouleur() != couleur) && (GetCase(testpositionX, testpositionY + 1).GetForme() != forme)) //test si couleur et forme différentes
                {
                    return(false);
                }

                if (GetCase(testpositionX, testpositionY + 1).GetCouleur() == couleur) // test si même couleur
                {
                    if (testY == 'A')
                    {
                        testY = couleur;
                    }
                    else
                    {
                        if (testY != couleur)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionY++;
                    while ((testpositionY <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionY <= PositionY + 5))
                    {
                        Nb_pions_lignesY++;
                        if ((GetCase(testpositionX, testpositionY).GetCouleur() != testY) || (GetCase(testpositionX, testpositionY).GetForme() == forme) || (Nb_pions_lignesY > 5))
                        {
                            return(false);
                        }
                        testpositionY++;
                    }
                    if ((testpositionY <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                testpositionX = PositionX;
                testpositionY = PositionY;

                if (GetCase(testpositionX, testpositionY + 1).GetForme() == forme) //test si même forme
                {
                    if (testY == 'A')
                    {
                        testY = forme;
                    }
                    else
                    {
                        if (testY != forme)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionY++;
                    while ((testpositionY <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionY <= PositionY + 5))
                    {
                        Nb_pions_lignesY++;
                        if ((GetCase(testpositionX, testpositionY).GetForme() != testY) || (GetCase(testpositionX, testpositionY).GetCouleur() == couleur) || (Nb_pions_lignesY > 5))
                        {
                            return(false);
                        }
                        testpositionY++;
                    }
                    if ((testpositionY <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                bonne_ligne   = true;
                testpositionX = PositionX;
                testpositionY = PositionY;
            }

            if ((PositionX - 1 >= 0) && (GetCase(PositionX - 1, PositionY).GetCouleur() != ' '))                                                            //Test si case à gauche
            {
                if ((GetCase(testpositionX - 1, testpositionY).GetCouleur() != couleur) && (GetCase(testpositionX - 1, testpositionY).GetForme() != forme)) //test si couleur et forme différentes
                {
                    return(false);
                }

                if (GetCase(testpositionX - 1, testpositionY).GetCouleur() == couleur) // test si même couleur
                {
                    if (testX == 'A')
                    {
                        testX = couleur;
                    }
                    else
                    {
                        if (testX != couleur)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionX--;
                    while ((testpositionX >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionX >= PositionX - 5))
                    {
                        Nb_pions_lignesX++;
                        if ((GetCase(testpositionX, testpositionY).GetCouleur() != testX) || (GetCase(testpositionX, testpositionY).GetForme() == forme) || (Nb_pions_lignesX > 5))
                        {
                            return(false);
                        }
                        testpositionX--;
                    }
                    if ((testpositionX >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                testpositionX = PositionX;
                testpositionY = PositionY;

                if (GetCase(testpositionX - 1, testpositionY).GetForme() == forme) //test si même forme
                {
                    if (testX == 'A')
                    {
                        testX = forme;
                    }
                    else
                    {
                        if (testX != forme)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionX--;
                    while ((testpositionX >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionX >= PositionX - 5))
                    {
                        Nb_pions_lignesX++;
                        if ((GetCase(testpositionX, testpositionY).GetForme() != testX) || (GetCase(testpositionX, testpositionY).GetCouleur() == couleur) || (Nb_pions_lignesX > 5))
                        {
                            return(false);
                        }
                        testpositionX--;
                    }
                    if ((testpositionX >= 0) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                bonne_ligne   = true;
                testpositionX = PositionX;
                testpositionY = PositionY;
            }

            if ((PositionX + 1 <= 19) && (GetCase(PositionX + 1, PositionY).GetCouleur() != ' '))                                                           //Test si case à droite
            {
                if ((GetCase(testpositionX + 1, testpositionY).GetCouleur() != couleur) && (GetCase(testpositionX + 1, testpositionY).GetForme() != forme)) //test si couleur et forme différentes
                {
                    return(false);
                }

                if (GetCase(testpositionX + 1, testpositionY).GetCouleur() == couleur) // test si même couleur
                {
                    if (testX == 'A')
                    {
                        testX = couleur;
                    }
                    else
                    {
                        if (testX != couleur)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionX++;
                    while ((testpositionX <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionX <= PositionX + 5))
                    {
                        Nb_pions_lignesX++;
                        if ((GetCase(testpositionX, testpositionY).GetCouleur() != testX) || (GetCase(testpositionX, testpositionY).GetForme() == forme) || (Nb_pions_lignesX > 5))
                        {
                            return(false);
                        }
                        testpositionX++;
                    }
                    if ((testpositionX <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                testpositionX = PositionX;
                testpositionY = PositionY;

                if (GetCase(testpositionX + 1, testpositionY).GetForme() == forme) //test si même forme
                {
                    if (testX == 'A')
                    {
                        testX = forme;
                    }
                    else
                    {
                        if (testX != forme)
                        {
                            return(false);
                        }
                    }
                    testpositionX = PositionX;
                    testpositionY = PositionY;
                    testpositionX++;
                    while ((testpositionX <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' ') && (testpositionX <= PositionX + 5))
                    {
                        Nb_pions_lignesX++;
                        if ((GetCase(testpositionX, testpositionY).GetForme() != testX) || (GetCase(testpositionX, testpositionY).GetCouleur() == couleur) || (Nb_pions_lignesX > 5))
                        {
                            return(false);
                        }
                        testpositionX++;
                    }
                    if ((testpositionX <= 19) && (GetCase(testpositionX, testpositionY).GetCouleur() != ' '))
                    {
                        return(false);
                    }
                }
                bonne_ligne   = true;
                testpositionX = PositionX;
                testpositionY = PositionY;
            }

            if (bonne_ligne == true)
            {
                return(true);
            }                                         //fin de verification et validation
            else
            {
                return(false);
            }
        }
예제 #7
0
파일: Plateau.cs 프로젝트: Astre80/qwirkle
 public static void SetCase(int positionX, int positionY, Tuile tuile)
 {
     plateau[positionX, positionY] = tuile;
 }
예제 #8
0
파일: Pioche.cs 프로젝트: Astre80/qwirkle
        //Methode - Autre

        public static void Init()
        {
            pioche.Clear();
            Tuile CarreBleu = new Tuile('B', 'C', @"\ImagesTuiles\CarreBleu.jpg"); //carrés

            pioche.Add(CarreBleu);
            Tuile CarreJaune = new Tuile('J', 'C', @"\ImagesTuiles\CarreJaune.jpg");

            pioche.Add(CarreJaune);
            Tuile CarreOrange = new Tuile('O', 'C', @"\ImagesTuiles\CarreOrange.jpg");

            pioche.Add(CarreOrange);
            Tuile CarreRouge = new Tuile('R', 'C', @"\ImagesTuiles\CarreRouge.jpg");

            pioche.Add(CarreRouge);
            Tuile CarreVert = new Tuile('V', 'C', @"\ImagesTuiles\CarreVert.jpg");

            pioche.Add(CarreVert);
            Tuile CarreViolet = new Tuile('v', 'C', @"\ImagesTuiles\CarreViolet.jpg");

            pioche.Add(CarreViolet);

            Tuile CroixBleue = new Tuile('B', 'c', @"\ImagesTuiles\CroixBleue.jpg"); //croix

            pioche.Add(CroixBleue);
            Tuile CroixJaune = new Tuile('J', 'c', @"\ImagesTuiles\CroixJaune.jpg");

            pioche.Add(CroixJaune);
            Tuile CroixOrange = new Tuile('O', 'c', @"\ImagesTuiles\CroixOrange.jpg");

            pioche.Add(CroixOrange);
            Tuile CroixRouge = new Tuile('R', 'c', @"\ImagesTuiles\CroixRouge.jpg");

            pioche.Add(CroixRouge);
            Tuile CroixVerte = new Tuile('V', 'c', @"\ImagesTuiles\CroixVerte.jpg");

            pioche.Add(CroixVerte);
            Tuile CroixViolet = new Tuile('v', 'c', @"\ImagesTuiles\CroixViolet.jpg");

            pioche.Add(CroixViolet);

            Tuile EtoileBleue = new Tuile('B', 'E', @"\ImagesTuiles\EtoileBleue.jpg"); //etoile

            pioche.Add(EtoileBleue);
            Tuile EtoileJaune = new Tuile('J', 'E', @"\ImagesTuiles\EtoileJaune.jpg");

            pioche.Add(EtoileJaune);
            Tuile EtoileOrange = new Tuile('O', 'E', @"\ImagesTuiles\EtoileOrange.jpg");

            pioche.Add(EtoileOrange);
            Tuile EtoileRouge = new Tuile('R', 'E', @"\ImagesTuiles\EtoileRouge.jpg");

            pioche.Add(EtoileRouge);
            Tuile EtoileVerte = new Tuile('V', 'E', @"\ImagesTuiles\EtoileVerte.jpg");

            pioche.Add(EtoileVerte);
            Tuile EtoileViolet = new Tuile('v', 'E', @"\ImagesTuiles\EtoileViolet.jpg");

            pioche.Add(EtoileViolet);

            Tuile LosangeBleu = new Tuile('B', 'L', @"\ImagesTuiles\LosangeBleu.jpg"); //losange

            pioche.Add(LosangeBleu);
            Tuile LosangeJaune = new Tuile('J', 'L', @"\ImagesTuiles\LosangeJaune.jpg");

            pioche.Add(LosangeJaune);
            Tuile LosangeOrange = new Tuile('O', 'L', @"\ImagesTuiles\LosangeOrange.jpg");

            pioche.Add(LosangeOrange);
            Tuile LosangeRouge = new Tuile('R', 'L', @"\ImagesTuiles\LosangeRouge.jpg");

            pioche.Add(LosangeRouge);
            Tuile LosangeVert = new Tuile('V', 'L', @"\ImagesTuiles\LosangeVert.jpg");

            pioche.Add(LosangeVert);
            Tuile LosangeViolet = new Tuile('v', 'L', @"\ImagesTuiles\LosangeViolet.jpg");

            pioche.Add(LosangeViolet);

            Tuile RondBleu = new Tuile('B', 'R', @"\ImagesTuiles\RondBleu.jpg"); //rond

            pioche.Add(RondBleu);
            Tuile RondJaune = new Tuile('J', 'R', @"\ImagesTuiles\RondJaune.jpg");

            pioche.Add(RondJaune);
            Tuile RondOrange = new Tuile('O', 'R', @"\ImagesTuiles\RondOrange.jpg");

            pioche.Add(RondOrange);
            Tuile RondRouge = new Tuile('R', 'R', @"\ImagesTuiles\RondRouge.jpg");

            pioche.Add(RondRouge);
            Tuile RondVert = new Tuile('V', 'R', @"\ImagesTuiles\RondVert.jpg");

            pioche.Add(RondVert);
            Tuile RondViolet = new Tuile('v', 'R', @"\ImagesTuiles\RondViolet.jpg");

            pioche.Add(RondViolet);

            Tuile TrefleBleu = new Tuile('B', 'T', @"\ImagesTuiles\TrefleBleu.jpg"); //trefle

            pioche.Add(TrefleBleu);
            Tuile TrefleJaune = new Tuile('J', 'T', @"\ImagesTuiles\TrefleJaune.jpg");

            pioche.Add(TrefleJaune);
            Tuile TrefleOrange = new Tuile('O', 'T', @"\ImagesTuiles\TrefleOrange.jpg");

            pioche.Add(TrefleOrange);
            Tuile TrefleRouge = new Tuile('R', 'T', @"\ImagesTuiles\TrefleRouge.jpg");

            pioche.Add(TrefleRouge);
            Tuile TrefleVert = new Tuile('V', 'T', @"\ImagesTuiles\TrefleVert.jpg");

            pioche.Add(TrefleVert);
            Tuile TrefleViolet = new Tuile('v', 'T', @"\ImagesTuiles\TrefleViolet.jpg");

            pioche.Add(TrefleViolet);
        }
예제 #9
0
파일: Pioche.cs 프로젝트: Astre80/qwirkle
 //Methode - Seter
 public static void SetPioche(Tuile tuile)
 {
     pioche.Add(tuile);
 }