فهرست منبع

Change indentation from 4 to 8

Vim cpp standard
DricomDragon 5 سال پیش
والد
کامیت
b7cfb32627
1فایلهای تغییر یافته به همراه123 افزوده شده و 122 حذف شده
  1. 123 122
      main.cc

+ 123 - 122
main.cc

@@ -14,137 +14,138 @@ using namespace std;
 
 class World
 {
-    private:
-        // Number of columns
-        unsigned int l;
-        
-        // Number of lines
-        unsigned int h;
-
-        // Unidimensional array for tiles
-        int* w;
-    
-    public:
-        // Constructor
-        World(unsigned int l, unsigned int h, double p)
-        {
-            this->l = l;
-            this->h = h;
-            this->w = new int[l*h]();
-
-            // Add walls to the first and last columns
-            for (unsigned int i = 0; i < h; i++)
-            {
-                this->w[i * l] = 1;
-                this->w[i * l + l - 1] = 1;
-            }
-
-            // Add walls to the first and last lines
-            for (unsigned int j = 0; j < l; j++)
-            {
-                this->w[j] = 1;
-                this->w[(h - 1) * l + j] = 1;
-            }
-
-            for (unsigned int i = 0; i < h; i++)
-            {
-                for (unsigned int j = 0; j < l; j++)
-                {
-                    // add a wall in this tile with probability p and provided that it is neither
-                    // the starting tile nor the goal tile 
-                    if ((double) rand() / RAND_MAX < p && !(i == 1 && j == 1) && !(i == h - 2 && j == l - 2))
-                    {
-                        this->w[i * l + j] = 1;
-                    }
-                }
-            }
-        }
-
-        // Display the world
-        void display()
-        {
-            for (unsigned int i = 0; i < h; i++)
-            {
-                for (unsigned int j = 0; j < l; j++)
-                {
-                    switch (this->w[i * l + j])
-                    {
-                        case 0:
-                            cout << " ";
-                            break;
-
-                        case 1:
-                            cout << "#";
-                            break;
-                    }
-                }
-                cout << endl;
-            }
-        }
-
-        // compute the successors of tile number i in world w
-        // we return the number n of valid successors
-        // the actual list is in array r where only the first n
-        // elements are significant
-        unsigned int successors(unsigned int i, unsigned int r[4])
-        {
-            unsigned int n = 0;
-
-            if (i >= 0 && i < this->l * this->h && this->w[i] != 1)
-            {
-                // if i is a correct tile number (inside the array and not on a wall)
-                // look in the four adjacent tiles and keep only those with no wall
-                const unsigned int moves[] = { i - 1, i + 1, i - l, i + l};
-                
-                for (unsigned int k = 0; k < 4; k++)
-                {
-                    if (this->w[moves[k]] != 1)
-                    {
-                        r[n] = moves[k];
-                        n++;
-                    }
-                }
-            }
-
-            return n;
-        }
-
-        // Depth-first search
-        // starting from tile number s0, find a path to tile number t
-        // return true if such a path exists, false otherwise
-        // if it exists the path is given in variable path (hence the reference &)
-        bool dfs(unsigned int s0, unsigned int t, list<unsigned int>& path)
-        {
-            bool r = false;
-
-            // ... Complete here ...
-
-            return r;
-        } 
+	private:
+		// Number of columns
+		unsigned int l;
+
+		// Number of lines
+		unsigned int h;
+
+		// Unidimensional array for tiles
+		int* w;
+
+	public:
+		// Constructor
+		World(unsigned int l, unsigned int h, double p)
+		{
+			this->l = l;
+			this->h = h;
+			this->w = new int[l*h]();
+
+			// Add walls to the first and last columns
+			for (unsigned int i = 0; i < h; i++)
+			{
+				this->w[i * l] = 1;
+				this->w[i * l + l - 1] = 1;
+			}
+
+			// Add walls to the first and last lines
+			for (unsigned int j = 0; j < l; j++)
+			{
+				this->w[j] = 1;
+				this->w[(h - 1) * l + j] = 1;
+			}
+
+			for (unsigned int i = 0; i < h; i++)
+			{
+				for (unsigned int j = 0; j < l; j++)
+				{
+					// add a wall in this tile with probability p and provided that it is neither
+					// the starting tile nor the goal tile 
+					if ((double) rand() / RAND_MAX < p && !(i == 1 && j == 1) && !(i == h - 2 && j == l - 2))
+					{
+						this->w[i * l + j] = 1;
+					}
+				}
+			}
+		}
+
+		// Display the world
+		void display()
+		{
+			for (unsigned int i = 0; i < h; i++)
+			{
+				for (unsigned int j = 0; j < l; j++)
+				{
+					switch (this->w[i * l + j])
+					{
+						case 0:
+							cout << " ";
+							break;
+
+						case 1:
+							cout << "#";
+							break;
+					}
+				}
+				cout << endl;
+			}
+		}
+
+		// compute the successors of tile number i in world w
+		// we return the number n of valid successors
+		// the actual list is in array r where only the first n
+		// elements are significant
+		unsigned int successors(unsigned int i, unsigned int r[4])
+		{
+			unsigned int n = 0;
+
+			if (i >= 0 && i < this->l * this->h && this->w[i] != 1)
+			{
+				// if i is a correct tile number (inside the array and not on a wall)
+				// look in the four adjacent tiles and keep only those with no wall
+				const unsigned int moves[] = { i - 1, i + 1, i - l, i + l};
+
+				for (unsigned int k = 0; k < 4; k++)
+				{
+					if (this->w[moves[k]] != 1)
+					{
+						r[n] = moves[k];
+						n++;
+					}
+				}
+			}
+
+			return n;
+		}
+
+		// Depth-first search
+		// starting from tile number s0, find a path to tile number t
+		// return true if such a path exists, false otherwise
+		// if it exists the path is given in variable path (hence the reference &)
+		bool dfs(unsigned int s0, unsigned int t, list<unsigned int>& path)
+		{
+			bool r = false;
+
+
+			// ... Complete here ...
+
+			return r;
+		} 
 };
 
 int main()
 {
-    // Initialise the random number generator
-    srand(time(0));
+	// Initialise the random number generator
+	srand(time(0));
 
-    // Create a world
-    World w(20, 10, 0.2);
+	// Create a world
+	World w(20, 10, 0.2);
 
-    // Display it
-    w.display();
+	// Display it
+	w.display();
 
-    // Print the tile numbers of the successors of the starting tile (1, 1)
-    unsigned int succs[4];
-    unsigned int n = w.successors(21, succs);
+	// Print the tile numbers of the successors of the starting tile (1, 1)
+	unsigned int succs[4];
+	unsigned int n = w.successors(21, succs);
 
-    for (unsigned int k = 0; k < n; k++)
-    {
-        cout << succs[k] << " ";
-    }
-    cout << endl;
+	for (unsigned int k = 0; k < n; k++)
+	{
+		cout << succs[k] << " ";
+	}
+	cout << endl;
 
-    return 0;
+	return 0;
 }