C++ :: Simple Recursive Maze Algorithm And Counting Steps
Jun 1, 2013
My maze algorithm must be able to count total steps. He is not allowed to "jump" from a deadend back to the cross-way he originally came from.
Code:
int R2D2Turbo::findIt(Labyrinth* incLab, int x, int y){
if ((x == incLab->getExit().x) && (y == incLab->getExit().y))
{
return 1;
[Code] .....
Due to the nature of recursive algoirthms, he jumps instead of moving the way back from the deadend one by one... The only solutions I could think of are way overloaded...
I have an school assignment that asks me to measure the most famous sorting algorithms for performance in terms of number of steps and CPU running time. ( Here I'm testing for running time)
I decided to test for bubble sort first:
#include <iostream> #include <ctime> using namespace std; void bubbleSort(int ar[], int size) { int temp;
[Code] ....
So basically what I want to know is:
1. Is this clock function giving the correct CPU running time?
2. Is there any way to write code that would measure the number of steps for each algorithm?
3.I need to test it for number of integers=100 then 200, then 300... Well you get my point, and I don't want to have to actually input 200 numbers with my keyboard. Is there any way to generate as many entries as I want?
I'm working on a maze solving program. So far I got the program to solve a maze using the recursive backtracking algorithm. I represent the maze as vector<vector<Square>> where Square is an enum that contains the kind of square (empty, wall, etc.). I use a class Point that contains 2 ints which are used for subscripting the vector of vectors. I have a Point begin and Point end. Now I want the program to solve the maze using the shortest path. I can either use the A* algorithm, Dijkstra's algorithm, or the breadth first search algorithm.
I have the following code that does not work. It prints out 1 when it should print out 5 and 3 respectively. I know that the code is not the pretties due to ( *arr == value) but i am just learning C++.
Spoiler
template <typename T> int countOccurrencesRecursively(T* arr, int size, T value){ //the base case is when the the array is empty if(size == 0) return 0; else return *arr == value + countOccurrencesRecursively(++arr, --size, value);
This code is compile but must have some upgrades :
1. The algorithm count double space how 1 word this is not correct. Probably have to add condition like ' '&'a-z'||'A-Z' but in unknown to me reason this is don't work
2. If there is one words without space then counted don't detect this word, it is incorrect.
Code: #include <iostream> using namespace std; int main () { char ch; cout <<"enter your text: " ;
Code: #include <stdio.h> int main(){ double nc; for (nc = 0; getchar() != EOF; ++nc) ; printf("%.0f ", nc); }
It works well and I am using ctrl-D as my EOF. Now I understand that C is not really a language for dealing with text, which is why I am learning it more in depth, my degree was in robotics, and I think C is definitely the best place to be for me. So this may just be a quirk, but if I type more than 10 characters, I get the right answer from the program, however, if I type less than 10, for the sake of argument I type Hello and then return, if I at that point do ctrl-D, I get the answer 6D?
The 6 is right 5 letters and a return character, but what is the D?
I've been working on a matrix class and I ran into a problem in writing my matrix class. I keep getting 0 as a determinant and with some debugging, I found that I was losing allocated data or something similar. This algorithm I'm pretty sure works because I used this same algorithm in a function I made in python. [URL] .... That's where I found the algorithm.
So I am working on a dual pivot quicksort, I can correctly sort the array the first time around however in the main it is called again on the sorted array and in the function I get a seg fault at line 17 in sort.cpp, for the life of me I cant figure it out as the values are the same when I pass it in the first time. Here is the code:
main1.cpp
#include <iostream> #include "movement.h" #include "sort.h" using namespace std; int main() { const int size = 10; T array[size] = {6, 5, 1, 8, 4, 7, 2, 9, 6, 3};
I have a problem to implement a recursive version of an algorithm that I made, I get different values. Here is the code so Iterative (OK) and Recursive code form that is not OK.
The data sets do not give equal:
The algorithm is given two source and target positions on a board, find the number of paths between them...
Input Example: 5 2 3 4 4
Output Example: 5
Iterative Algorithm ( OK )
Code: #include <iostream> #include <stdio.h> #include <cmath> #include <algorithm> #include <string.h> #include <vector> #include <queue> using namespace std; int n , dp [1000][1000], x, y, xx, yy;
Is there some way to express this mathematically so that I do nto have to use a table lookup? I know this sounds like I am an idiot, but I can not figure out an obvious algorithm.
So I have a program where I solve a maze using stacks. So my display_maze function take two parameters and displays the maze according to where the x coordinate and y coordinate are.
I have an error during my move function, as my maze doesn't display for some reason
I am creating a right hand maze solution, and it actually works for the most part, but it gets stuck at the sixth spot and will not proceed any further. I cannot seem to find my error even though I know it's probably a small one in my code, here is what I have at the moment:
What c++ code can be used to make an 'X' move through a maze. I have some code, but I'm not sure where to go from there. I have divided the program into three files, A header file, a main file and a .cpp implementation file.
In my implementation file I have:
#include "Maze.h" Maze::Maze() { } void Maze::mazeTraversal(char maze[][COLS], int row, int col, int direction) { enum Direction {DOWN, RIGHT, UP, LEFT}; switch(option)
Area of the room. Your task is to write a program that will find the area of room in a given square maze.
Note. Use recursion for solving this problem.
Input: First line contains only one number N (3 <= N <= 10).The number that describes the size of the square maze. On the next N lines maze itself is inputed ('.' - empty cell,'*' - wall). And the last line contains two numbers - the row and column of the cell in the room those area you need to find.It is guaranteed that given cell is empty and that the maze is surrounded by walls on all sides.
Output: Output only one number - total amount of empty cells in the selected room.
I'm trying to read a "pointer-based" maze .txt. The first letter in each row corresponds to the room letter...then the letters that follow are North node, East node, South node, and West node respectively. The asterisk indicates an empty room or not a valid option.
Here is what I have come up with, what is happening is after the file is parsed by read_maze it is calling my is_empty function indicating that there is no maze because it doesn't go into the else statement here.
I've attached a sample input file:
maze.txt (130bytes) Number of downloads: 19
We can't assume the rooms will be in order alphabetically A - Z, We are expecting a maximum of 12 rooms and there is a space between each letter or asterisk.
void Maze::read_maze(string FileName){
string line; ifstream inStream; inStream.open(FileName.c_str()); int test = inStream.peek(); int i = 0; if (!(inStream.fail())){ while (!inStream.eof() && test != EOF){
I am trying to get this code eventually to read in a maze file to move the smiley face around in. But right now my current snag is the yes or no to enter the for loop.
#include <iostream> #include <windows.h> #include <conio.h> #include <time.h> using namespace std; int main() { int name; char ans;
So I'm supposed to create a program that will read off words from a .txt file,and use a function to count the number of vowels in each word and then display the specific vowels and their frequencies. ex. if the word is: butter the output would be:
a:0 e:1 i:0 o:0 u:1
This is what I have so far, but I'm running into some problems.
How I would go about counting lines from a file at the same time as extracting words? I need to know the line number to output what line the word is misspelled on. I tried getline and using sstreams but I could not get it to work.