Introduction

Scrabble is a popular word game in which players form words on a game board using letter tiles. Each tile has a specific point value, and the objective of the game is to accumulate the highest score. In this tutorial, we will learn how to write a program in C++ that calculates the score of a given Scrabble word.

Objective

The goal of this program is to take a word as input from the user, calculate its Scrabble score based on letter values, and output the total score. The program will use a predefined point system for the letters of the alphabet as follows:

  • A, E, I, O, U, L, N, S, T, R: 1 point
  • D, G: 2 points
  • B, C, M, P: 3 points
  • F, H, V, W, Y: 4 points
  • K: 5 points
  • J, X: 8 points
  • Q, Z: 10 points

C++ Code

#include 
#include 
#include 

using namespace std;

// Function to calculate Scrabble score
int calculateScrabbleScore(const string& word) {
    // Point system for each letter
    unordered_map<char, int> letterPoints = {
        {'A', 1}, {'E', 1}, {'I', 1}, {'O', 1}, {'U', 1}, {'L', 1}, {'N', 1}, {'S', 1}, {'T', 1}, {'R', 1},
        {'D', 2}, {'G', 2},
        {'B', 3}, {'C', 3}, {'M', 3}, {'P', 3},
        {'F', 4}, {'H', 4}, {'V', 4}, {'W', 4}, {'Y', 4},
        {'K', 5},
        {'J', 8}, {'X', 8},
        {'Q', 10}, {'Z', 10}
    };

    int score = 0;
    
    // Convert word to uppercase for case-insensitive comparison
    for (char ch : word) {
        ch = toupper(ch);  // Convert character to uppercase
        if (letterPoints.find(ch) != letterPoints.end()) {
            score += letterPoints[ch];
        }
    }

    return score;
}

int main() {
    string word;
    
    // Get the word from the user
    cout << "Enter a word to calculate its Scrabble score: "; cin >> word;
    
    // Calculate and display the score
    int score = calculateScrabbleScore(word);
    cout << "The Scrabble score for the word '" << word << "' is: " << score << endl;

    return 0;
}

Program Explanation

The program consists of the following parts:

  • Header Files: We include iostream for input/output operations, string to handle string data types, and unordered_map for storing letter-point mappings.
  • calculateScrabbleScore Function: This function takes a word as input, converts each character to uppercase, and then looks up its score in the unordered_map where we store the letter-to-point mapping. The total score is then calculated and returned.
  • main Function: It asks the user to input a word, calls the calculateScrabbleScore function, and then prints the result on the screen.

How to Run the Program

  1. Copy the provided C++ code into a text editor or IDE of your choice (such as Visual Studio, Code::Blocks, or online compilers like repl.it).
  2. Save the file with a .cpp extension (e.g., scrabble_score.cpp).
  3. Compile the program using a C++ compiler. For example, if you’re using a command-line interface, type g++ scrabble_score.cpp -o scrabble_score.
  4. Run the compiled program by typing ./scrabble_score (on Linux/Mac) or scrabble_score.exe (on Windows).
  5. Enter a word when prompted, and the program will display its Scrabble score.
© 2025 Learn Programming. All rights reserved.

 

By Aditya Bhuyan

I work as a cloud specialist. In addition to being an architect and SRE specialist, I work as a cloud engineer and developer. I have assisted my clients in converting their antiquated programmes into contemporary microservices that operate on various cloud computing platforms such as AWS, GCP, Azure, or VMware Tanzu, as well as orchestration systems such as Docker Swarm or Kubernetes. For over twenty years, I have been employed in the IT sector as a Java developer, J2EE architect, scrum master, and instructor. I write about Cloud Native and Cloud often. Bangalore, India is where my family and I call home. I maintain my physical and mental fitness by doing a lot of yoga and meditation.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)