1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Flura [38]
3 years ago
15

I need help writing a recursion function to solve a boggle game for c++.

Computers and Technology
1 answer:
Mandarinka [93]3 years ago
7 0

Answer:

#include <cstring>

#include <iostream>

using namespace std;

 

#define A 3

#define B 3

 

// LET US CREATE A DICTIONARY

string dict[] = { "KILLS", "GOT", "QUIZ", "GO" };

int n = sizeof(dict) / sizeof(dict[0]);

 

// Let us make a function to find whether a given word is present in dictionary.

bool isPresent(string& str)

{

   // linear search of words

   for (int i = 0; i < n; i++)

       if (str.compare(dict[i]) == 0)

           return true;

   return false;

}

 

// A function for printing all words present on Boggle

void findWordin(char bogle[A][B], bool hasbeenvisited[A][B], int i,

                  int j, string& str)

{

   hasbeenvisited[i][j] = true;

   str = str + bogle[i][j];

 

   // If str is in the dictionary, then you need to print it

   if (isPresent(str))

       cout << str << endl;

 

   // Travering adjacent 8 cells of the boggle

   for (int r = i - 1; r <= i + 1 && r < A; r++)

       for (int c= j - 1; c <= j + 1 && c < B; c++)

           if (r >= 0 && c >= 0 && !hasbeenvisited[r][c])

               findWordin(bogle, hasbeenvisited, r, c, str);

 

   // for erasing current characters on the string, and mark them visited

   // of the current cells to false  

   str.erase(str.length() - 1);

   hasbeenvisited[i][j] = false;

}

 

// Prints all words which are in dictionary.

void findWords(char boggle[A][B])

{

   // for marking all the characters as not being visited

   bool hasbeenvisited[A][B] = { { false } };

 

   // Initializing the present string

   string str = "";

 

   // Reading all the characters for finding all the words that begins with the above character

   for (int i = 0; i < A; i++)

       for (int j = 0; j < B; j++)

           findWordin(boggle, hasbeenvisited, i, j, str);

}

 

// the code for testing of the function

int main()

{

   char bogle[A][B] = { { 'k', 'I', 'L' },

                         { 'L', 'S', 'M' },

                         { 'G', 'O', 'T' } };

 

   cout << "Below list of words are present in the dictionary\n";

   findWords(bogle);

   return 0;

}

Explanation:

The program is properly commented, and that explains each step of it.  However, I have kept dictionary as constant for similifying the code. And it can be set to variable easily, if required.

You might be interested in
Imagine how the situation could be handled. Come up with as many ideas as possible: There's no one "right" answer! Then, highlig
Veseljchak [2.6K]

Answer:

there is no passage

Explanation:

6 0
3 years ago
Pa help po brainliest po kayo kon may nakita ako ng brainliest at mag wait kayo nga i brainliest kailangan ko ngayon please, hel
notka56 [123]

Answer:

hi

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

good evening

8 0
3 years ago
If an M/M/1 queue in a server has task arrivals at a rate of 30 per second and serves at a rate of 50 per second, how many tasks
Scorpion4ik [409]

The answer & explanation for this question is given in the attachment below.

6 0
3 years ago
A computer is a multipurpose device that accepts input, processes data, stores data, and produces output, all according to a ser
Bingel [31]

A computer is a multipurpose device that accepts input, processes data, stores data, and produces output, all according to a series of stored <u>instructions</u>. The <u>central</u> processing unit of most modern computers is a <u>microprocessor</u>. The instructions that tell a computer how to carry out a task are referred to as computer <u>programs</u>, which are distributed as software. Computers run three main types of software: <u>Application</u> software, system software, and development tools. An example of system software is a computer <u>operating</u> system, which is essentially the master controller for all the activities that a digital device performs. Digital devices are constructed using tiny electronic components that represent data bits as electrical signals. The system unit houses the system board, which contains several <u>integrated</u> circuits made from semiconducting materials. Computers come in three popular form factors: component, <u>clamshell</u> and slate. Many of today's digital devices operate on battery power supplied by <u>Lithium</u> ion batteries. Battery life and lifespan can be extended by following good battery management practices.

<u>Explanation</u>

A computer is a multipurpose device that accepts input, processes data, stores data, and produces output, all according to a series of stored instructions. Input is data or information typed, submitted, or transmitted into a computer. Processing data involves performing calculations, drawing graphs, modifying documents, and many more. Output is the result produced by a computer. Processing is handled by the computer’s CPU (Central Processing Unit) and the central processing unit of most modern computers is a microprocessor. A microprocessor executes and manages all logical instructions passed to it and performs tasks involved in computer processing. The instructions that tell a computer how to carry out a task are referred to as computer programs, which are distributed as software. A program is software or set of ordered operations on a computer that performs a particular task or function. A program is created and compiled into a language that the computer can comprehend and then distributed as software. Computers run three main types of software: Application software, system software, and development tools. Application software are programs that help a user carry out a task while a system software helps  the computer system to monitor itself in order to function effectively. On the other hand, development tools are used for creating applications, operating systems, Web sites, and utilities. Digital devices are constructed using tiny electronic components that represent data bits as electrical signals. The system unit houses the system board, which contains several integrated circuits made from semiconducting materials. The essence of digital electronics is the small circuit boards and integrated circuits you see when you open up a digital device. ICs are sets of electronic circuits engraved onto a thin slide of semiconducting material. Computers come in three popular form factors: component, clamshell and slate. Form factor in computer terms refers to the size and dimensions of then device. Clamshell devices have features characterized by a keyboard as the base and a screen on the hinged cover. Those devices configured in the slate form factor have a touchscreen that covers majority of the device’s surface. Many of today's digital devices operate on battery power supplied by Lithium ion batteries. Battery life and lifespan can be extended by following good battery management practices. Many of today's digital devices operate on battery power supplied by Lithium ion batteries. Battery life and lifespan can be extended by following good battery management practices.

7 0
3 years ago
How are clustering and Network Load Balancing similar?
Elza [17]

Answer:

Load balancing is the mechanism happening between the different components to achieve the aim independently in the server. They are not aware of the presence of the other resources with them.

Clustering is the process in which the components work to gain the desired results in the form of group.They work in group so that there are no chances of crash  in server.

The similarity arises between these two process are :

  • They have capability to work even after failure of system
  • Can have unnecessary access to the information
  • Scalable

5 0
3 years ago
Other questions:
  • What is does the word multimedia mean?
    5·2 answers
  • I need help please <br> just plug in the words with their definitions.......
    10·2 answers
  • Which of the following locations would most likely have the most fertile soil?
    8·1 answer
  • You receive a file named Project4.xlsx as an attachment to an email message. What do you expect the file to contain?
    8·1 answer
  • In which of the following situations should you expect to provide your Social Security number?
    13·1 answer
  • Answer ASAP and I'll give brainliest.
    10·2 answers
  • Mga halimbawa ng migrasyon​
    13·1 answer
  • Please help me please i’ll give brainli
    12·1 answer
  • Big Chungus is god. prove me wrong.
    10·1 answer
  • What is an example of new technology having a negative impact on sustainability?.
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!