public static Mostro CreazioneMostroLocale() { bool check; var classeScelta = new Classe() { }; var armaScelta = new Arma() { }; var livelloScelto = new Livello() { }; var classi = RegoleGioco.ClassiPerMostro(); //SCELTA CLASSE do { Console.WriteLine("Ecco le classi disponibili: "); for (int i = 1; i <= classi.Count; i++) { Console.WriteLine(i + " - " + classi[i - 1].ToString()); } Console.WriteLine("Per scegliere una classe digita il numero corrispondente"); string scelta = Console.ReadLine(); check = Int32.TryParse(scelta, out int res); int indiceClasse = res - 1; //Try-Catch mi serve nel caso venga inserito un intero non valido (non tra le opzioni) try { classeScelta = classi[indiceClasse]; } catch (Exception) { Console.WriteLine("Scelta non valida"); check = false; } } while (check == false); //SCELTA NOME Console.WriteLine("\nScrivi il nome del nuovo {0}", classeScelta.nomeClasse); string nomeMostro; do { nomeMostro = Console.ReadLine().Trim(); //Caso nome vuoto (dato che ho usato trim(), questo caso comprende anche: viene inserito solo l'invio o solo spazi) if (nomeMostro.Length == 0) { Console.WriteLine("\nNome non valido. Per favore, scrivi un altro nome"); check = false; } } while (check == false); //SCELTA ARMA var armi = RegoleGioco.ArmiPerClasse(classeScelta); do { Console.WriteLine("Ecco le armi disponibili per {0}:", nomeMostro); for (int i = 1; i <= armi.Count; i++) { Console.WriteLine(i + " - " + armi[i - 1].NomeArma + " Punti Danno: " + armi[i - 1].PuntiDanno); } Console.WriteLine("Per scegliere un'arma digita il numero corrispondente"); string scelta = Console.ReadLine(); check = Int32.TryParse(scelta, out int res); int indiceArma = res - 1; //Try-Catch mi serve nel caso venga inserito un intero non valido (non tra le opzioni) try { armaScelta = armi[indiceArma]; } catch (Exception) { Console.WriteLine("Scelta non valida"); check = false; } } while (check == false); //SCELTA LIVELLO do { Console.WriteLine("Quale livello vuoi assegnare?"); for (int i = 1; i <= livelli.Count; i++) { Console.WriteLine(i + " - Livello " + livelli[i - 1].Numero + "\tPunti Vita: " + livelli[i - 1].PuntiVita); } Console.WriteLine("Per scegliere un livello digita il numero corrispondente"); string scelta = Console.ReadLine(); check = Int32.TryParse(scelta, out int res); int indiceLivello = res - 1; //Try-Catch mi serve nel caso venga inserito un intero non valido (non tra le opzioni) try { livelloScelto = livelli[indiceLivello]; } catch (Exception) { Console.WriteLine("Scelta non valida"); check = false; } } while (check == false); var mostro = new Mostro(nomeMostro, classeScelta.nomeClasse, armaScelta, livelloScelto) { }; Console.WriteLine("Hai creato un mostro:"); Console.WriteLine(mostro.ToString()); return(mostro); }
public static Eroe CreazioneEroeLocale(Giocatore giocatore) { var classi = RegoleGioco.ClassiPerEroe(); var classeScelta = new Classe() { }; var armaScelta = new Arma() { }; bool check; do { Console.WriteLine("Ecco le classi disponibili: "); for (int i = 1; i <= classi.Count; i++) { Console.WriteLine(i + " - " + classi[i - 1].ToString()); } Console.WriteLine("Per scegliere una classe digita il numero corrispondente"); string scelta = Console.ReadLine(); check = Int32.TryParse(scelta, out int res); int indiceClasse = res - 1; //Se il cast è andato a buon fine if (check == true) { //Try-Catch mi serve nel caso venga inserito un intero non valido (non tra le opzioni) try { classeScelta = classi[indiceClasse]; } catch (Exception) { Console.WriteLine("Scelta non valida"); check = false; } } } while (check == false); //NOME EROE Console.WriteLine("\nScrivi il nome del tuo eroe"); string nomeEroe; do { //Senza spazi a inizio e fine nome nomeEroe = Console.ReadLine().Trim(); //Controllo nome unico check = RegoleGioco.ControlloNomeEroeUnico(nomeEroe); //Caso nomeEroe già esistente if (check == false) { Console.WriteLine("\nSpiacenti, {0} è già in uso. Per favore, scrivi un altro nome", nomeEroe); } //Caso nome vuoto (dato che ho usato trim(), questo caso comprende anche: viene inserito solo l'invio o solo spazi) else if (nomeEroe.Length == 0) { Console.WriteLine("\nNome non valido. Per favore, scrivi un altro nome"); check = false; } } while (check == false); //ARMA do { Console.WriteLine("Ecco le armi disponibili per il tuo eroe:"); var armi = RegoleGioco.ArmiPerClasse(classeScelta); for (int i = 1; i <= armi.Count; i++) { Console.WriteLine(i + " - " + armi[i - 1].NomeArma); } Console.WriteLine("Per scegliere un'arma digita il numero corrispondente"); string scelta = Console.ReadLine(); check = Int32.TryParse(scelta, out int res); int indiceArma = res - 1; //Se il cast è andato bene if (check == true) { //Try-Catch mi serve nel caso venga inserito un intero non valido (non tra le opzioni) try { armaScelta = armi[indiceArma]; } catch (Exception) { Console.WriteLine("Scelta non valida"); check = false; } } } while (check == false); var eroe = new Eroe(nomeEroe, classeScelta.nomeClasse, armaScelta, giocatore.Nome) { }; Console.WriteLine("Hai creato un eroe:"); Console.WriteLine(eroe.ToString()); return(eroe); }