×
Reviews 4.9/5 Order Now

Create a Program to Implement Puzzle in C++ Assignment Solution

July 02, 2024
Dr. Olivia Mitchell
Dr. Olivia
🇬🇧 United Kingdom
C++
Dr. Olivia Mitchell holds a Ph.D. in Computer Science from the University of Cambridge. With over a decade of experience, she specializes in advanced file handling techniques in C++. Having completed over 800 assignments, Dr. Mitchell's expertise lies in designing efficient algorithms for file stream manipulation and error handling in file operations.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Understand the power of recursion and list manipulation—core concepts in Lisp. Keep your parentheses balanced and use indentation for clarity. Practice writing simple functions first, then build up to more complex expressions. Use the REPL to test and debug your code incrementally.
News
Visual Studio Code v1.101 (May 2025) introduced full Model Context Protocol features, an open-sourced Copilot Chat extension, and expanded Python REPL and agent-mode support—empowering AI-enhanced workflows for student projects

Instructions

Objective

Write a c++ assignment program to implement puzzle.

Requirements and Specifications

program-to-implement-puzzle-in-c
program-to-implement-puzzle-in-c 1

Source Code

#include #include #include using namespace std; string puzzleMaker(string str, int L) { int Len = L * 2; char word[Len]; int WordLen = str.length(); int count = 0; for (int i = 0; i < Len; i++) { if (count < WordLen and i % 2 != 0) { word[i] = str[count]; count++; } else { word[i] = 'a' + rand() % 26; } } return word; } void createNew() { int noOfWords = 0, highLen = 0; cout << "How many words you like to type?:"; cin >> noOfWords; string words[noOfWords]; string puzzles[noOfWords]; for (int i = 0; i < noOfWords; i++) { cout << "Enter word [" << i + 1 << "]:"; cin >> words[i]; int tempSize = words[i].length(); if (tempSize >= highLen) { highLen = tempSize; } } for (int i = 0; i < noOfWords; i++) { string tempWord = puzzleMaker(words[i], highLen); puzzles[i] = tempWord; } cout << "Do you want to save this?(Y/N):"; char ans; cin >> ans; if (ans == 'y' || ans == 'Y') { string fileName; cout << "Enter file name to save puzzle:"; cin >> fileName; fstream puzzleData; puzzleData.open(fileName + ".txt", ios::out); if (puzzleData.is_open()) { puzzleData << "Puzzles"; for (int i = 0; i < noOfWords; i++) { puzzleData << puzzles[i] << ""; } puzzleData << "Solutions"; for (int i = 0; i < noOfWords; i++) { puzzleData << words[i] << ""; } } } } void openOld(string fileName) { fstream puzzleData; puzzleData.open(fileName + ".txt", ios::in); if (puzzleData.is_open()) { string tempData; while (getline(puzzleData, tempData)) { cout << tempData << ""; } } } class Node { public: string data; Node *next; Node(string value) { data = value; next = NULL; } }; void insert(Node *&head, string value) { Node *n = new Node(value); if (head == NULL) { head = n; return; } Node *temp = head; while (temp->next != NULL) { temp = temp->next; } temp->next = n; } void solvePuzzle(string fileName) { Node *puzzles = NULL; Node *solutions = NULL; fstream puzzleData; puzzleData.open(fileName + ".txt", ios::in); if (puzzleData.is_open()) { string tempData; int val = 0; while (getline(puzzleData, tempData)) { if (val == 2) { insert(puzzles, tempData); } if (val == 1) { insert(solutions, tempData); } if (tempData == "Puzzles") { val = 2; } if (tempData == "Solutions") { val = 1; } } Node *temp1 = solutions; Node *temp2 = puzzles; while (temp1 != NULL) { while (temp2 != NULL) { if (temp1 == NULL) { temp2 = NULL; continue; } string selectedSolution = temp1->data; string selectedPuzzle = temp2->data; int lenPuzzle = strlen(selectedPuzzle.c_str()); int lenSolution = strlen(selectedSolution.c_str()); for (int i = 0; i < lenSolution; i++) { for (int j = 0; j < lenPuzzle; j++) { if (selectedSolution[i] == selectedPuzzle[j]) { cout << selectedSolution[i]; i = i + 1; } else { cout << " "; } } } cout << ""; temp2 = temp2->next; temp1 = temp1->next; } } } } int main() { bool start = true; while (start) { cout << "Choose an option:" << endl; cout << "(1) Create a new puzzle" << endl; cout << "(2) Open an existing puzzle" << endl; cout << "(3) Solve an existing puzzle" << endl; cout << "(4) Exit" << endl; int userInput = 0; cin >> userInput; string fileName1, fileName2; switch (userInput) { case 1: createNew(); break; case 2: cout << "Enter file name to read old puzzle:"; cin >> fileName1; openOld(fileName1); break; case 3: cout << "Enter file name to read old puzzle:"; cin >> fileName2; solvePuzzle(fileName2); break; case 4: start = false; break; default: cout << "Please enter a valid choice 1-4!" << endl; break; } } }

Similar Samples

Explore our curated collection of programming homework samples at ProgrammingHomeworkHelp.com. From Java and Python to Machine Learning and Data Structures, our samples exemplify our expertise in solving diverse programming challenges. Each example is designed to illustrate best practices and provide insights into tackling assignments effectively. Dive into our samples to see how we can assist you in mastering programming concepts and achieving academic excellence