Règle 62 en C++
unknown
c_cpp
a year ago
1.5 kB
8
Indexable
#include <iostream> #include <string> // Function to apply Rule 62 to a cell based on its neighbors bool applyRule62(char left, char center, char right) { if (left == '#' && center == '#' && right == '#') return false; if (left == '#' && center == '#' && right == '_') return false; if (left == '_' && center == '_' && right == '_') return false; return true; // every other combination is true } int main() { const int num_iterations = 65; // Number of iterations to perform const int width = 50; // Width of the cellular automaton std::string current_row(width, '_'); // Current row of the cellular automaton // Initialize the current row with the given first row current_row = "_#___###___##__##__###_##____#_#__####_#__#_###___"; // Execute iterations for (int iteration = 0; iteration < num_iterations; ++iteration) { // Print the current row std::cout << current_row << std::endl; // Calculate the next row based on Rule 62 std::string next_row(width, '_'); for (int i = 1; i < width - 1; ++i) { next_row[i] = applyRule62(current_row[i - 1], current_row[i], current_row[i + 1]) ? '#' : '_'; } // Update the current row with the newly calculated row current_row = next_row; } // Print the result at row 50 std::cout << "Result at row 50: " << current_row << std::endl; return 0; }
Editor is loading...
Leave a Comment