コード例 #1
0
ファイル: Program.cs プロジェクト: YairMagana/EjemploComando
        public static ReceiverPersonaje SeleccionarTipoPersonaje()
        {
            ReceiverPersonaje personaje = null;
            ConsoleKeyInfo    k;

            do
            {
                Console.Clear();
                Console.WriteLine("Seleccionar Tipo de Personaje:\n\tA. Guerrero Nivel 10\n\tB. Guerrero Nivel 20\n\tC. Guerrero Nivel 30\n\tX. Regresar");
                k = Console.ReadKey();
                switch (k.Key)
                {
                case ConsoleKey.A:
                    personaje = new ReceiverPersonaje(10);
                    break;

                case ConsoleKey.B:
                    personaje = new ReceiverPersonaje(20);
                    break;

                case ConsoleKey.C:
                    personaje = new ReceiverPersonaje(30);
                    break;
                }
            } while (k.Key != ConsoleKey.X && personaje == null);
            return(personaje);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: YairMagana/EjemploComando
        public static AdministradorAcciones IniciarPersonaje(ReceiverPersonaje receiverPersonaje)
        {
            Dictionary <string[], IAcciones> dicAcciones           = new Dictionary <string[], IAcciones>();
            AdministradorAcciones            administradorAcciones = new AdministradorAcciones(dicAcciones);

            administradorAcciones.AgegarComando(new string[] { "A", "Caminar" }, new AccionCaminar(receiverPersonaje));
            administradorAcciones.AgegarComando(new string[] { "S", "Saltar" }, new AccionSaltar(receiverPersonaje));
            administradorAcciones.AgegarComando(new string[] { "D", "Golpear" }, new AccionGolpear(receiverPersonaje));
            administradorAcciones.AgegarComando(new string[] { "F", "Disparar" }, new AccionDisparar(receiverPersonaje));
            administradorAcciones.AgegarComando(new string[] { "1", "Conseguir Lanzagranadas" }, new AccionEquiparLanzagranadas(receiverPersonaje));
            administradorAcciones.AgegarComando(new string[] { "2", "Conseguir Rifle de plasma" }, new AccionEquiparRifle(receiverPersonaje));

            return(administradorAcciones);
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: YairMagana/EjemploComando
        static void Main(string[] args)
        {
            Invocador             invocador = new Invocador();
            ReceiverPersonaje     personaje = null;
            AdministradorAcciones administradorAcciones;

            string menuJuego;

            ConsoleKeyInfo k1;
            ConsoleKeyInfo k2;

            do
            {
                Console.WriteLine("-- MENÚ --\n\nA. Jugar  X. Salir");

                k1 = Console.ReadKey();
                if (k1.Key == ConsoleKey.A)
                {
                    personaje = SeleccionarTipoPersonaje();

                    if (personaje != null)
                    {
                        Console.Clear();
                        administradorAcciones = IniciarPersonaje(personaje);

                        do
                        {
                            menuJuego = GenerarMenuAcciones(administradorAcciones.dicAcciones);
                            Console.WriteLine(menuJuego);
                            k2 = Console.ReadKey();

                            IAcciones accion = administradorAcciones.ObtenerAccion(k2.KeyChar.ToString());
                            if (accion != null)
                            {
                                // ** Ejecución de comandos normales
                                invocador.EstablecerComando(accion);
                                invocador.EjecutarAccion();

                                // ** Detección de comandos Especiales
                                if (accion == administradorAcciones.ObtenerAccion("1"))
                                {
                                    administradorAcciones.AgegarComando(new string[] { "Q", "Disparar Lanzagranadas" }, new AccionDispararLanzagranadas(personaje));
                                    administradorAcciones.RemoverComando("1");
                                }
                                if (accion == administradorAcciones.ObtenerAccion("2"))
                                {
                                    administradorAcciones.AgegarComando(new string[] { "W", "Disparar Rifle de Plasma" }, new AccionDispararRifle(personaje));
                                    administradorAcciones.RemoverComando("2");
                                }
                            }
                            else
                            {
                                Console.WriteLine("...\n");
                            }
                        } while (k2.Key != ConsoleKey.X);
                        Console.Clear();
                    }
                    Console.Clear();
                }
            } while (k1.Key != ConsoleKey.X);
        }