private void InitializeLettersValuesGridView() { dgvLettersValues = new DataGridView() { AllowUserToResizeRows = false, AllowUserToResizeColumns = false, RowHeadersVisible = false, ColumnHeadersVisible = false, Enabled = false, Visible = false, Location = new Point(503, 18), Size = new Size(83, 445) }; DataGridViewTextBoxColumn letters = new DataGridViewTextBoxColumn(); DataGridViewTextBoxColumn points = new DataGridViewTextBoxColumn(); letters.Width = 40; points.Width = 40; dgvLettersValues.Columns.AddRange(new DataGridViewColumn[] { letters, points }); for (char ch = 'A'; ch <= 'Z'; ch++) { if (ch < 'Z') { dgvLettersValues.Rows.Add(); } Letter letter = new Letter(); DataGridViewRow currentRow = dgvLettersValues.Rows[ch - 'A']; currentRow.Height = 17; currentRow.Cells[0].Value = ch; currentRow.Cells[1].Value = letter.GetPoints(ch); // Updates row color , according to the color of the letter (for each letter) currentRow.DefaultCellStyle.BackColor = letter.GetColor(ch); } Controls.Add(dgvLettersValues); }
private int GetWordPoints(string word) { int wordPoints = 0; Letter letter = new Letter(); foreach (char lett in word) { if (buttonsWord.Contains(lett.ToString())) { int indexOfLetterToBeRemoved = buttonsWord.IndexOf(lett); if (buttonsWord[indexOfLetterToBeRemoved + 1] != '*') { wordPoints += letter.GetPoints(lett); } buttonsWord = buttonsWord.Remove(indexOfLetterToBeRemoved, 1); } } if ((word.Length >= FIVE) && (word.Length < NINE)) { wordPoints *= 2; // word can be put on one 2w } if (word.Length >= NINE) { wordPoints *= 4; // word can be put on two 2w } if (word.Length == MAX_LETTERS_CAN_HOLD) { wordPoints += BINGO_BONUS; // add bonus points } return(wordPoints); }
private int GetWordPoints(string word, int i) { int wordPoints = 0; int multiplyFactor = 1; Letter letter = new Letter(); foreach (char lett in word) { wordPoints += letter.GetPoints(lett); } int delay = 1500; foreach (Button button in buttonsCombined[i]) { ToolTip toolTipLetter = new ToolTip(); if (button.BackColor == Color.White) { wordPoints -= letter.GetPoints(button.Text[0]); toolTipLetter.Show("0", button, 1, 1, delay); } else { toolTipLetter.Show(letter.GetPoints(button.Text[0]) + "", button, 1, 1, delay); } delay += 100; } foreach (Button button in wordPutOnBoard) { if (!buttonsCombined[i].Contains(button)) { continue; } if (squaresBonuses.ContainsKey(button.Location)) { squaresBonuses.TryGetValue(button.Location, out string bonus); int multiplier = bonus[0] - '0'; // Converts char digit to int switch (bonus[1]) // Treats bonus ends with w or L { case 'w': multiplyFactor *= multiplier; break; case 'L': ToolTip toolTipLetter = new ToolTip(); if (button.BackColor != Color.White) { wordPoints += letter.GetPoints(button.Text[0]) * (multiplier - 1); toolTipLetter.Show(letter.GetPoints(button.Text[0]) + "x" + multiplier, button, 1, 1, delay); } else // white button : 0 points { toolTipLetter.Show("0x" + multiplier, button, 1, 1, delay); } break; } } } if (multiplyFactor > 1) { ToolTip toolTipDoubleOrTripleWord = new ToolTip(); toolTipDoubleOrTripleWord.OwnerDraw = true; // Anonymous event handler using lambda expression toolTipDoubleOrTripleWord.Draw += (sender, e) => { toolTipDoubleOrTripleWord.BackColor = Color.LightCyan; e.DrawBackground(); e.DrawText(); }; if (buttonsCombined[i][0].Location.Y == buttonsCombined[i][1].Location.Y) { toolTipDoubleOrTripleWord.Show(wordPoints + " x " + multiplyFactor, buttonsCombined[i][buttonsCombined[i].Count - 1], 30, 0, 3000); } else { toolTipDoubleOrTripleWord.Show(wordPoints + " x " + multiplyFactor, buttonsCombined[i][buttonsCombined[i].Count - 1], 0, 30, 3000); } } wordPoints *= multiplyFactor; wordsCombinationsPoints += "'" + word + "' : " + wordPoints + " points\n"; return(wordPoints); }
private int GetWordPoints(string word) { int wordPoints = 0; int multiplyFactor = 1; Letter letter = new Letter(); foreach (char lett in word) { wordPoints += letter.GetPoints(lett); } int delay = 1500; /* If the first word is put on a bonus square, this bonus * must be 2w */ foreach (Button button in wordPutOnBoard) { ToolTip toolTipLetter = new ToolTip(); if (button.BackColor == Color.White) { wordPoints -= letter.GetPoints(button.Text[0]); toolTipLetter.Show("0", button, 1, 1, delay); } else { toolTipLetter.Show(letter.GetPoints(button.Text[0]) + "", button, 1, 1, delay); } if (squaresBonuses.ContainsKey(button.Location)) { multiplyFactor *= 2; } delay += 100; } if (multiplyFactor > 1) { ToolTip toolTipDoubleWord = new ToolTip(); toolTipDoubleWord.OwnerDraw = true; // Anonymous event handler using lambda expression toolTipDoubleWord.Draw += (sender, e) => { toolTipDoubleWord.BackColor = Color.LightCyan; e.DrawBackground(); e.DrawText(); }; if (wordPutOnBoard[0].Location.Y == wordPutOnBoard[1].Location.Y) { toolTipDoubleWord.Show(wordPoints + " x " + multiplyFactor, wordPutOnBoard[wordPutOnBoard.Count / 2], 0, 30, 2500); } else { toolTipDoubleWord.Show(wordPoints + " x " + multiplyFactor, wordPutOnBoard[wordPutOnBoard.Count / 2], 30, 0, 2500); } } wordPoints *= multiplyFactor; ToolTip toolTipWordPoints = new ToolTip(); toolTipWordPoints.OwnerDraw = true; toolTipWordPoints.Draw += (sender, e) => { toolTipWordPoints.BackColor = Color.MediumSpringGreen; e.DrawBackground(); e.DrawText(); }; if (wordPutOnBoard[0].Location.Y == wordPutOnBoard[1].Location.Y) { toolTipWordPoints.Show("'" + word + "' : " + wordPoints + " points", wordPutOnBoard[wordPutOnBoard.Count - 1], 30, 0, 4000); } else { toolTipWordPoints.Show("'" + word + "' : " + wordPoints + " points", wordPutOnBoard[wordPutOnBoard.Count - 1], 0, 30, 4000); } return(wordPoints); }