protected void ButtonGiveUp_Click(object sender, EventArgs e) { WordGuess wordguess = new WordGuess(); wordguess = (WordGuess)Session["wordguess"]; ImageBase.ImageUrl = "~/Images/State" + 6 + ".png"; AutoGenerateWordDisplay(wordguess); ReStart(); LabelStatus.Text = "You Lose"; }
public void AutoGenerateWordDisplay(WordGuess wordguess) { wordguess.letters.Clear(); foreach (char letter in wordguess.theWord.word) { if (!wordguess.letters.Contains(letter)) { wordguess.letters.Add(letter); } } GenerateWordDisplay(wordguess); }
protected void ButtonGuess_Click(object sender, EventArgs e) { WordGuess wordguess = new WordGuess(); wordguess = (WordGuess)Session["wordguess"]; LabelStatus.Text = ""; wordguess.wordprogress = ""; try { char guessletter = TextBoxGuess.Text.ToLower().First(); if (!wordguess.letters.Contains(guessletter)) { wordguess.letters.Add(guessletter); GenerateWordDisplay(wordguess); if (!wordguess.theWord.word.Contains(guessletter)) { wordguess.guesscounter++; } if (wordguess.wordprogress == wordguess.theWord.word) { ReStart(); LabelStatus.Text = "You win!"; } ImageBase.ImageUrl = "~/Images/State" + wordguess.guesscounter + ".png"; if (wordguess.guesscounter > 5) { AutoGenerateWordDisplay(wordguess); ReStart(); LabelStatus.Text = "You Lose"; } LabelMissWords.Text = wordguess.DisplayMissedLetters(); } else { LabelStatus.Text = "You already gave that letter"; } } catch (Exception) { LabelStatus.Text = "Please enter a letter"; } TextBoxGuess.Text = ""; }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { JObject jo = JObject.Load(reader); bool? isLetterGuess = (bool?)jo["IsLetter"]; bool? isLetterGuess2 = (bool?)jo["isLetter"]; Guess item; if (isLetterGuess.GetValueOrDefault() || isLetterGuess2.GetValueOrDefault()) { item = new CharGuess(); } else { item = new WordGuess(); } serializer.Populate(jo.CreateReader(), item); return(item); }
protected void ButtonStart_Click(object sender, EventArgs e) { int previousword = 0; string previouscategory = "Animals"; if (Session["previousword"] != null) { previousword = (int)Session["previousword"]; } if (Session["previousword"] != null) { previouscategory = (string)Session["previouscategory"]; } WordGuess wordguess = new WordGuess(); WordGen word = new WordGen(); wordguess.theWord = word; wordguess.theWord.ChooseTopic(DropDownListCategories.SelectedValue, previousword, previouscategory); Session["previousword"] = wordguess.theWord.words.ToList().FindIndex(a => a == wordguess.theWord.word); Session["previouscategory"] = DropDownListCategories.SelectedValue; wordguess.letters.Clear(); wordguess.missedletters.Clear(); LabelMissWords.Text = wordguess.DisplayMissedLetters(); wordguess.ResetCounter(); wordguess.WordLength(wordguess.theWord); ImageBase.ImageUrl = "~/Images/State" + 0 + ".png"; ButtonGiveUp.Visible = true; TextBoxGuess.Visible = true; ButtonGuess.Visible = true; LabelWordToGuess.Visible = true; LabelWordToGuess.Text = ""; LabelWordToGuess.Text = wordguess.wordprogress; LabelMissWords.Visible = true; LabelStatus.Text = ""; LabelCategories.Visible = false; DropDownListCategories.Visible = false; ButtonStart.Visible = false; Session["wordguess"] = wordguess; }
private bool compareWords(WordGuess firstWordGuess, WordGuess secondWordGuess) { var firstWordModel = new WordModel { Word = firstWordGuess.Word.ToLower().Trim() }; var secondWordModel = new WordModel { Word = secondWordGuess.Word.ToLower().Trim() }; var stringArray = new string[] { firstWordModel.Word, secondWordModel.Word }; var metaphone = new Metaphone(); var soundex = new Soundex(); var similarMetaphone = metaphone.IsSimilar(stringArray); var similarSoundex = soundex.IsSimilar(stringArray); return(similarMetaphone || similarSoundex); }
public void GenerateWordDisplay(WordGuess wordguess) { string wordprogressdisplay = ""; bool lettermatch = false; //first letter of secound word bool twofirst = false; int lettercount = 1; foreach (char letter in wordguess.theWord.word) { if (letter == ' ') { twofirst = true; wordguess.wordprogress = wordguess.wordprogress + ' '; wordprogressdisplay = wordprogressdisplay + " "; } else { foreach (char givenletter in wordguess.letters) { if (letter == givenletter) { char displayletter = givenletter; if (lettercount == 1 || twofirst) { displayletter = displayletter.ToString().ToUpper().First(); } if (lettercount == wordguess.theWord.word.Length) { wordprogressdisplay = wordprogressdisplay + displayletter; } else { wordprogressdisplay = wordprogressdisplay + displayletter + " "; } wordguess.wordprogress = wordguess.wordprogress + givenletter; lettermatch = true; } else { if (!wordguess.missedletters.Contains(givenletter) && !wordguess.theWord.word.Contains(givenletter)) { wordguess.missedletters.Add(givenletter); } } } twofirst = false; if (!lettermatch) { if (lettercount == wordguess.theWord.word.Length) { wordprogressdisplay = wordprogressdisplay + "_"; } else { wordprogressdisplay = wordprogressdisplay + "_ "; } } lettermatch = false; } lettercount++; } LabelWordToGuess.Text = wordprogressdisplay; }
public List <GameScoringModel> CalculateScoreForGame(Game game) { /* * Scoring algorithm: * * 1. If first word matches final word: * - game creator gets equivalent number of points to game passes * * 2. If a user guesses the same word as the previous usr was trying to draw: * - both the drawer and the guesser get one point each * * 3. If this is a timed game * - both drawers and guessers get double points * */ //await Task.Run(() => //{ var gameScores = new List <GameScoringModel>(); var scoreMultiplier = game.TimerInSeconds == 0 ? 1 : 2; List <Guess> guesses = game.Guesses.OrderBy(g => g.Order).ToList(); var startingWord = new WordGuess() { Word = game.StartingWord, Order = 0, NextUser = guesses.ElementAt(0).User }; guesses.Insert(0, startingWord); var wordGuesses = guesses.Where(g => g is WordGuess).ToList(); //Other guesses for (int i = 0; i < wordGuesses.Count - 1; i++) { var word1 = wordGuesses.ElementAt(i); var word2 = wordGuesses.ElementAt(i + 1); var similar = compareWords((WordGuess)word1, (WordGuess)word2); if (similar) { gameScores.Add(new GameScoringModel() { GameId = game.Id, UserId = word1.NextUser.Id, UserName = word1.NextUser.Username, Score = 1 * scoreMultiplier }); gameScores.Add(new GameScoringModel() { GameId = game.Id, UserId = word2.User.Id, UserName = word2.User.Username, Score = 1 * scoreMultiplier }); } } //First and last word var firstWord = wordGuesses.First(); var lastWord = wordGuesses.Last(); if (firstWord is WordGuess && lastWord is WordGuess) { var similar = compareWords((WordGuess)firstWord, (WordGuess)lastWord); if (similar) { //Check if the game creator has already scored in this game if (gameScores.Any(s => s.UserId == game.Creator.Id)) { var score = gameScores.Find(s => s.UserId == game.Creator.Id); score.Score += (game.NumberOfGuesses * scoreMultiplier); } else { gameScores.Add(new GameScoringModel() { GameId = game.Id, UserId = game.Creator.Id, UserName = game.Creator.Username, Score = game.NumberOfGuesses * scoreMultiplier }); } } } return(gameScores); //}); //return null; }