public bool TryHit(Location location) { if (location.X < 0 || location.X >= _mapConfiguration.Width) { throw new InvalidOperationException("X coorinate is out of range."); } if (location.Y < 0 || location.Y >= _mapConfiguration.Height) { throw new InvalidOperationException("X coorinate is out of range."); } if (GetMapCellStatus(location.X, location.Y) != MapCellStatus.Default) { throw new InvalidOperationException("This cell has already been chosen."); } var isHit = Ships.Any(ship => ship.TryHit(location)); if (isHit) { Hits.Add(location); } else { Misses.Add(location); } return(isHit); }
public void play() { while (!isWin) { Console.WriteLine("Entrer une lettre : "); char letter = char.ToUpper(Console.ReadKey(true).KeyChar); int letterIndex = WordToGuess.GetIndexOf(letter); Console.WriteLine(); if (letterIndex != -1) { Console.WriteLine($"Bravo, vous avez trouver la lettre : {letter}"); Guesses.Add(letter); } else { Console.WriteLine($"la lettre {letter} ne se trouve pas dans le mot à deviner !"); Misses.Add(letter); } if (Misses.Count > 0) { Console.WriteLine($"Erreurs ({Misses.Count}) : {string.Join(", ", Misses)}"); } currentWordGuessed = PrintWordToGuess(); if (currentWordGuessed.IndexOf('_') == -1) { isWin = true; Console.WriteLine("Félicitation vous avez gagnez la partie ! "); Console.ReadKey(); } if (Misses.Count >= maxErrors) { Console.WriteLine("Dommage, c'est perdu ! "); Console.ReadKey(); break; } } }
/// <summary> /// Permet de jouer au jeu du pendu. /// </summary> public void Play() { while (!isWin) { Console.WriteLine("Entrez une lettre :"); char letter = char.ToUpper(Console.ReadKey(true).KeyChar); int letterIndex = WordToGuess.GetIndexOf(letter); Console.WriteLine(); if (letterIndex != -1) { Console.WriteLine("Vous avez trouvé la lettre : {0}", letter); Guesses.Add(letter); } else { Console.WriteLine("La lettre {0} ne se trouve pas dans le mot", letter); Misses.Add(letter); } Console.WriteLine($"Erreurs ({Misses.Count}) : {string.Join(", ", Misses)}"); currentWordGuessed = PrintWordToGuess(); if (currentWordGuessed.IndexOf('_') == -1) { isWin = true; Console.WriteLine("Gagné"); Console.ReadKey(); } if (Misses.Count >= maxErrors) { Console.WriteLine("Perdu !"); Console.WriteLine("le mot a trouver était : " + WordToGuess.Text); Console.ReadKey(); break; } } }
/// <summary> /// Permet de jouer au jeu du pendu. /// Cette méthode lit la touche sur laquelle l'utilisateur a appuyé /// jusqu'à ce que la partie soit gagné ou perdue (10 erreurs). /// </summary> public void Play() { while (!isWin) { Console.WriteLine("Donnez moi une lettre :"); char letter = char.ToUpper(Console.ReadKey(true).KeyChar); int letterIndex = WordToGuess.GetIndexOf(letter); Console.WriteLine(); if (letterIndex != -1) { Console.WriteLine("Bravo, vous avez trouvé la lettre : {0}", letter); Guesses.Add(letter); } else { Console.WriteLine("La lettre {0} ne se trouve pas dans le mot à deviner !", letter); Misses.Add(letter); } Console.WriteLine($"Erreurs ({Misses.Count}) : {string.Join(", ", Misses)}"); currentWordGuessed = PrintWordToGuess(); if (currentWordGuessed.IndexOf('_') == -1) { isWin = true; Console.WriteLine("Félicitations, c'est gagné !"); Console.ReadKey(); } if (Misses.Count >= maxErrors) { Console.WriteLine("C'est perdu !"); Console.ReadKey(); break; } } }