コード例 #1
0
ファイル: PartidaDeCuarenta.cs プロジェクト: xodbox/cuarenta
        /// <summary>
        /// Deals a hand of Cuarenta
        /// </summary>
        /// <param name="numeroDeJugadores">Numbers of players in the Match</param>
        /// <param name="thisPlayer">Which player is this</param>
        /// <param name="dataPlayer">Which player is dealing</param>
        public void Repartir(int numeroDeJugadores, int thisPlayer, int dataPlayer)
        {
            if (numeroDeJugadores != 2 && numeroDeJugadores != 4)
            {
                throw new ArgumentOutOfRangeException();
            }

            //Deal the cards
            int indexPlayer = dataPlayer + 1;

            for (int i = 0; i < numeroDeJugadores; i++)
            {
                if (indexPlayer >= numeroDeJugadores)
                {
                    indexPlayer = 0;
                }
                for (int j = 0; j < 5; j++)
                {
                    Manos[indexPlayer].AnadirArriba(Mazo.TomarTop());
                    if (thisPlayer == indexPlayer)
                    {
                        Manos[indexPlayer].NaipesEnGrupo[j].FaceUp = true;
                    }
                    else
                    {
                        Manos[indexPlayer].NaipesEnGrupo[j].FaceUp = false;
                    }
                }
                indexPlayer++;
            }
        }
コード例 #2
0
ファイル: PartidaDeCuarenta.cs プロジェクト: xodbox/cuarenta
        /// <summary>
        /// Clear everything and shuffle, and call a function to deal the cards
        /// </summary>
        /// <param name="numeroDeJugadores">Number of players in the match</param>
        /// <param name="thisPlayer">Which player is this</param>
        /// <param name="dataPlayer">Which player is dealing</param>
        public void IniciarNuevaData(int numeroDeJugadores, int thisPlayer, int dataPlayer)
        {
            if (numeroDeJugadores != 2 && numeroDeJugadores != 4)
            {
                throw new ArgumentOutOfRangeException();
            }

            //Clear the cards in the hands of the players, in the table and in the whole deck (without the Perros)
            for (int i = 0; i < 4; i++)
            {
                Manos[i].NaipesEnGrupo.Clear();
            }
            NaipesEnMesa.NaipesEnGrupo.Clear();
            Mazo.NaipesEnGrupo.Clear();

            //Create a complete deck without Perros
            foreach (CardPalo palo in Enum.GetValues(typeof(CardPalo)))
            {
                foreach (CardRank rank in Enum.GetValues(typeof(CardRank)))
                {
                    if (rank <= CardRank.Siete || rank >= CardRank.Jota)
                    {
                        Mazo.AnadirArriba(new Naipe(rank, palo));
                        Mazo.NaipesEnGrupo[Mazo.NaipesEnGrupo.Count - 1].FaceUp = false;
                        Mazo.NaipesEnGrupo[Mazo.NaipesEnGrupo.Count - 1].OnGame = true;
                    }
                }
            }
            Mazo.Barajar();
            Repartir(numeroDeJugadores, thisPlayer, dataPlayer);
        }
コード例 #3
0
 public void Reset()
 {
     CartesMostrades.Clear();
     Ma.Clear();
     Mazo.Clear();
     Descartades.Clear();
 }
コード例 #4
0
        public void DeberiaComenzarBienLaPartida()
        {
            Mazo mazo = new Mazo();

            for (int i = 0; i < 10; i++)
            {
                mazo.Cartas.Add(new Carta {
                    Codigo = i.ToString()
                });
            }

            Mazo mazo2 = new Mazo();

            mazo2.Cartas = mazo.Cartas.Where(x => Convert.ToInt32(x.Codigo) >= 0).ToList();

            Partida partida = new Partida(mazo, new Jugador()
            {
                Nombre = "Santi"
            })
            {
                JugadorDos = new Jugador()
                {
                    Nombre = "Mica"
                }
            };

            partida.ComenzarJuego();
            Assert.AreNotEqual(mazo2, partida.Mazo.Cartas);
            Assert.AreEqual(partida.JugadorDos.Cartas.Count, partida.JugadorUno.Cartas.Count);
        }
コード例 #5
0
ファイル: UnitTest1.cs プロジェクト: maximarin/ProgramacionII
        public void DeberiaPoderAsignarUnMazoAUnaPartida()
        {
            var nuevapartida = new Partida();
            var mazoxmen     = new Mazo();

            nuevapartida.Mazo = mazoxmen;

            Assert.AreEqual(mazoxmen, nuevapartida.Mazo);
        }
コード例 #6
0
 public void PosarTotesLesCartesAlMazo()
 {
     Mazo.AddRange(Ma);
     Ma.Clear();
     Mazo.AddRange(CartesMostrades);
     CartesMostrades.Clear();
     Mazo.AddRange(Descartades);
     Descartades.Clear();
 }
