int main (int argc, char *argv[]) { int m = atoi(argv[1]); int n = atoi(argv[2]); int cantQuesos = atoi(argv[3]); int cantVenenos = atoi(argv[4]); if((3 < cantVenenos || cantVenenos <= 0) || (0 > cantQuesos || cantQuesos > (m*n))){ printf("La cantidad de venenos debe estar entre 0 y 3\n"); printf("La cantidad de quesos debe de ser menor a %d\n",m*n); return 0; } Casilla** matrizLog = crearMatrizAleatoria(m,n,cantQuesos,cantVenenos); matrizLog = camino(matrizLog,m,n); GtkWidget *win; gtk_init(&argc,&argv); /* Create the main window */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(win, m*40, n*40); g_signal_connect(win, "destroy",G_CALLBACK(gtk_main_quit),NULL); //set_icon_from_file("icono.png"); GtkWidget*** matriz = (GtkWidget***)malloc(m*sizeof(GtkWidget**)); int i; for(i = 0;i < m; i++){ matriz[i] = (GtkWidget**)malloc(n*sizeof(GtkWidget*)); } GtkWidget* matrizGraph = gtk_grid_new(); gtk_container_add(GTK_CONTAINER(win),matrizGraph); /*GtkWidget* label1 = gtk_label_new(NULL); gtk_label_set_markup (GTK_LABEL (label1), "<small>Puto</small>"); gtk_container_add(GTK_CONTAINER(win),label1);*/ gtk_widget_show(matrizGraph); //gtk_widget_show(label1); gtk_widget_show(win); int recFila,recColumna; for(recFila = 0; recFila < m; recFila++){ for(recColumna = 0; recColumna < n; recColumna++){ matriz[recFila][recColumna] = gtk_image_new_from_file("3.png"); gtk_grid_attach(GTK_GRID(GTK_CONTAINER(matrizGraph)),matriz[recFila][recColumna],recColumna,recFila,1,1); gtk_widget_show(matriz[recFila][recColumna]); } } callThread(matrizLog,matriz,m,n); verCamino(matrizLog,m,n); gtk_main (); free(matriz); return 0; }
// Intenta moverse en una direccion int intentar(paso_t ** S, char D) { int c; c = camino(*S, D); // Encontramos la salida if(c == SALIDA) { printf("Encontramos la salida!\n"); } // El camino esta cerrado else if (c == CERRADO) { cerrar(*S, D); // Si no se puede seguir, cerramos printf("Intento hacia %c, camino cerrado.\n", D); } // Se puede continuar else { cerrar(*S, D); avanzar(S, nodo()); cerrar(*S, opuesto(D)); printf("Avanzando hacia %c...\n", D); } return c; }
int main (int argc, char *argv[]) { int m = atoi(argv[1]); int n = atoi(argv[2]); int cantQuesos = atoi(argv[3]); int cantVenenos = atoi(argv[4]); if((3 < cantVenenos || cantVenenos <= 0) || (0 > cantQuesos || cantQuesos > (m*n))){ printf("La cantidad de venenos debe estar entre 0 y 3\n"); printf("La cantidad de quesos debe de ser menor a %d\n",m*n); return 0; } Casilla** matrizLog = crearMatrizAleatoria(m,n,cantQuesos,cantVenenos); matrizLog = camino(matrizLog,m,n); GtkWidget *win; gtk_init(&argc,&argv); /* Create the main window */ win = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(win, m*40, n*40); g_signal_connect(win, "destroy",G_CALLBACK(gtk_main_quit),NULL); //set_icon_from_file("icono.png"); GtkWidget*** matriz = (GtkWidget***)malloc(m*sizeof(GtkWidget**)); int i; for(i = 0;i < m; i++){ matriz[i] = (GtkWidget**)malloc(n*sizeof(GtkWidget*)); } GtkWidget* matrizGraph = gtk_grid_new(); gtk_container_add(GTK_CONTAINER(win),matrizGraph); /* pRaton ratonProf; ratonProf = (pRaton)malloc(sizeof(raton)); ratonProf->x = (rand() % m); ratonProf->y = (rand() % n); ratonProf->velocidad = 1; ratonProf->matriz = matrizLog; Pila pila = NULL; matrizLog[ratonProf->x][ratonProf->y].ratonProf = true; printf("\n Empezo en %d , %d \n Profundidad \n",ratonProf->x,ratonProf->y); Push(&pila,&ratonProf->matriz[ratonProf->x][ratonProf->y]); profundidad(&ratonProf,&pila); cNodo primero = NULL; cNodo aux = malloc(sizeof(cNodo)); int c = (rand()%m); int v = (rand()%n); aux->elem = &matrizLog[c][v]; aux->elem->ratonAnch = true; printf("\n Empezo anchura en %d , %d \n Anchura \n",c,v); Anadir(&primero,aux); anchura(&primero,matrizLog); printf("\n Random \n"); randomR(matrizLog,c,v);*/ /*aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa*/ gtk_widget_show(matrizGraph); //gtk_widget_show(label1); gtk_widget_show(win); int recFila,recColumna; for(recFila = 0; recFila < m; recFila++){ for(recColumna = 0; recColumna < n; recColumna++){ matriz[recFila][recColumna] = gtk_image_new_from_file("3.png"); gtk_grid_attach(GTK_GRID(GTK_CONTAINER(matrizGraph)),matriz[recFila][recColumna],recColumna,recFila,1,1); gtk_widget_show(matriz[recFila][recColumna]); } } callThread(matrizLog,matriz,m,n); int seed = time(NULL); srand(seed); //gtk_main (); colocarRaton(matrizLog,m,n,matriz,2); colocarRaton(matrizLog,m,n,matriz,3); colocarRaton(matrizLog,m,n,matriz,4); gtk_main (); free(matriz); return 0; }