![]() |
Mòdul 8 ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Ei, ei! La introducció a aquest mòdul no te la pots saltar! Hi expliquem en què consisteix el projecte què faràs a les pràctiques... |
|||
El Joc de la Vida | ||||
En aquest mòdul posaràs en funcionament tot el que ja saps, i podràs construir tota una aplicació completa: el Joc de la Vida. | ||||
Una mica d'història | ||||
Al número d'octubre de Scientific American de 1970, a la secció "Mathematical games", Martin Gardner hi exposava, per primera vegada, una descripció del joc "Life" (el "Joc de la Vida"), que havia estat creat el mateix any pel matemàtic britànic John Horton Conway, (Liverpool, 1937). Aquest joc tingué un exit enorme i instantani
i el nom de Conway
esdevingué ràpidament popular. Sovint s'ha arribat a dir
que, des de 1970, ha estat dedicat més temps de computació
al Joc de la Vida
que a qualsevol altra activitat. El mateix Gardner
va escriure que:
|
||||
El joc i les seves regles | ||||
El Joc de la Vida és un joc per a zero jugadors (!), cosa que vol dir que l'evolució està completament determinada per l'estat inicial i les regles del joc, sense que calgui cap intervenció d'un jugador humà, una vegada s'ha iniciat el procés. El Joc de la Vida es juga en una quadrícula (el món), en la qual, a cadascuna de les seves cel·les, hi ha un ésser que pot ser viu o mort. L'ésser de cada cel·la té vuit éssers veïns que són els que ocupen les cel·les adjacents a la cel·la considerada,
i el món evoluciona en estats consecutius (passos) de manera que l'estat (viu o mort) de tots els éssers en un cert moment determinen l'estat que tindran en l'estat següent, després d'un pas, a partir d'aquestes dues regles:
|
||||
A jugar! | ||||
Aquí sota hi tens un applet que permet veure el Joc de la Vida en funcionament: | ||||
|
||||
Pots posar i treure éssers del món tot fent clic amb el ratolí a la posició que els vulguis... | ||||
|
||||
Més informació | ||||
Moltes configuracions inicials d'éssers no sobreviuen més de tres o quatre passos, en canvi, d'altres, porten a evolucions molt vistoses i, encara, n'hi ha d'altres que són estables o bé cícliques. Pots provar amb algunes d'aquestes: | ||||
|
||||
Hi ha un munt
de pàgines a Internet sobre el Joc
de la Vida., algunes amb propostes de configuracions inicials
ben interessants; aquí en tens una selecció: |
||||
|
||||
La feina a fer | ||||
Ara que ja saps de què va, la feina a fer en aquest mòdul és, precisament, fer una aplicació que jugui el Joc de la Vida. Allò que et proposem fer tindrà un aspecte molt semblant a l'applet de més amunt. Però, amb inventiva, pots aconseguir donar-li molta més qualitat i fer que treballi com els applets dels enllaços d'aquí sobre. La feina a cada pràctica serà aquesta: |
||||
![]() |
Planificar, planificar, planificar... |
|||
La primera pràctica està dedicada a descriure com es pot planificar, just abans d'escriure codi, una aplicació Java i, en particular, quina és la planificació per a l'aplicació del Joc de la Vida. |
||||
La GUI (Graphics User Interface)
(I) |
||||
En aquesta pràctica començaràs la construcció de la GUI ("Graphics User Interface", és a dir, allò que l'usuari veu a la pantalla de la màquina i que li serveix per interactuar amb l'aplicació. |
||||
La GUI (Graphics User Interface)
(II) |
||||
En aquesta pràctica et dedicaràs a posar i fer actius els botons de comanament del Joc de la Vida i acabar, per tant la GUI de l'aplicació. |
||||
El món i els éssers
del món |
||||
En aquesta pràctica iniciaràs el muntatge de les tripes del Joc de la Vida: les classes que, tot interactuant amb la GUI, en comanen el funcionament. | ||||
La Vida al Món |
||||
Finalment, és en aquesta pràctica en la qual, al final, el Joc ja es juga... Les classes i mètodes ja quedaran complets i, almenys pas a pas, ja podràs veure l'evolució dels éssers en el món del Joc de la Vida. | ||||
![]() |
Fils (Threads). El procés continu | |||
Ara es tracta que el Joc de la Vida es mogui sol: per aconseguir-ho, cal programar el procés de passos successius automàtics com un fil (thread) independent: aquí aprendràs, doncs, les bases per fer aplicacions amb fils (threads) independents. | ||||
![]() |
Fora de BlueJ | |||
Aquesta pràctica final està
dedicada a aconseguir que l'aplicació del Joc
de la Vida es pugui executar com a aplicació independent
de l'entorn ![]() |
||||
Som-hi! | ||||