/// <summary> /// Computes a guess for a user. /// </summary> /// <param name="guess">User's guess in format 12345678, where each number represents a color</param> /// <param name="name">User's nickname</param> /// <returns></returns> internal bool MakeGuess(string guess, string name) { CurrentUsersGuessed.Add(name); Guesses.Add(name, guess); if (Guesses.Count == Users.Count) { return(true); } else { string remainingUsers = ""; lock (Users) { foreach (var user in Users) { if (!CurrentUsersGuessed.Contains(user)) { remainingUsers += user + ", "; } } if (remainingUsers.Length > 0) { RemainingUsers = remainingUsers.Remove(remainingUsers.LastIndexOf(',')); } } return(false); } }
public int CalculateScore(int CurrentGuess) { int runningTotal = 0; Guesses.Add($"{CurrentGuess} @ {DifficultyLevel}"); int score = 0; CurrentGuessCount += 1; if (CurrentGuess == SecretNumber && CurrentGuessCount == 1) { score += 10; } else if (CurrentGuess == SecretNumber && CurrentGuessCount == 2) { score += 6; } else if (CurrentGuess == SecretNumber && CurrentGuessCount == 3) { score += 2; } else { GameOver = true; } if (CurrentGuess == SecretNumber) { LevelComplete = true; } Score = score; return(runningTotal); }
public int CalculateScore(int CurrentGuess) { int runningTotal = 0; //Guesses.Add(CurrentGuess); Guesses.Add($"{CurrentGuess} @ {DifficultyLevel}"); if (CurrentGuess == SecretNumber && CurrentGuessCount == 1) { Score += 10; LevelComplete = true; } else if (CurrentGuess == SecretNumber && CurrentGuessCount == 2) { Score += 6; LevelComplete = true; } else if (CurrentGuess == SecretNumber && CurrentGuessCount == 3) { Score += 2; LevelComplete = true; } else if (CurrentGuessCount >= 3) { GameOver = true; } CurrentGuessCount++; return(runningTotal); }
private void AddWrongAnswers(int maxAnswer, List <GameAnswer> gameAnswers) { string guess; int igameAns = maxAnswer; if (maxAnswer > gameAnswers.Count) { igameAns = gameAnswers.Count; } int maxIteration = gameAnswers.Count * 5; int iterations = 0; Random r = new Random(DateTime.Now.Second); while (Guesses.Count <= igameAns) { if (maxIteration > iterations) { break; } guess = gameAnswers.ElementAt(r.Next(0, gameAnswers.Count - 1)).AnswerString; if (!Guesses.Contains(guess)) { Guesses.Add(guess); } iterations++; } if (Guesses.Count < igameAns) { ForceAnswers(gameAnswers, igameAns); } }
public void UpdateGuesses(List <Guess> list) { foreach (Guess g in list) { if (!CheckAlreadyInside(g)) { Guesses.Add(g); } } }
private void DivideAllProdsBy(int n) { Guesses.Add(n); for (int i = 0; i < Products.Count; i++) { if (Products[i] % n == 0) { Products[i] /= n; } } }
private void ForceAnswers(List <GameAnswer> ga, int igameAns) { foreach (GameAnswer item in ga) { if (!Guesses.Contains(item.AnswerString)) { if (Guesses.Count <= igameAns) { Guesses.Add(item.AnswerString); } } } }
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; } } }
void RunGameLoop() { HangmanConsoleWriter.PrintGuesses(Guesses); GenerateTiles(); var guess = HangmanConsoleWriter.RequestInput(); if (HangmanInputValidation.ValidateInput(guess)) { var guessCharacter = guess[0]; Guesses.Add(guessCharacter); if (!WordToGuess.Contains(guessCharacter)) { NumberOfWrongGuesses++; } else { if (HaveWeWonYet()) { GameIsOngoing = false; HangmanConsoleWriter.WinnerOutput(WordToGuess); return; } } } else { HangmanConsoleWriter.InvalidGuess(); } DrawHangman(); CheckNumberOfWrongGuesses(); }
private async Task PotentialGuess(SocketMessage msg) { try { if (!(msg is SocketUserMessage)) { return; } if (msg.Channel != GameChannel) { return; // message's channel has to be the same as game's } if (msg.Content.Length == 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return; } var guess = char.ToUpperInvariant(msg.Content[0]); if (Guesses.Contains(guess)) { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } await End().ConfigureAwait(false); return; } MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } else { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } } catch (Exception ex) { _log.Warn(ex); } }
public void CompleteRound(int index) { Guesses.Add(PossibleLetters[index]); AppendSecretWord(index); }
private async Task PotentialGuess(SocketMessage msg) { try { if (!(msg is SocketUserMessage)) { return; } if (msg.Channel != GameChannel) { return; // message's channel has to be the same as game's } if (msg.Content.Length == 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } catch { } } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return; } var guess = char.ToUpperInvariant(msg.Content[0]); if (Guesses.Contains(guess)) { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); /*int HangmanCurrencyRewardAll = 5; * int HangmanCurrencyRewardLetter = 1;*/ if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } // giving reward if (NadekoBot.BotConfig.HangmanCurrencyRewardAll > 0) { await CurrencyHandler.AddCurrencyAsync(msg.Author, $"Received {NadekoBot.BotConfig.CurrencyPluralName}", NadekoBot.BotConfig.HangmanCurrencyRewardAll, false).ConfigureAwait(false); await GameChannel.SendConfirmAsync($"**{msg.Author}** received {NadekoBot.BotConfig.HangmanCurrencyRewardAll} {NadekoBot.BotConfig.CurrencySign}!").ConfigureAwait(false); } await End().ConfigureAwait(false); return; } MessagesSinceLastPost = 0; try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); if (NadekoBot.BotConfig.HangmanCurrencyRewardLetter > 0) { await CurrencyHandler.AddCurrencyAsync(msg.Author, $"Received {NadekoBot.BotConfig.CurrencyPluralName}", NadekoBot.BotConfig.HangmanCurrencyRewardLetter, false).ConfigureAwait(false); await GameChannel.SendConfirmAsync($"**{msg.Author}** received {NadekoBot.BotConfig.HangmanCurrencyRewardLetter} {NadekoBot.BotConfig.CurrencySign}!").ConfigureAwait(false); } } catch { } } else { MessagesSinceLastPost = 0; ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman(), footer : string.Join(" ", Guesses)).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } } catch (Exception ex) { _log.Warn(ex); } }
private Task PotentialGuess(IMessage msg) { if (msg.Channel != GameChannel) { return(Task.CompletedTask); // message's channel has to be the same as game's } if (msg.Content.Length != 1) // message must be 1 char long { if (++MessagesSinceLastPost > 10) { MessagesSinceLastPost = 0; Task.Run(async() => { try { await GameChannel.SendConfirmAsync("Hangman Game", ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } catch { } }); } return(Task.CompletedTask); } if (!(char.IsLetter(msg.Content[0]) || char.IsDigit(msg.Content[0])))// and a letter or a digit { return(Task.CompletedTask); } var guess = char.ToUpperInvariant(msg.Content[0]); // todo hmmmm // how do i want to limit the users on guessing? // one guess every 5 seconds if wrong? Task.Run(async() => { try { if (Guesses.Contains(guess)) { ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` has already been used.\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } return; } Guesses.Add(guess); if (Term.Word.ToUpperInvariant().Contains(guess)) { if (GuessedAll) { try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!").ConfigureAwait(false); } catch { } await End().ConfigureAwait(false); return; } try { await GameChannel.SendConfirmAsync("Hangman Game", $"{msg.Author.Mention} guessed a letter `{guess}`!\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } catch { } } else { ++Errors; if (Errors < MaxErrors) { await GameChannel.SendErrorAsync("Hangman Game", $"{msg.Author.Mention} Letter `{guess}` does not exist.\n" + ScrambledWord + "\n" + GetHangman()).ConfigureAwait(false); } else { await End().ConfigureAwait(false); } } } catch { } }); return(Task.CompletedTask); }