Sokoban (II)
En aquesta pràctica continuarem el joc anterior afegint-hi un comptador de passos i creant diversos nivells. També el deixarem obert perquè l'usuari en pugi crear més. El primer que farem serà modificar l'inici del programa (bandera verda), de la manera següent.
Ara crearem les variables següents:
I també les variables llista que es mostren a continuació.
Comentem aquestes variables, 'level' guardarà el nivell en que estem jugant, 'passos' el passos que portem fets en el nivell actual, 'Xi' i 'Yi' les coordenades d'inici del ninot per cada nivell 'i' i 'comptador' el nombre de caixes que tinguem col·locades en el seu lloc (quadre groc) en cada moment.
També hem creat tres variables llista 'X-inici', 'Y-inici' i 'victoria'. Les dues primeres contenen les coordenades x i y, inicials del ninot per a cada nivell del joc, i a la tercera hi posarem el nombre de quadrats grocs que té cada nivell.(condició de victòria).
Creem dos missatges nous 'nivell' i 'avalua' que serviran per comunicar els diferents blocs que escriurem a continuació.
En l'objecte 'etapa', secció programa escrivim el següent bloc.
I modifiquem de nou l'inici dels blocs del ninot de la manera següent.
Ara modificarem el bloc de codi del ninot 'mou' perquè modifiqui les variables 'comptador' i 'passos' cada cop que calgui.
Vegeu que només ens ha fet falta afegir tres instruccions per aconseguir-ho
Ara escriurem un nou bloc en l'objecte 'etapa' que ens permeti detectar la condició de victòria i canvi de nivell.
Només ens fa falta cridar aquest bloc cada vegada que incrementem la variable 'comptador'. Afegim la instrucció corresponent de la forma següent.
Per acabar afegirem un altre bloc que ens permeti navegar pel joc, és a dir, si premem la tecla 'n' avançarem un nivell, si premem la tecla 'p' retrocedirem un nivell i si premem la tecla 'r' reiniciarem el nivell actual.