static void ProcesaInput(string com, player p, map m, Lista mem) { if (com == "go north") { Console.Clear(); p.Move(m, Direction.North); //mueve al jugador EnemiesAttackPlayer(m, p); //si hay enemigos en la dungeon donde se encuentra el jugador, estos le atacan Console.WriteLine(m.GetDungeonInfo(p.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador } //norte else if (com == "go east") { Console.Clear(); p.Move(m, Direction.East); //mueve al jugador EnemiesAttackPlayer(m, p); //si hay enemigos en la dungeon donde se encuentra el jugador, estos le atacan Console.WriteLine(m.GetDungeonInfo(p.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador } //este else if (com == "go south") { Console.Clear(); p.Move(m, Direction.South); //mueve al jugador EnemiesAttackPlayer(m, p); //si hay enemigos en la dungeon donde se encuentra el jugador, estos le atacan Console.WriteLine(m.GetDungeonInfo(p.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador } //sur else if (com == "go west") { Console.Clear(); p.Move(m, Direction.West); //mueve al jugador EnemiesAttackPlayer(m, p); //si hay enemigos en la dungeon donde se encuentra el jugador, estos le atacan Console.WriteLine(m.GetDungeonInfo(p.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador } //oeste else if (com == "enemies") { Console.WriteLine(m.GetEnemiesInfo(p.GetPosition()) + "\n"); //mustra la informacion de todos los enemigos que hay en la dungeon donde se encuantra el jugador } else if (com == "attack") { Console.WriteLine("Numero de enemigos eliminados " + PlayerAttackEnemies(m, p) + "\n"); //ataca a los enemigos que se encuantran en la dungeon EnemiesAttackPlayer(m, p); //si hay enemigos en la dungeon donde se encuentra el jugador, estos le atacan } //atacar else if (com == "status") { Console.WriteLine(p.PrintStatus() + "\n"); //imprime status del jugador } else if (com == "info") { Console.WriteLine(m.GetDungeonInfo(p.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador Console.WriteLine(m.GetMoves(p.GetPosition()) + "\n"); //muestra las posibles direcciones en las que se pueden mover el jugador } if (com.Contains("go") || com.Contains("attack")) { GuardaProgreso(mem, com); } }
static void Main(string[] args) { map mapa = new map(10, 3); //inicializa el mapa mapa.ReadMap("HauntedHouse.map"); //lee el mapa de archivo player ply = new player(); bool jugando = true; string[] comandos = { "go north", "go east", "go west", "go south", "enemies", "attack", "info", "status", "quit" }; Lista mem = new Lista(); Console.WriteLine("Que deseas hacer? Cargar partida de archivo(1) o jugar(2)"); int resp = int.Parse(Console.ReadLine()); if (resp == 1) { Lectura(ply, mapa, ref jugando, mem); } else { Console.Clear(); Console.WriteLine(mapa.GetDungeonInfo(ply.GetPosition()) + "\n"); //muestra la informacion de la dungeon en la que se encuantra el jugador } //Lectura(ply, mapa, ref jugando, ref mem); while (jugando) { Console.Write("> "); string comando = Console.ReadLine(); comando = comando.ToLower(); while (!ComandoValido(comandos, comando)) { Console.WriteLine("Comando no valido"); Console.Write("> "); comando = Console.ReadLine(); } //en el caso de recibir un comando no valido if (comando == "quit") { jugando = false; //el jugador sale del juego GrabaPartida(mem, "memory"); } else { ProcesaInput(comando, ply, mapa, mem); //procesa el input if (!ply.IsAlive()) //si has muerto tras el ataque { Console.Clear(); Console.WriteLine("Has muerto"); jugando = false; } else if (ply.atExit(mapa)) //si has llegado a una salida { Console.Clear(); jugando = false; Console.WriteLine("Enhorabuena, has encontrado una salida"); //si llegas a una salida se termina el juego } } } //bucle de juago }