示例#1
0
        // Metodo principal del programa
        static void Main()
        {
            // Creamos el bool de error para saltar todo
            bool error = false;
            // Iniciamos la clase map
            Map miMapa = new Map(18, 8);

            // Intentamos leer el archivo
            try
            {
                miMapa.ReadMap("/users/joanm/desktop/adri/practica2fp/mapaEsp.dat");
            }
            // En el caso de que de algun error
            catch (Exception e)
            {
                // Escribe el mensaje de la excepción
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine(e.Message);
                Console.ResetColor();
                // Ponemos error a true para que no ejecute el programa y salga directamente
                error = true;
            }
            if (!error)
            {
                // Creamos el bool finish para saber cuando acaba el game y el de ganar para saber si ha ganado o perdido
                bool finish = false;
                bool ganar  = false;
                // Preguntamos sobre el nombre del jugador
                Console.WriteLine("What's your name in this adventure?");
                string playerName = Console.ReadLine();
                // Iniciamos la clase Player
                Player miJugador = new Player(playerName, miMapa.GetEntryRoom());
                // Limpiamos pantalla y ponemos la información del jugador y del lugar donde esta
                Console.Clear();
                Console.WriteLine(miJugador.GetPlayerInfo());
                InfoPlace(miMapa, miJugador.GetPosition());
                // Bucle principal
                while (!finish)
                {
                    // Leemos el comando que pone el jugador
                    Console.Write("-> ");
                    bool leido = HandleInput(Console.ReadLine(), miJugador, miMapa, out finish); // Devuelve si ha escrito bien el comando, tambien en el caso
                                                                                                 // del comando quit pone finish a true saliendo del bucle
                    // En el caso de que lo haya escrito mal se le da un mensaje de ayuda
                    if (!leido)
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("I didn't understund your answere, try with something else or type \"Help\" to know the controls");
                        Console.ResetColor();
                    }
                    // Vemos si el jugador ya ha llegado a la meta
                    if (ArrivedAtExit(miMapa, miJugador))
                    {
                        // Salimos del bucle y decimos que hemos ganado
                        finish = true;
                        ganar  = true;
                    }
                    else if (!miJugador.IsAlive())
                    {
                        finish = true;                            // Salimos del bucle y ganar esta en false(con lo que saldra que hemos perdido),
                    }
                    // en el caso de tener 0 hp he decidido que ganas ya que has acabado el juego
                }
                // Si ganas sale el mensaje de victoria y en el caso contrario el mensaje de derrota
                if (ganar)
                {
                    Console.WriteLine("Congratulations!! You reach the goal");
                }
                else
                {
                    Console.WriteLine("You lose :(");
                }
            }
            Console.ReadLine();
        }