Ejemplo n.º 1
0
        /// <summary>
        /// Fonction qui permet de savoir si un déplacement est potentiellement faisable, sans tenir compte des points de déplacement de l'unité qui veut se déplacer.
        /// </summary>
        /// <param name="xdep"> la Colonne correspondant à la case de départ </param>
        /// <param name="ydep">  le rang correspondant à la case de départ </param>
        /// <param name="xarr"> la Colonne correspondant à la case d'arrivée </param>
        /// <param name="yarr">  le rang correspondant à la case de d'arrivée </param>
        /// <param name="casedep">  la case de départ </param>
        /// <param name="casearr"> la case d'arrivée </param>
        /// <param name="nompeuple">  le nom du peuple de joueur qui tente de déplacer une unité </param>
        /// <returns> Rend vrai si le déplacement est acceptale. Faux sinon.</returns>
        private Boolean isMoveAllowed(int xdep, int ydep, int xarr, int yarr, Case casedep, Case casearr, Peuple.NomPeuple nompeuple)
        {
            switch (nompeuple)
            {
            case Peuple.NomPeuple.GAULOIS:
                if (!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr))
                {
                    return(false);
                }
                if (casearr.getType() == Case.TypeCase.EAU)
                {
                    return(false);
                }
                break;

            case Peuple.NomPeuple.NAINS:
                if ((!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr)) && casearr.getType() != Case.TypeCase.MONTAGNE)
                {
                    return(false);
                }
                if ((!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr)) && (casearr.getType() == Case.TypeCase.MONTAGNE) && (casedep.getType() != Case.TypeCase.MONTAGNE))
                {
                    return(false);
                }
                if (casearr.getType() == Case.TypeCase.EAU)
                {
                    return(false);
                }
                break;

            default:
                if (!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr))
                {
                    return(false);
                }
                break;
            }
            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Fonction qui permet de savoir si un combat peut avoir lieu entre des unités de la case d'arrivée(defenseur) et des unités de la case de départ(attaquant). Elle ne tient pas compte du fait qu'u
        /// </summary>
        /// <param name="xdep"> la Colonne correspondant à la case de départ </param>
        /// <param name="ydep">  le rang correspondant à la case de départ </param>
        /// <param name="xarr"> la Colonne correspondant à la case d'arrivée </param>
        /// <param name="yarr">  le rang correspondant à la case de d'arrivée </param>
        /// <param name="casedep">  la case de départ </param>
        /// <param name="casearr"> la case d'arrivée </param>
        /// <param name="nompeuple">  le nom du peuple de joueur qui tente de provoquer un combat </param>
        /// <returns> Rend vrai si le combat est acceptale. Faux sinon.</returns>
        private Boolean isFightAllowed(int xdep, int ydep, int xarr, int yarr, Case Casedep, Case casearr, Peuple.NomPeuple nompeuple)
        {
            switch (nompeuple)
            {
            case Peuple.NomPeuple.VIKINGS:
                if (!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr))
                {
                    return(false);
                }
                break;

            default:     // nains et gaulois
                if (!WrapperAlgo.isAdjacentCase(xdep, ydep, xarr, yarr))
                {
                    return(false);
                }
                if (casearr.getType() == Case.TypeCase.EAU)
                {
                    return(false);
                }
                break;
            }
            return(true);
        }