コード例 #7
0
 public Jugador(TIPO_JUGADOR tipoJugador)
 {
     this.mazo         = new Mazo();
     this.idCartasMazo = new List <int>();
     this.cartas       = new List <System.Object>();
     this.items        = new List <System.Object>();
     this.nivel        = 1;
     this.experiencia  = 0;
     this.tipoJugador  = tipoJugador;
 }
コード例 #8
0
        static void Main(string[] args)
        {
            Mazo MazoUnJuego = new Mazo(3);

            MazoUnJuego.AgregarCarta(0, 1, "espada");
            MazoUnJuego.AgregarCarta(1, 2, "espada");


            Console.ReadKey();
        }
コード例 #9
0
ファイル: UnitTest1.cs プロジェクト: maximarin/ProgramacionII
        public void SeDeberiaRepartirTodasLasCartas()
        {
            var nuevapartida = new Partida();
            var carta1       = new Carta(); carta1.IdCarta = "1";
            var carta2       = new Carta(); carta2.IdCarta = "2";
            var carta3       = new Carta(); carta3.IdCarta = "3";
            var carta4       = new Carta(); carta4.IdCarta = "4";

            var mazzo = new Mazo();

            mazzo.Cartas.Add(carta1);
            mazzo.Cartas.Add(carta2);
            mazzo.Cartas.Add(carta3);
            mazzo.Cartas.Add(carta4);

            var mazzo2 = new Mazo();

            mazzo2.Cartas.Add(carta1);
            mazzo2.Cartas.Add(carta2);
            mazzo2.Cartas.Add(carta3);
            mazzo2.Cartas.Add(carta4);


            nuevapartida.Mazo = mazzo;

            var jugador1 = new Jugador(); jugador1.NumeroJugador = NumJugador.uno;
            var jugador2 = new Jugador(); jugador1.NumeroJugador = NumJugador.dos;

            nuevapartida.jugadores.Add(jugador1);
            nuevapartida.jugadores.Add(jugador2);

            nuevapartida.RepartirCartas();

            bool ok = false;

            foreach (var item in nuevapartida.jugadores[0].Cartas)
            {
                foreach (var item2 in nuevapartida.jugadores[1].Cartas)
                {
                    if (item == item2)
                    {
                        ok = true;
                    }
                }
            }

            Assert.AreEqual(2, jugador1.Cartas.Count);
            Assert.AreNotEqual(mazzo2, nuevapartida.Mazo);
            Assert.AreEqual(false, ok);

            // Si se juega revancha
            nuevapartida.Revancha();
            Assert.AreEqual(2, nuevapartida.jugadores[0].Cartas.Count);
            Assert.AreEqual(2, nuevapartida.jugadores[1].Cartas.Count);
        }
コード例 #10
0
ファイル: UnitTest1.cs プロジェクト: maximarin/ProgramacionII
        public void NoDeberiaRepartirConMazoVacio()
        {
            Jugador jugador1     = new Jugador().Nombre("Maxi").Numero(NumJugador.uno).IdConexion("1");
            Jugador jugador2     = new Jugador().Nombre("Juan").Numero(NumJugador.dos).IdConexion("2");
            Partida nuevaPartida = new Partida();
            var     mazo         = new Mazo();

            nuevaPartida.Jugador(jugador1).Jugador(jugador2).SetMazo(mazo).EstaCompleto = true;

            nuevaPartida.RepartirCartas();

            Assert.AreEqual(0, nuevaPartida.jugadores[0].Cartas.Count);
        }
コード例 #11
0
ファイル: JuegoTests.cs プロジェクト: PiewDev/CartasCromy-TP
        public void PartidaPermiteMezclarMazo()
        {
            Mazo Carta = new Mazo();

            Carta.CargarMazo("Armas de videojuegos");
            Cartas[] CartasOrdenadas = new Cartas[Carta.Cartas.Count];
            Carta.Cartas.CopyTo(CartasOrdenadas);
            Carta.MazclarCartas();

            bool Iguales = this.comprobarCartasNoMezcladas(CartasOrdenadas.ToList(), Carta.Cartas);


            Assert.IsFalse(Iguales, "El mazo no se mezcló");
        }
コード例 #12
0
        public CartaDominion DonamCartaMazo()
        {
            CartaDominion carta = null;

            if (Mazo.Count == 0)
            {
                PosaCartesDescartadesAlMazo();
            }

            if (Mazo.Count > 0)
            {
                carta = Mazo.Pop();
            }

            return(carta);
        }
コード例 #13
0
ファイル: UnitTest1.cs プロジェクト: maximarin/ProgramacionII
        public void DeberiaPoderControlarCanrtidadDeJugadores()
        {
            var nuevapartida = new Partida();
            var jugador1     = new Jugador();
            var jugador2     = new Jugador();
            var mazo         = new Mazo();

            nuevapartida.Mazo = mazo;
            nuevapartida.jugadores.Add(jugador1);
            nuevapartida.jugadores.Add(jugador2);

            nuevapartida.EstaCompleto = false;
            nuevapartida.RepartirCartas();

            Assert.AreEqual(true, nuevapartida.EstaCompleto);
        }
