###! Memoria general #set_memory 100000 1000000000 ###! ###! JUEGO DE PRUEBAS DE CAMBRA ###! ###! ###1 Cambra: Constructora ###! ###1.1 Constructora basica #init c cambra #print_c *** * * *** ##*** ##* * ##*** ###1.2 Constructora 1 orientacion #init cN cambra N #print_c * * * * *** ##* * ##* * ##*** #init cE cambra E #print_c *** * *** ##*** ##* ##*** #init cW cambra W #print_c *** * *** ##*** ## * ##*** #init cS cambra S #print_c *** * * * * ##*** ##* * ##* * ###1.3 Constructora 2 orientaciones #init cNS cambra N S #print_c * * * * * * ##* * ##* * ##* * #init cEW cambra E W #print_c *** *** ##*** ## ##*** #init cNE cambra N E #print_c * * * *** ##* * ##* ##*** #init cNW cambra N W #print_c * * * *** ##* * ## * ##*** #init cES cambra E S #print_c *** * * * ##*** ##* ##* * #init cSW cambra S W #print_c *** * * * ##*** ## * ##* * ###1.4 Constructora 3 orientaciones #init cNES cambra N E S #print_c * * * * * ##* * ##* ##* * #init cESW cambra E S W #print_c *** * * ##*** ## ##* * #init cSWN cambra S W N #print_c * * * * * ##* * ## * ##* * #init cNEW cambra N E W #print_c * * *** ##* * ## ##*** ###1.5 Constructora 4 orientaciones #init cNESW cambra N E W S #print_c * * * * ##* * ## ##* * ###! ###2 Cambra: constructora por copia y destructora ###! #initcopy ccopia = c #ccopia print_c *** * * *** ##*** ##* * ##*** #ccopia destroy #initcopy ccopia = cNEW #ccopia print_c * * *** ##* * ## ##*** #ccopia destroy ###! ###3 Cambra: copia ###! #init ccopia cambra #ccopia = cNEW #ccopia print_c * * *** ##* * ## ##*** #ccopia destroy ###! ###4 Cambra: hi_ha_porta ###! #c hi_ha_porta N false ##false #c hi_ha_porta E false ##false #c hi_ha_porta W false ##false #c hi_ha_porta S false ##false ###! #cN hi_ha_porta N true ##true #cN hi_ha_porta E false ##false #cN hi_ha_porta W false ##false #cN hi_ha_porta S false ##false ###! #cE hi_ha_porta N false ##false #cE hi_ha_porta E true ##true #cE hi_ha_porta W false ##false #cE hi_ha_porta S false ##false ###! #cW hi_ha_porta N false ##false #cW hi_ha_porta E false ##false #cW hi_ha_porta W true ##true #cW hi_ha_porta S false ##false ###! #cNES hi_ha_porta N true ##true #cNES hi_ha_porta E true ##true #cNES hi_ha_porta W false ##false #cNES hi_ha_porta S true ##true ###! #cESW hi_ha_porta N false ##false #cESW hi_ha_porta E true ##true #cESW hi_ha_porta W true ##true #cESW hi_ha_porta S true ##true ###! #cNESW hi_ha_porta N true ##true #cNESW hi_ha_porta E true ##true #cNESW hi_ha_porta W true ##true #cNESW hi_ha_porta S true ##true ###! #cNESW hi_ha_porta norte false ##false #cNESW hi_ha_porta NO_DIR false ##false #c hi_ha_porta NO_DIR false ##false ###! ###5 Cambra: obre_porta_c ###! #c obre_porta_c N #c print_c * * * * *** ##* * ##* * ##*** #c obre_porta_c E #c print_c * * * *** ##* * ##* ##*** #c obre_porta_c W #c print_c * * *** ##* * ## ##*** #c obre_porta_c S #c print_c * * * * ##* * ## ##* * #c obre_porta_c S #c print_c * * * * ##* * ## ##* * #c obre_porta_c Sur Error::cambra:21:La paret no existeix ##Error::cambra:21:La paret no existeix #c obre_porta_c NO_DIR Error::cambra:21:La paret no existeix ##Error::cambra:21:La paret no existeix ###! ###6 Cambra: tanca_porta_c ###! #c tanca_porta_c N #c print_c *** * * ##*** ## ##* * #c tanca_porta_c S #c print_c *** *** ##*** ## ##*** #c tanca_porta_c W #c print_c *** * *** ##*** ##* ##*** #c tanca_porta_c E #c print_c *** * * *** ##*** ##* * ##*** #c tanca_porta_c E #c print_c *** * * *** ##*** ##* * ##*** #c tanca_porta_c Norte Error::cambra:21:La paret no existeix ##Error::cambra:21:La paret no existeix #c tanca_porta_c NO_DIR Error::cambra:21:La paret no existeix ##Error::cambra:21:La paret no existeix ###! ###7 Cambra: == ###! #cNE == cNE true ##true #cN == cNE false ##false #c == c true ##true #cNESW == cNESW true ##true #initcopy cSWcopia = cSW #cSWcopia == cSW true ##true #cSWcopia obre_porta_c N #cSWcopia == cSW false ##false #cSWcopia == cSWN true ##true ###! ###8 Cambra: != ###! #cNE != cNE false ##false #cN != cNE true ##true #c != c false ##false #cNESW != cNESW false ##false #initcopy cSWcopia = cSW #cSWcopia != cSW false ##false #cSWcopia obre_porta_c N #cSWcopia != cSW true ##true #cSWcopia != cSWN false ##false #cSWcopia destroy ###! ###9 Cambra: destruccion ###! #c destroy #cN destroy #cE destroy #cS destroy #cW destroy #cNE destroy #cNS destroy #cNW destroy #cES destroy #cEW destroy #cSW destroy #cNES destroy #cNEW destroy #cESW destroy #cSWN destroy #cNESW destroy ###! ###! ###! JUEGO DE PRUEBAS DE LABERINT ###! ###1 Laberint: Constructora con dimensiones ###! ###1.1 Entrada correcta ###! #init lab1x1 laberint 1 1 #print 1 1 *** * * *** ##1 1 ##*** ##* * ##*** #init lab3x3 laberint 3 3 #print 3 3 ******* * * * * ******* * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * * ##******* #init lab5x2 laberint 5 2 #print 5 2 ***** * * * ***** * * * ***** * * * ***** * * * ***** * * * ***** ##5 2 ##***** ##* * * ##***** ##* * * ##***** ##* * * ##***** ##* * * ##***** ##* * * ##***** #init lab2x5 laberint 2 5 #print 2 5 *********** * * * * * * *********** * * * * * * *********** ##2 5 ##*********** ##* * * * * * ##*********** ##* * * * * * ##*********** ###! ###1.2 Entrada incorrecta ###! #init laberr laberint 0 14 Error::laberint:31:El num de fils o cols es incorrecte. ##Error::laberint:31:El num de fils o cols es incorrecte. #init laberr laberint 12 0 Error::laberint:31:El num de fils o cols es incorrecte. ##Error::laberint:31:El num de fils o cols es incorrecte. #init laberr laberint 0 0 Error::laberint:31:El num de fils o cols es incorrecte. ##Error::laberint:31:El num de fils o cols es incorrecte. ###! ###1.3 Entrada grande ###! #init lab_gran laberint 100 100 #num_files 100 ##100 #num_columnes 100 ##100 #lab1x1 destroy #lab3x3 destroy #lab5x2 destroy #lab2x5 destroy #lab_gran destroy ###! ###2 Laberint: Constructora con ficheros ###! ###! ###2.1 Laberinto sin ciclos ###! #init lab_unico laberint ./juegos/laberint_3x3.txt #print 3 3 ******* * * * *** * * * * * * * * *** * * * ******* ##3 3 ##******* ##* * * ##*** * * ##* * * * ##* * *** ##* * * ##******* ###! ###2.2 Laberinto con ciclos ###! #init lab_ciclo laberint ./juegos/laberint_3x3_ciclo.txt #print 3 3 ******* * * *** * * * * * * * * * * * * ******* ##3 3 ##******* ##* * ##*** * * ##* * * ##* * * * ##* * * ##******* ###! ###2.3 Laberinto sin puertas ###! #init lab_sin_puertas laberint ./juegos/laberint_3x3_sinpuertas.txt #print 3 3 ******* * * * * ******* * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * * ##******* ###! ###2.4 Laberinto grande ###! #init lab_gran laberint ./juegos/laberint_100x100.txt #num_files 100 ##100 #num_columnes 100 ##100 ###! ###! ###3 Laberint: Constructora por copia, copia y destructora ###! ###3.1 Constructora por copia ###! #initcopy copia = lab_unico #copia print 3 3 ******* * * * *** * * * * * * * * *** * * * ******* ##3 3 ##******* ##* * * ##*** * * ##* * * * ##* * *** ##* * * ##******* #copia destroy #initcopy copia = lab_ciclo #copia print 3 3 ******* * * *** * * * * * * * * * * * * ******* ##3 3 ##******* ##* * ##*** * * ##* * * ##* * * * ##* * * ##******* #copia destroy #initcopy copia = lab_sin_puertas #copia print 3 3 ******* * * * * ******* * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * * ##******* #copia destroy #initcopy copia = lab_gran #copia num_files 100 ##100 #copia num_columnes 100 ##100 #copia destroy ###! ###3.2 copia ###! #init copia laberint 1 1 #copia = lab_unico #copia print 3 3 ******* * * * *** * * * * * * * * *** * * * ******* ##3 3 ##******* ##* * * ##*** * * ##* * * * ##* * *** ##* * * ##******* #copia = lab_ciclo #copia print 3 3 ******* * * *** * * * * * * * * * * * * ******* ##3 3 ##******* ##* * ##*** * * ##* * * ##* * * * ##* * * ##******* #copia = lab_gran #copia num_files 100 ##100 #copia num_columnes 100 ##100 #copia = lab_sin_puertas #copia print 3 3 ******* * * * * ******* * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * * ##******* ###! ###3.3 Destructora ###! #copia destroy #lab_unico destroy #lab_ciclo destroy #lab_sin_puertas destroy #lab_gran destroy ###! ###! ###4 Laberint: consultoras de filas y columnas ###! ###! #init lab1 laberint ./juegos/laberint_7x15.txt #init lab2 laberint ./juegos/laberint_12x3.txt #init lab3 laberint 1 1 #init lab4 laberint 20 2 #init lab5 laberint ./juegos/laberint_3x3_sinpuertas.txt ###! ###! #lab1 num_columnes 15 ##15 #lab1 num_files 7 ##7 #lab2 num_columnes 3 ##3 #lab2 num_files 12 ##12 #lab3 num_columnes 1 ##1 #lab3 num_files 1 ##1 #lab4 num_columnes 2 ##2 #lab4 num_files 20 ##20 #lab5 num_columnes 3 ##3 #lab5 num_files 3 ##3 ###! ###! ###5 Laberint: obre_porta ###! ###! ###5.1 Apertura erronea ###! #lab1 obre_porta_l Norte 2 2 Error::cambra:21:La paret no existeix ##Error::cambra:21:La paret no existeix #lab1 obre_porta_l N 0 0 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix #lab1 obre_porta_l S 7 16 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix #lab1 obre_porta_l S 8 15 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix #lab3 obre_porta_l E 1 2 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix ###! #lab1 obre_porta_l N 1 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab1 obre_porta_l N 1 8 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab1 obre_porta_l S 7 14 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab1 obre_porta_l W 3 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab1 obre_porta_l E 2 15 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior ###! #lab3 obre_porta_l N 1 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab3 obre_porta_l S 1 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab3 obre_porta_l E 1 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior #lab3 obre_porta_l W 1 1 Error::laberint:33:No es pot obrir una porta a l'exterior ##Error::laberint:33:No es pot obrir una porta a l'exterior ###! ###! ###5.2 Apertura correcta ###! ###! ###! las siguientes operaciones se realizan con lab5 (3x3) #sel_curr_obj lab5 #obre_porta_l S 1 1 #print 3 3 ******* * * * * * ***** * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * * ##******* ##* * * * ##******* #obre_porta_l S 1 1 #print 3 3 ******* * * * * * ***** * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * * ##******* ##* * * * ##******* #obre_porta_l N 2 1 #print 3 3 ******* * * * * * ***** * * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * * ##******* ##* * * * ##******* #obre_porta_l W 2 2 #print 3 3 ******* * * * * * ***** * * * ******* * * * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * ##******* ##* * * * ##******* #obre_porta_l W 3 3 #print 3 3 ******* * * * * * ***** * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * ##******* ##* * * ##******* #obre_porta_l E 3 1 #print 3 3 ******* * * * * * ***** * * * ******* * * ******* ##3 3 ##******* ##* * * * ##* ***** ##* * * ##******* ##* * ##******* ###! ###! ###! ###6 Laberint: operator() ###! ###! ###6.1 Consultas correctas #obt_cambra 1 1 *** * * * * ##*** ##* * ##* * #obt_cambra 3 3 *** * *** ##*** ## * ##*** #obt_cambra 2 1 * * * *** ##* * ##* ##*** #obt_cambra 1 2 *** * * *** ##*** ##* * ##*** #obt_cambra 2 2 *** * *** ##*** ## * ##*** ###! ###6.2 Consultas incorrectas ###! #lab3 obt_cambra 4 1 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix #lab5 obt_cambra 0 2 Error::laberint:32:La posició no existeix ##Error::laberint:32:La posicio no existeix ###! ###! ###7 Laberint:tanca_porta ###! ###! ###7.1 Cierres correctos ###! #sel_curr_obj lab5 #tanca_porta_l N 1 1 #obt_cambra 1 1 *** * * * * ##*** ##* * ##* * #tanca_porta_l S 1 1 #obt_cambra 1 1 *** * * *** ##*** ##* * ##*** #obt_cambra 2 1 *** * *** ##*** ##* ##*** #tanca_porta_l W 3 3 #print 3 3 ******* * * * * ******* * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * ##******* ##* * * ##******* #tanca_porta_l E 3 3 #print 3 3 ******* * * * * ******* * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * ##******* ##* * * ##******* #tanca_porta_l E 2 1 #print 3 3 ******* * * * * ******* * * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * ##******* #tanca_porta_l S 2 2 #print 3 3 ******* * * * * ******* * * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * ##******* #tanca_porta_l S 3 2 #print 3 3 ******* * * * * ******* * * * * ******* * * * ******* ##3 3 ##******* ##* * * * ##******* ##* * * * ##******* ##* * * ##******* ###! #lab1 destroy #lab2 destroy #lab3 destroy #lab4 destroy #lab5 destroy ###! ###! Fin del juego de pruebas de laberint ###! ###! ###! JOC DE PROVES DE TESEUS ###!--------------------------------------------------------------------- ###! ###! ###!--------------------------------------------------------------------- ###1 Laberints sense portes ###!--------------------------------------------------------------------- ###! #init lab1x1 laberint_teseus 1 1 #resoldre 0 1 1 1 Error::laberint_teseus:62:La cambra d'inici o de final no es valida. ##Error::laberint_teseus:62:La cambra d'inici o de final no es valida. #resoldre 1 1 1 1 [(1,1)] ##[(1,1)] ###! #init lab2x5 laberint_teseus 2 5 #resoldre 1 2 1 1 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 1 6 1 1 Error::laberint_teseus:62:La cambra d'inici o de final no es valida. ##Error::laberint_teseus:62:La cambra d'inici o de final no es valida. #resoldre 1 1 1 1 [(1,1)] ##[(1,1)] #resoldre 2 1 2 1 [(2,1)] ##[(2,1)] ###! #init lab3x3 laberint_teseus 3 3 #resoldre 1 1 2 1 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 1 1 6 1 Error::laberint_teseus:62:La cambra d'inici o de final no es valida. ##Error::laberint_teseus:62:La cambra d'inici o de final no es valida. #resoldre 1 1 1 1 [(1,1)] ##[(1,1)] #resoldre 3 3 3 3 [(3,3)] ##[(3,3)] ###! #init lab5x2 laberint_teseus 5 2 #resoldre 1 1 1 2 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 1 1 1 6 Error::laberint_teseus:62:La cambra d'inici o de final no es valida. ##Error::laberint_teseus:62:La cambra d'inici o de final no es valida. #resoldre 1 1 1 1 [(1,1)] ##[(1,1)] #resoldre 2 1 2 1 [(2,1)] ##[(2,1)] #resoldre 3 2 3 2 [(3,2)] ##[(3,2)] #resoldre 5 2 5 2 [(5,2)] ##[(5,2)] ###! ###! #lab1x1 destroy #lab2x5 destroy #lab3x3 destroy #lab5x2 destroy ###! ###! ###!--------------------------------------------------------------------- ###2 Laberint amb cicles ###!--------------------------------------------------------------------- ###! ###!--------------------------------------------------------------------- ###2.1 Laberint sense cicles ###!--------------------------------------------------------------------- ###! #init lab_unic laberint_teseus ./juegos/laberint_3x3.txt #resoldre 1 1 3 3 [(1,1),(1,2),(2,2),(3,2),(3,3)] ##[(1,1),(1,2),(2,2),(3,2),(3,3)] #resoldre 1 2 2 3 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 1 2 2 1 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 1 2 1 3 Error::laberint_teseus:61:El laberint no te solucio ##Error::laberint_teseus:61:El laberint no te solucio #resoldre 2 1 3 1 [(2,1),(3,1)] ##[(2,1),(3,1)] #lab_unic destroy ###! ###!--------------------------------------------------------------------- ###2.2 Laberint amb cicles ###!--------------------------------------------------------------------- ###! #init lab_cicle laberint_teseus ./juegos/laberint_3x3_ciclo.txt #resoldre 1 3 3 3 [(1,3),(2,3),(3,3)] ##[(1,3),(2,3),(3,3)] #resoldre 1 2 2 3 [(1,2),(1,3),(2,3)] ##[(1,2),(1,3),(2,3)] #resoldre 1 2 2 1 [(1,2),(2,2),(2,1)] ##[(1,2),(2,2),(2,1)] #chequea_camino_minimo 1 2 3 3