コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: FirstMove.cs プロジェクト: LiorBob/Scrabble-V2.0
        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);
        }