コード例 #14
0
        public void DebePermitirMezclarMazo()
        {
            List <Carta>    cartasMazoOriginal = new List <Carta>();
            List <Carta>    cartasMazoCopia    = new List <Carta>();
            List <Atributo> atributos          = new List <Atributo>();

            for (int i = 0; i < 10; i++)
            {
                Carta carta = new Carta(i + 1, TipoDeCarta.Normal, atributos);
                cartasMazoOriginal.Add(carta);
                cartasMazoCopia.Add(carta);
            }

            Mazo mazoOriginal = new Mazo(cartasMazoOriginal);
            Mazo mazoCopia    = new Mazo(cartasMazoCopia);

            Jugador jugador = new Jugador("1", "Pepe");

            Partida partida = Partida.CrearVerificarPartida(1, jugador, mazoCopia);

            partida.MezclarMazo();
            bool flag = false;

            for (int i = 0; i < 10; i++)
            {
                if (partida.MazoPartida.Cartas[i].CodigoCarta != mazoOriginal.Cartas[i].CodigoCarta)
                {
                    flag = true;
                    break;
                }
            }
            Assert.AreEqual(true, flag);

            partida.MezclarMazo();
            flag = false;
            for (int i = 0; i < 10; i++)
            {
                if (partida.MazoPartida.Cartas[i].CodigoCarta != mazoOriginal.Cartas[i].CodigoCarta)
                {
                    flag = true;
                    break;
                }
            }
            Assert.AreEqual(true, flag);
        }
コード例 #15
0
        public void DeberiaSerPar()
        {
            Mazo mazo = new Mazo();

            for (int i = 0; i < 10; i++)
            {
                mazo.Cartas.Add(new Carta {
                    Codigo = i.ToString()
                });
            }

            bool   band = false;
            double aux  = Math.Pow((-1), (mazo.Cartas.Count));

            if (aux > 0)
            {
                band = true;
            }
            Assert.AreEqual(band, true);
        }
コード例 #16
0
        public int PuntuacioFinal()
        {
            int puntuacio = 0;
            IList <CartaVictoria> cartaVictorias;

            PosarTotesLesCartesAlMazo();
            cartaVictorias = Mazo.Filtra((c) => c is CartaVictoria).Casting <CartaVictoria>();
            for (int i = 0; i < cartaVictorias.Count; i++)
            {
                if (!(cartaVictorias[i] is Jardins))
                {
                    puntuacio += cartaVictorias[i].Valor;
                }
                else
                {
                    puntuacio += (cartaVictorias[i] as Jardins).PuntsDeVictoria(Mazo);
                }
            }

            return(puntuacio);
        }
コード例 #17
0
ファイル: JuegoTests.cs プロジェクト: PiewDev/CartasCromy-TP
        public void NoPermiteRepartirSinJugadores()
        {
            var juego = new JuegoCromy.JuegoCromy();

            Mazo Carta = new Mazo();

            juego.MazoCompleto = Carta;

            Carta.CargarMazo("Armas de videojuegos");

            Cartas[] CartasOrdenadas = new Cartas[Carta.Cartas.Count];
            Carta.Cartas.CopyTo(CartasOrdenadas);

            juego.RepartirCartas(); // mezcla y reparte las cartas

            bool repartido = juego.Jugador1.Mazo.Count != 0;

            repartido = repartido && juego.Jugador2.Mazo.Count != 0;

            bool noMezclado = this.comprobarCartasNoMezcladas(CartasOrdenadas.ToList(), juego.MazoCompleto.Cartas);


            Assert.IsTrue(noMezclado && !repartido);
        }
コード例 #18
0
ファイル: JuegoTests.cs プロジェクト: PiewDev/CartasCromy-TP
        public void PartidaPermiteRepartirCartas()
        {
            Mazo Carta = new Mazo();

            Carta.CargarMazo("Armas de videojuegos");

            int  cont      = 0;
            bool repetidas = true;

            foreach (var item1 in Carta.Cartas)
            {
                if (repetidas)
                {
                    foreach (var item2 in Carta.Cartas)
                    {
                        cont += item1 == item2 ? 1 : 0;
                    }

                    repetidas = (cont == 1);
                    cont      = 0;
                }
            }

            bool CartasIguales;
            var  juego = new JuegoCromy.JuegoCromy();

            juego.Jugador1.ConectionID = "a";
            juego.Jugador2.ConectionID = "a";
            juego.MazoCompleto         = Carta;
            juego.RepartirCartas();
            CartasIguales = (juego.Jugador1.Mazo.Count == juego.Jugador2.Mazo.Count);


            Assert.IsTrue(CartasIguales, "Los jugadores no tienen la misma cantidad de cartas");
            Assert.IsTrue(repetidas, "Hay dos cartas iguales");
        }
コード例 #19
0
ファイル: MazoTests.cs プロジェクト: AdriCueGim/BlackJack
 protected void SetUp()
 {
     _mazo = new Mazo();
 }
コード例 #20
0
 public void PosaCartesDescartadesAlMazo()
 {
     Descartades.Desordena();
     Mazo.AddRange(Descartades);
     Descartades.Clear();
 }