/// <summary> /// Affiche les plateaux pour les différents joueur, récupère leur réponses et annonce quand la partie est finie. /// </summary> /// <param name="source"></param> /// <param name="e"></param> public static void ChronoMinutes(Object source, ElapsedEventArgs e) { lock (consoleLock) { minutes_elapsed++; secondes_elapsed = 60; Console.Clear(); draw = false; if (minutes_elapsed < nb_Tours) { if (minutes_elapsed % 2 == 0) { for (int ligne = 3; ligne < 8; ligne++) { Console.SetCursorPosition(0, ligne); Console.Write(new string(' ', Console.WindowWidth)); } Console.SetCursorPosition(0, 2); Console.WriteLine(first_player_ID); Console.WriteLine(new string('-', Console.WindowWidth)); first_board.Shuffle(); Console.WriteLine(first_board.ToString()); current_game = first_game; } else { for (int ligne = 3; ligne < 8; ligne++) { Console.SetCursorPosition(0, ligne); Console.Write(new string(' ', Console.WindowWidth)); } Console.SetCursorPosition(0, 2); Console.WriteLine(second_player_ID); Console.WriteLine(new string('-', Console.WindowWidth)); second_board.Shuffle(); Console.WriteLine(second_board.ToString()); current_game = second_game; } Console.WriteLine("Saisir un mot"); Console.SetCursorPosition(0, 15); draw = true; } else { Console.SetWindowSize(75, 7); Console.WriteLine("La partie est finie, appuyez sur une touche pour connaître les résultats"); } } }
static void Main(string[] args) { do { try { Console.Clear(); Menu(); Console.SetWindowSize(85, 25); switch (Int32.Parse(Console.ReadLine())) { case 1: // jeu Console.Clear(); consoleLock = new object(); // Musique de fond WindowsMediaPlayer player_background = new WindowsMediaPlayer(); player_background.URL = musique; player_background.controls.play(); player_background.settings.volume = volume; // Création des dictionnaires SortedList <int, Dictionnaire> liste_dico = new SortedList <int, Dictionnaire>(); for (int taille_dico = 2; taille_dico < 16; taille_dico++) { List <string> dico_words = Dictionnaire.Creation_Dico(taille_dico); Dictionnaire dico = new Dictionnaire(dico_words, taille_dico, "français"); liste_dico.Add(taille_dico, dico); } // Création des joueurs List <string> found_words_first_player = new List <string>(); Joueur first_player = new Joueur(found_words_first_player, 0, first_player_ID); List <string> found_words_second_player = new List <string>(); Joueur second_player = new Joueur(found_words_second_player, 0, second_player_ID); // Création du plateau first_board = new Plateau(); second_board = new Plateau(); // Création du jeu first_game = new Jeu(first_board, liste_dico, first_player); second_game = new Jeu(second_board, liste_dico, second_player); current_game = first_game; // Début du jeu System.Timers.Timer chrono_jeu = new System.Timers.Timer(minute); // Toutes les 60 secondes chrono_jeu.AutoReset = true; chrono_jeu.Enabled = true; chrono_jeu.Elapsed += ChronoMinutes; // Routine du timer System.Timers.Timer temps_restant = new System.Timers.Timer(seconde); // Toutes les secondes temps_restant.AutoReset = true; temps_restant.Enabled = true; temps_restant.Elapsed += ChronoSecondes; // Routine du timer draw = false; minutes_elapsed = 0; secondes_elapsed = 60; Console.SetWindowSize(30, 18); chrono_jeu.Start(); temps_restant.Start(); for (int ligne = 3; ligne < 8; ligne++) { Console.SetCursorPosition(0, ligne); Console.Write(new string(' ', Console.WindowWidth)); } Console.SetCursorPosition(0, 2); Console.WriteLine(first_player_ID); Console.WriteLine(new string('-', Console.WindowWidth)); Console.WriteLine(first_board.ToString()); Console.WriteLine("Saisir un mot"); draw = true; while (minutes_elapsed < nb_Tours) { Console.SetCursorPosition(0, 15); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, 15); submitted_word = Console.ReadLine().ToUpper(); current_game.Tour(submitted_word); } chrono_jeu.Stop(); temps_restant.Stop(); Console.Clear(); player_background.controls.stop(); Ending(); Console.Clear(); Console.SetWindowSize(85, 25); Console.WriteLine(first_player.ToString()); Console.WriteLine(second_player.ToString()); Console.WriteLine("LE GAGNANT EST : " + (first_player.Score == second_player.Score ? "Aucun (égalité)" : (first_player.Score > second_player.Score ? first_player_ID : second_player_ID)) + " !!!"); // On écrit dans l'historique les données de la partie qui vient de se terminer StreamWriter writer = new StreamWriter(File.OpenWrite(@"Historique.txt")); try { DateTime date_ajd = DateTime.Now; if (first_player.Score > second_player.Score) { writer.WriteLine(date_ajd); writer.WriteLine(first_player.ToString()); writer.WriteLine(second_player.ToString()); writer.WriteLine(first_player.Nom); writer.WriteLine("----------------"); } else if (first_player.Score == second_player.Score) { writer.WriteLine(date_ajd); writer.WriteLine(first_player.ToString()); writer.WriteLine(second_player.ToString()); writer.WriteLine("egalité"); writer.WriteLine("----------------"); } else { writer.WriteLine(date_ajd); writer.WriteLine(first_player.ToString()); writer.WriteLine(second_player.ToString()); writer.WriteLine(second_player.Nom); writer.WriteLine("----------------"); } writer.Close(); Console.WriteLine("Appuyez sur une touche pour sortir"); Console.ReadKey(); } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); } break; case 2: // Règles Console.Clear(); Console.WriteLine("Règles : "); Console.WriteLine(" Vous devez trouver un maximum de mots en formant des chaînes de lettres contiguës." + "\nPlus le mot est long, plus les points qu'il vous rapporte sont importants." + "\nVous pouvez passer d'une lettre à la suivante située directement à gauche, à droite, en haut, en bas, ou sur l'une des quatres cases diagonales." + "\nUne lettre ne peut pas être utilisée plus d'une fois pour un même mot." + "\nSeuls les mots de trois lettres ou plus comptent." + "\nLes accents ne sont pas importants. E peut être utilisé comme Ê, É, È etc."); Console.WriteLine("\nAppuyez sur une touche pour sortir"); Console.ReadKey(); break; case 3: // Paramètes Console.Clear(); Menu_Settings(); switch (Int32.Parse(Console.ReadLine())) { case 1: // Changer le nom des joueurs Console.Clear(); Console.WriteLine("Le nom actuel du joueur 1 est : " + first_player_ID + "\nEntrez le nouveau nom du joueur 1 : "); first_player_ID = Console.ReadLine(); Console.Clear(); Console.WriteLine("Le nom actuel du joueur 2 est : " + second_player_ID + "\nEntrez le nouveau nom du joueur 2 : "); second_player_ID = Console.ReadLine(); break; case 2: // Chenger le nombre de tours Console.Clear(); Console.WriteLine("Le nombre de tours actuel par personne est de : " + nb_Tours / 2); Console.WriteLine("Saisissez le nouveau nombre de tours par personnes"); nb_Tours = Int32.Parse(Console.ReadLine()) * 2; break; case 3: // Activer/Désactiver musique Console.Clear(); Console.WriteLine("Paramètre son :"); Console.WriteLine("1 : Activer le son"); Console.WriteLine("2 : Désactiver le son "); Console.WriteLine("Autre : Sortir"); int Choix = Convert.ToInt32(Console.ReadLine()); if (Choix == 1) { volume = 30; } if (Choix == 2) { volume = 0; } break; case 4: // Changer de musique Console.Clear(); Console.WriteLine("Musique : "); Console.WriteLine("1 : Musique par défaut"); Console.WriteLine("2 : Electro "); Console.WriteLine("3 : Jazz "); Console.WriteLine("Autre : Sortir"); int Music_Choice = Convert.ToInt32(Console.ReadLine()); if (Music_Choice == 1) { musique = musique_1; } if (Music_Choice == 2) { musique = musique_2; } if (Music_Choice == 3) { musique = musique_3; } break; default: Console.WriteLine("Il n'y a pas d'options correspondant à ce nombre"); break; } break; case 4: Console.Clear(); Console.WriteLine("Historique :"); try { StreamReader reader = new StreamReader(File.OpenRead(@"Historique.txt")); while (!reader.EndOfStream) { Console.WriteLine(reader.ReadLine()); } reader.Close(); } catch (FileNotFoundException) { Console.WriteLine("Le fichier n'existe pas encore, veuillez au préalable lancer une partie."); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.WriteLine("Appuyez sur une touche pour sortir"); Console.ReadKey(); break; default: Console.WriteLine("Il n'y a pas d'options correspondant à ce nombre"); break; } Console.Clear(); Console.WriteLine("Tapez escape pour sortir ou sur une autre touche pour retourner au menu principal"); } // IO Exception lors de la saisie catch (Exception e) { Console.Clear(); Console.WriteLine(" Erreur de saisie, veuillez saisir ce qui vous est demandé "); Console.WriteLine("Détails de l'exception : \n" + e); } } while (Console.ReadKey().Key != ConsoleKey.Escape); }