Ejemplo n.º 1
0
        /// <summary>
        /// Metodo per controllare se l'eroe sale o meno di livello
        /// e se vince la partita
        /// </summary>
        private static void CheckLivello()
        {
            if (Eroe.Livello.ID != MaxLivello)                           // se ho già raggiunto il maxLivello non controllo
            {
                if (Eroe.PuntiAccumulati > Eroe.Livello.PuntiAccumulati) // se i punti accumulati non superano quelli del livello attuale non controllo
                {
                    Livello nuovoLivello = GetMaxLivelloWithPuntiAccumulatiLessOrEqualThan();
                    if (Eroe.Livello.ID < nuovoLivello.ID)      // se i punti accumulati superano quelli del mio livello ma non superano quelli di un livello successivo non cambio livello
                    {
                        Eroe.Livello            = nuovoLivello; // nuovo livello
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("Congratulazioni! Sei passato al livello: " + Eroe.Livello.ID + "\n");
                        Console.ForegroundColor = ConsoleColor.Cyan;

                        Eroe.PuntiVita = Eroe.Livello.PuntiVita; // aggiorno punti vita
                    }
                }
            }

            if (Eroe.PuntiAccumulati >= Vittoria) // controllo vittoria
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Congratulazioni! Hai vinto con " + Eroe.Nome + "\n");
                Console.ResetColor();
                Console.ForegroundColor = ConsoleColor.Cyan;

                Eroe.HasWon = true;
            }
        }
Ejemplo n.º 2
0
        // visualizza i tasks in base al livello richiesto
        private static void Visualizza()
        {
            Console.WriteLine();
            ConsoleKey key;

            do
            {
                Console.Write("Quale livello vuoi visualizzare (Basso, Medio, Alto, Tutti): ");
                key = Console.ReadKey().Key;
            } while (key != ConsoleKey.B && key != ConsoleKey.M && key != ConsoleKey.A && key != ConsoleKey.T);

            Livello livello = Livello.Tutti;

            switch (key)
            {
            case ConsoleKey.B:
                livello = Livello.Basso;
                break;

            case ConsoleKey.M:
                livello = Livello.Medio;
                break;

            case ConsoleKey.A:
                livello = Livello.Alto;
                break;
            }

            Console.WriteLine();
            Console.WriteLine(taskManager.OttieniElenco(livello, Formato.Plain));
        }
Ejemplo n.º 3
0
        /// <exception cref="ArgumentOutOfRangeException"/>
        /// <exception cref="ArgumentException"/>
        public void Gioca(Livello livello, params int[] numeri)
        {
            int[] a = { 70, 40, 20 };
            _numeriDaEstrarre = a[(int)livello];

            // creo ogni volta un nuovo array così viene inizializzato
            // con tutti false
            _numeriGiocati    = new bool[N + 1];
            ContatoreEstratti = 0;

            foreach (int n in numeri)
            {
                if (n < 1 || n > N)
                {
                    throw new ArgumentOutOfRangeException($"I numeri devono essere compresi tra 1 e {N}");
                }

                // se n è già stato giocato, nell'array _numeriGiocati
                // la cella di indice n contiene true

                if (_numeriGiocati[n])  // se ho già giocato il numero n
                {
                    throw new ArgumentException("I numeri da giocare devono essere diversi");
                }

                _numeriGiocati[n] = true;
            }

            OnGiocoIniziato();

            _gc.Reset();    // per ogni volta che si gioca
            NumeriEstratti.Clear();
            ContatoreIndovinati = 0;
            NumeriIndovinati.Clear();
        }
Ejemplo n.º 4
0
 public Task(string nome, string data, Livello livello, int id)
 {
     Nome = nome;
     Data = data;
     Liv  = livello;
     ID   = id;
 }
Ejemplo n.º 5
0
 public QuestionsVM(int liv)
 {
     actLiv          = App.getLivello(liv);
     domande         = actLiv.Domande;
     actQuestion     = domande[0];
     num_actQuestion = 1;
 }
