Пример #1
0
        private bool LineW(int x, int y, Player p)
        {
            Jeton c = GetElement(x, y);
            int   count = 0, tmp = 0, tx = x, ty = y;

            // Horizontal line right => x + 1, y
            while (c != null && c.Player == p)
            {
                tx = (tx + 1) % 7;
                c  = GetElement(tx, ty);
                tmp++;
            }

            // Horizontal line left => x - 1, y
            tx = (x - 1) % 7;
            c  = GetElement(tx, ty);
            while (c != null && c.Player == p)
            {
                tx = (tx - 1) % 7;
                c  = GetElement(tx, ty);
                tmp++;
            }

            count = tmp;

            // Reinitialize
            tx  = x;
            ty  = y;
            tmp = 0;
            c   = GetElement(tx, ty);

            // Vertical line top => x, y - 1
            while (c != null && c.Player == p)
            {
                ty = (ty - 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            // Vertical line bottom => x, y + 1
            ty = (y + 1) % 6;
            c  = GetElement(tx, ty);
            while (c != null && c.Player == p)
            {
                ty = (ty + 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            count = Math.Max(tmp, count);
            if (count >= 4)
            {
                return(true);
            }
            return(false);
        }
Пример #2
0
        public bool AddToX(int x, Jeton j)
        {
            int y = GetY(x);

            if (y != -1)
            {
                GridElems[x, y] = j;
                return(true);
            }
            return(false);
        }
Пример #3
0
        public FenetrePrincipale()
        {
            InitializeComponent();

            ClientSize = new System.Drawing.Size(Constantes.WIDTH - 6, Constantes.HEIGHT + Constantes.SIZE_H + Constantes.MARGIN_TOP + Constantes.MARGIN_BOTTOM - 6);
            this.grille = new Grille();
            this.jeton = new Jeton(Constantes.WIDTH / 2 - Constantes.SIZE_W / 2, 0);
            initBarreScores();
            initManche();

            Refresh();
        }
Пример #4
0
        private Grid()
        {
            GridElems = new Jeton[7, 6];
            for (int x = 0; x < 7; x++)
            {
                for (int y = 0; y < 6; y++)
                {
                    GridElems[x, y] = null;
                }
            }

            winner = null;
        }
Пример #5
0
        public FenetrePrincipale()
        {
            #region Puissance4
            InitializeComponent();

            ClientSize = new System.Drawing.Size(Constantes.WIDTH - 6, Constantes.HEIGHT + Constantes.SIZE_H + Constantes.MARGIN_TOP + Constantes.MARGIN_BOTTOM - 6);

            this.grille = new Grille();
            this.jeton = new Jeton(joueur, Constantes.WIDTH / 2 - Constantes.SIZE_W / 2, 0);
            #endregion

            initBarreScores();
            initVariables();
            Refresh();
        }
Пример #6
0
 public Player(string name, Texture2D t)
 {
     m_name = name;
     Turn   = false;
     jeton  = new Jeton(t, this);
 }
Пример #7
0
 private void Puissance4_KeyPress(object sender, KeyPressEventArgs e)
 {
     if (e.KeyChar == 'b' || e.KeyChar == 'B')
     {
         if (joueur == "darkVador" && bombesVadorRestantes > 0)
         {
             bombesVadorRestantes--;
             joueur = "bombeVador";
             jeton = new Jeton(joueur, jeton.getPosition().X, jeton.getPosition().Y);
         }
         else if (joueur == "luke" && bombeslukeRestantes > 0)
         {
             bombeslukeRestantes--;
             joueur = "bombeLuke";
             jeton = new Jeton(joueur, jeton.getPosition().X, jeton.getPosition().Y);
         }
         Refresh();
     }
 }
Пример #8
0
        private bool DiagonaleW(int x, int y, Player p)
        {
            Jeton c = GetElement(x, y);
            int   count = 0, tmp = 0, tx = x, ty = y;

            // Descendant droite => x + 1, y - 1
            while (c != null && c.Player == p)
            {
                tx = (tx + 1) % 7;
                ty = (y - 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            // Ascendant gauche => x - 1, y + 1
            tx = (x - 1) % 7;
            ty = (y + 1) % 6;
            c  = GetElement(tx, ty);
            while (c != null && c.Player == p)
            {
                tx = (tx - 1) % 7;
                ty = (ty + 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            count = tmp;

            // Reinitialize
            tmp = 0;
            c   = GetElement(tx, ty);
            tx  = x; ty = y;

            // Descendant gauche => x - 1, y - 1
            while (c != null && c.Player == p)
            {
                tx = (tx - 1) % 7;
                ty = (ty - 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            // Ascendant droite => x + 1, y + 1
            tx = (x + 1) % 7;
            ty = (y + 1) % 6;
            c  = GetElement(tx, ty);
            while (c != null && c.Player == p)
            {
                tx = (tx + 1) % 7;
                ty = (ty + 1) % 6;
                c  = GetElement(tx, ty);
                tmp++;
            }

            count = Math.Max(tmp, count);

            if (count >= 4)
            {
                return(true);
            }
            return(false);
        }