#include #include #include #include #include #include char* color_table[] = {"red", "blue", "green", "cyan", "magenta"}; int max_colors = 5; int random_int(int range) { return rand()%range; } char* random_color(int max) { return color_table[random_int(max)]; } int getBlockCount(float prob) { int count = 1; while (drand48() > prob) count++; return count; } int getColorCount(float prob) { return 3; /* int count = 1; while (drand48() > prob) count++; return count; */ } int color_count; int block_count; int bc_count; char* *bc_vec; void printDomain(); void printActions(); void printProblem(); void printInitStack(); void printInitColors(); void printGoal(); void printRecursiveStack(int block_index, int tower_index); void printDomain() { cout << "(define" << endl << " (domain blocks-domain)" << endl << " (:requirements :negative-preconditions" << endl << " :universal-preconditions :existential-preconditions" << endl << " :disjunctive-preconditions :probabilistic-effects" << endl << " :conditional-effects :rewards :equality)" << endl; cout << " (:predicates" << endl; for (int i=0; i