Ejemplo n.º 6
0
        private void buttonGioca_Click(object sender, EventArgs e)
        {
            Livello livello = Livello.Facile;

            if (radioButtonMedio.Checked)
            {
                livello = Livello.Medio;
            }
            else if (radioButtonDifficile.Checked)
            {
                livello = Livello.Difficile;
            }

            try
            {
                _tombola.Gioca(livello, (int)numericUpDown1.Value,
                               (int)numericUpDown2.Value, (int)numericUpDown3.Value,
                               (int)numericUpDown4.Value, (int)numericUpDown5.Value);
            }
            catch (ArgumentException ex)
            {
                MessageBox.Show(ex.Message, "Tombola", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }
Ejemplo n.º 7
0
        public Task CreaTask(string descrizione, DateTime dataScadenza, Livello livello)
        {
            Task t = new Task(++_id, descrizione, dataScadenza, livello);

            _tasks[t.ID] = t;

            return(t);
        }
Ejemplo n.º 8
0
        public Task CreaTask(string nome, string data, Livello livello)
        {
            Task task = new Task(nome, data, livello, ++_ID);

            _elenco.Add(_ID, task);

            return(task);
        }
Ejemplo n.º 9
0
        public static void AgguingereTask()
        {
            try
            {
                Task[]   tasks    = Task.LetturaTask();
                string[] taskList = new string[3];

                Console.WriteLine("Aggiungi una nuova task:");
                Console.WriteLine("Descrizione:");
                taskList[0] = Console.ReadLine();
                Console.WriteLine("DataScadenza: giorno/mese/anno");
                taskList[1] = Console.ReadLine();
                Console.WriteLine("Livello importanza: 1 basso, 2 medio o 3 alto");
                char a = Console.ReadKey().KeyChar;

                switch (a)
                {
                case '1':
                    Livello x = Livello.Basso;
                    taskList[2] = Convert.ToString(x);
                    break;

                case '2':
                    Livello y = Livello.Medio;
                    taskList[2] = Convert.ToString(y);
                    break;

                case '3':
                    Livello z = Livello.Alto;
                    taskList[2] = Convert.ToString(z);
                    break;

                default:
                    Console.WriteLine("Non è disponibile!");
                    break;
                }
                //taskList[2] = Console.ReadLine();

                Task nuovaTask = new Task
                {
                    Descrizione       = taskList[0],
                    DataScadenza      = taskList[1],
                    LivelloImportanza = taskList[2]
                };

                using (StreamWriter writer = File.AppendText(path)) //scrive alla fine del file
                {
                    writer.Write("\n");
                    writer.WriteLine(nuovaTask.Descrizione + "," + nuovaTask.DataScadenza + "," + nuovaTask.LivelloImportanza);
                }
                Console.WriteLine("Task registrata correttamente");
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Ejemplo n.º 10
0
        public Task(int id, string descrizione, DateTime dataScadenza, Livello livello)
        {
            if (dataScadenza < DateTime.Today)
            {
                throw new ArgumentOutOfRangeException();
            }

            Id           = id;
            Descrizione  = descrizione;
            DataScadenza = dataScadenza;
            Livello      = livello;
        }
Ejemplo n.º 11
0
        public Livello GetById(int ID)
        {
            Livello livello = new Livello();

            foreach (var item in livelli)
            {
                if (item.ID == ID)
                {
                    livello = item;
                }
            }
            return(livello);
        }
Ejemplo n.º 12
0
        public string OttieniElenco(Livello livello, Formato formato)
        {
            string s = "";

            foreach (Task t in _tasks.Values)
            {
                if (livello == Livello.Tutti || t.Livello == livello)
                {
                    s += t.OttieniDati(formato) + '\n';
                }
            }

            return(s);
        }
Ejemplo n.º 13
0
        private static void AggiungiTask()
        {
            //Aggiungi Task
            Livello liv = 0;

            Console.WriteLine("\nInserire il nome del Task:");
            string nome_task = Console.ReadLine();

            Console.WriteLine("Inserire la data di scadenza: [format: 19-Mar-2021]");
            DateTime data_task = new DateTime();

            while (!DateTime.TryParse(Console.ReadLine(), out data_task) || data_task < DateTime.Today)
            {
                Console.WriteLine("Data di scadenza non valida. Inserire un'altra data.");
            }

            string data = data_task.ToShortDateString();
            Task   t;

            Console.Write("Inserire il livello di importanza: \n 1. Basso [b]\n 2. Medio [m] \n 3. Alto [a]\n");

            switch (Console.ReadKey().Key)
            {
            case ConsoleKey.B:
                liv = Livello.Basso;
                t   = gestore.CreaTask(nome_task, data, liv);
                Console.WriteLine($"\nIl Task n.{t.ID} è stato creato.");
                break;

            case ConsoleKey.M:
                liv = Livello.Medio;
                t   = gestore.CreaTask(nome_task, data, liv);
                Console.WriteLine($"\nIl Task n.{t.ID} è stato creato.");
                break;

            case ConsoleKey.A:
                liv = Livello.Alto;
                t   = gestore.CreaTask(nome_task, data, liv);
                Console.WriteLine($"\nIl Task n.{t.ID} è stato creato.");
                break;

            default:
                Console.WriteLine();
                Console.WriteLine("\nScelta non valida. Il task non è stato creato.");
                break;
            }
        }
Ejemplo n.º 14
0
        public static Task [] CreazioneTask(int n)
        {
            Task[] task = new Task[] { };

            for (int i = 0; i < n; i++)
            {
                string[] taskList = new string[3];
                Console.WriteLine("Descrizione:");
                taskList[0] = Console.ReadLine();
                Console.WriteLine("DataScadenza: giorno/mese/anno");
                taskList[1] = Console.ReadLine();
                Console.WriteLine("Livello importanza: 1 basso, 2 medio o 3 alto");
                char a = Console.ReadKey().KeyChar;

                switch (a)
                {
                case '1':
                    Livello x = Livello.Basso;
                    taskList[2] = Convert.ToString(x);
                    break;

                case '2':
                    Livello y = Livello.Medio;
                    taskList[2] = Convert.ToString(y);
                    break;

                case '3':
                    Livello z = Livello.Alto;
                    taskList[2] = Convert.ToString(z);
                    break;

                default:
                    Console.WriteLine("Non è disponibile!");
                    break;
                }
                Task nuovaTask = new Task
                {
                    Descrizione       = taskList[0],
                    DataScadenza      = taskList[1],
                    LivelloImportanza = taskList[2]
                };
                task[i] = nuovaTask;
            }

            return(task);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Metodo per ottenere il massimo livello possibile con i punti accumulati minori o uguali a quelli dell'eroe
        /// </summary>
        /// <returns></returns>
        private static Livello GetMaxLivelloWithPuntiAccumulatiLessOrEqualThan()
        {
            Livello newLivello = Eroe.Livello;

            for (int i = Eroe.Livello.ID; i < ListaLivelli.Count(); i++)
            {
                if (ListaLivelli[i].PuntiAccumulati <= Eroe.PuntiAccumulati)
                {
                    newLivello = ListaLivelli[i];
                }
                else
                {
                    return(newLivello);
                }
            }
            return(newLivello);
        }
Ejemplo n.º 16
0
        public static Hero updateLevel(Hero h)
        {
            var          serviceProvider3 = DIConfiguration.ConfigurazioneLevel();
            LevelService levelService     = serviceProvider3.GetService <LevelService>();

            var     Levels = levelService.GetLivelliInfo();
            Livello l      = new Livello();

            for (int i = 1; i < Levels.Count; i++)
            {
                if (h.score >= Levels[i].score)
                {
                    h.level     = Levels[i].livello;
                    h.lifePoint = Levels[i].lifePoint;
                }
            }
            return(h);
        }
Ejemplo n.º 17
0
        // richiede tutti i dati per la creazione di un nuovo task
        private static void CreaTask()
        {
            string   descrizione;
            DateTime dataScadenza;

            Console.WriteLine();
            Console.Write("Descrizione del task: ");
            descrizione = Console.ReadLine();

            do
            {
                Console.Write("Data di scadenza (a partire da oggi): ");
            } while (!DateTime.TryParse(Console.ReadLine(), out dataScadenza) || dataScadenza < DateTime.Today);

            ConsoleKey key;

            do
            {
                Console.Write("Livello di importanza (Basso, Medio, Alto): ");
                key = Console.ReadKey().Key;
            } while(key != ConsoleKey.B && key != ConsoleKey.M && key != ConsoleKey.A);

            Livello livello = Livello.Basso;    // attribuisco un valore che non testerò nello switch

            switch (key)
            {
            //case ConsoleKey.B:
            //    livello = Livello.Basso;
            //    break;
            case ConsoleKey.M:
                livello = Livello.Medio;
                break;

            case ConsoleKey.A:
                livello = Livello.Alto;
                break;
            }

            Console.WriteLine();

            Task t = taskManager.CreaTask(descrizione, dataScadenza, livello);

            Console.WriteLine($"Task {t.ID} creato.");
        }
Ejemplo n.º 18
0
        public string Filtra(Livello livello)
        {
            string elenco_filtrato = "";

            foreach (Task t in _elenco.Values)
            {
                if (t.Liv == livello)
                {
                    elenco_filtrato += t.descrizioneTask();
                }
            }


            if (elenco_filtrato == "")
            {
                return("Non ci sono task con questo livello di difficoltà");
            }
            else
            {
                return(elenco_filtrato);
            }
        }
Ejemplo n.º 19
0
        public static Mostro ToMostro(this SqlDataReader reader)
        {
            var armaMostro = new Arma()
            {
                NomeArma   = reader["Arma"].ToString(),
                PuntiDanno = (int)reader["PuntiDanno"],
                Classe     = reader["Classe"].ToString()
            };

            var livello = new Livello()
            {
                Numero    = (int)reader["Livello"],
                PuntiVita = (int)reader["PuntiVita"]
            };

            return(new Mostro()
            {
                Nome = reader["NomeMostro"].ToString(),
                Classe = reader["Classe"].ToString(),
                ArmaScelta = armaMostro,
                LivelloMostro = livello
            });
        }
        //non richiamo dal nome
        public Livello GetByName(string name)
        {
            Livello livello = new Livello();

            using (SqlConnection connection = new SqlConnection(connectionstring))
            {
                //Aprire la connessione
                connection.Open();

                //Comando
                SqlCommand command = new SqlCommand();
                command.Connection  = connection;
                command.CommandType = System.Data.CommandType.Text;
                command.CommandText = "SELECT * FROM Livello WHERE Num = @name";

                //Creare il parametro
                SqlParameter param = new SqlParameter();
                param.ParameterName = "@name";
                param.Value         = name;
                command.Parameters.Add(param);


                //Esecuzione comando
                SqlDataReader reader = command.ExecuteReader();

                //Lettura dati
                while (reader.Read())
                {
                    livello = reader.ToLivello();
                }

                //Chiusura
                reader.Close();
                connection.Close();
            }
            return(livello);
        }
Ejemplo n.º 21
0
        //COSTRUTTORE
        public QuestionsVM(int liv, Image img)
        {
            actLiv            = App.getLivello(liv);
            domande           = actLiv.Domande;
            actQuestion       = domande[0];
            num_actQuestion   = 1;
            livelloSuccessivo = new DelegateCommand(_livelloSuccessivo);
            ricomincia        = new DelegateCommand(_ricomincia);
            esci             = new DelegateCommand(_esci);
            coloreContatore  = new SolidColorBrush(Color.FromArgb(80, 255, 255, 255));
            marginePuntatore = new Thickness(291, 335, 139, 353);
            gestorePunt      = new GestorePuntatore(img);
            Cursore          = img;

            timerPunt = new DispatcherTimer();
            // Intervallo ottimo perché l'occhio umano veda qualcosa di fluido
            timerPunt.Interval = TimeSpan.FromMilliseconds(40);
            timerPunt.Tick    += new EventHandler(timer_Tick);

            dimensioneRispostaNord  = 30;
            dimensioneRispostaEst   = 30;
            dimensioneRispostaSud   = 30;
            dimensioneRispostaOvest = 30;

            correct   = false;
            vittoria  = false;
            sconfitta = false;

            risposta                = false;
            punteggio               = 50;
            timerContatore          = new DispatcherTimer();
            timerContatore.Interval = new TimeSpan(0, 0, 0, 1, 0); // 1 sec
            timerContatore.Tick    += new EventHandler(dt_Tick);
            avviaTimer(90);
            timerPunt.Start();
        }
Ejemplo n.º 22
0
 public bool Update(Livello obj)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 23
0
 public void Create(Livello obj)
 {
     throw new NotImplementedException();
 }
        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);
        }