Skip to content

Crossword Word Building Game (Advanced) #19

@Pankaj-Str

Description

@Pankaj-Str

Problem Statement

Design and implement a Crossword Word Building Game in Python. The game involves answering a general knowledge question, building a word character by character, and creating new words based on specific rules. The game continues in rounds until the user exits, with a scoring system and validation to ensure rules are followed.


Assignment Requirements

  1. Question & Answer Input

    • Display a general knowledge question (e.g., "What is the national animal of India?").
    • Prompt the user to specify the maximum character length of the answer.
    • Collect the answer character by character, ensuring it matches the specified length.
    • Display the complete answer and validate it against the correct answer.
    • End the game with the correct answer if the user’s answer is incorrect.
  2. Character Selection

    • Prompt the user to select one character from the current word (initially the answer, later the new word).
    • Validate that the chosen character is a single character present in the current word.
  3. Word Creation Rules

    • The user must form a new word that:
      • Contains the selected character.
      • Includes at least one character not in the previous word.
      • Is at least as long as the previous word.
    • Example: If the previous word is "TIGER" (5 letters) and the chosen character is "I", a valid new word is "INJECTION" (contains "I", has new characters, ≥ 5 letters), but "INK" is invalid (too short).
  4. Validation Logic

    • Validate new words to ensure they meet all rules.
    • Display error messages for invalid words (e.g., missing chosen character, too short, no new characters) and prompt for retry.
    • Prevent duplicate words (words already used in the game).
  5. Scoring System

    • Award points for valid words:
      • Base points for a valid word.
      • Bonus points if the new word is at least 2 characters longer than the previous word.
    • Display the running score after each valid word.
  6. Game Continuation

    • After each valid word, ask the user to continue or exit.
    • If continuing, prompt for a new character from the latest word and form a new word.
    • On exit, display:
      • List of all words used.
      • Final score.
  7. Bonus Requirement

    • Store used words in a list and prevent duplicates.
    • Display the list of used words at the end.

Input/Output Example

Welcome to the Crossword Word Building Game!
Q: What is the national animal of India?
Enter the maximum character length of the answer: 5
Enter the answer character by character (max 5 characters):
Character 1: T
Character 2: I
Character 3: G
Character 4: E
Character 5: R
Answer → TIGER

Choose a character from 'TIGER': I
Make a new word using 'I': Injection
✅ Valid! Score updated.
Total Score = 7

Do you want to continue? (yes/no): yes

Choose a character from 'INJECTION': N
Make a new word using 'N': Nation
✅ Valid! Score updated.
Total Score = 12

Do you want to continue? (yes/no): yes

Choose a character from 'NATION': A
Make a new word using 'A': Ant
❌ Error: New word must be at least 6 characters long.
Try again: Another
✅ Valid! Score updated.
Total Score = 17

Do you want to continue? (yes/no): no

Game Over.
Words used: ['TIGER', 'INJECTION', 'NATION', 'ANOTHER']
Final Score = 17

Assignment Tasks

  1. Implementation
    Write a Python program implementing the full game logic. Handle user inputs robustly (e.g., invalid characters, incorrect answer lengths).

  2. Scoring System
    Implement the scoring system with base and bonus points. Display the score after each valid word.

  3. Validation Logic
    Validate words to reject invalid entries with clear error messages and retry prompts.

  4. Bonus: Duplicate Prevention
    Store used words in a list to prevent duplicates and display the list at the end.


Notes

  • Include at least 4 predefined general knowledge questions and answers for testing.
  • Treat inputs as case-insensitive (e.g., "Tiger" and "TIGER" are the same).
  • Handle invalid inputs gracefully (e.g., non-single characters, invalid words).
  • Assume words are valid English words without requiring a dictionary check.

.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions