Diferència entre revisions de la pàgina «M3 - Programació estructurada / Pràctiques UF2: Pt3»

De wikiserver
Dreceres ràpides: navegació, cerca
 
(Hi ha 6 revisions intermèdies del mateix usuari que no es mostren)
Línia 9: Línia 9:
 
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 
{|border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 
|-
 
|-
| PK|| gg
+
| 10x10|| 10 mines
 
|-
 
|-
|NN,U||NN
+
| 15x15|| 15 mines
 +
|-
 +
| 20x20|| 20 mines
 
|}
 
|}
  
 +
El joc comença demanant a l’usuari quin tipus de tauler vol. A partir d’aquí és col·loquen les mines i es mostra el tauler:
  
 +
[[Fitxer:uf2_pract_recursivitat_2.png|400px|center Recursivitat]]
 +
 +
El símbol # indica que la casella no s’ha descobert.
 +
 +
El símbol X indicarà que s’ha marcat una mina.
 +
 +
A partir d’aquí comença a jugar indicant si vol marcar (‘M’) o descobrir (‘D’) i a quina posició (fila, columna).
  
10x10
 
15x15
 
20x20
 
10 mines
 
15 mines
 
20 mines
 
El joc comença demanant a l’usuari quin tipus de tauler vol.
 
A partir d’aquí és
 
col·loquen les mines i es mostra el tauler :
 
El símbol # indica que la casella no s’ha descobert
 
El símbol X indicarà que s’ha marcat una mina
 
A partir d’aquí comença a jugar indicant si vol marcar (‘M’) o descobrir (‘D’) i a quina
 
posició (fila, columna)
 
 
En el cas que es descobreixi una casella que no tingui una mina s’haurà de:
 
En el cas que es descobreixi una casella que no tingui una mina s’haurà de:
* Si la casella no està contigua a cap mina, descobrir-se totes les caselles que estan
+
 
buides i contigües a la casella descoberta (aquesta haurà de ser una funció recursiva,
+
* Si la casella no està contigua a cap mina, descobrir-se totes les caselles que estan buides i contigües a la casella descoberta (aquesta haurà de ser una funció recursiva, donat que al descobrir una casella s’haurà de tornar a executar per a totes les adjacents).
donat que al descobrir una casella s’haurà de tornar a executar per a totes les adjacents)
+
 
*
+
* Si la casella està contigua a alguna mina, indicar el nombre de mines que té aquesta casella a la seva al voltant.
Si la casella està contigua a alguna mina, indicar el nombre de mines que té
+
 
aquesta casella a la seva al voltant.Si es descobreix una casella que conté una mina, el joc ha de finalitzar.
+
[[Fitxer:uf2_pract_recursivitat_1.png|400px|center Recursivitat]]
 +
 
 +
Si es descobreix una casella que conté una mina, el joc ha de finalitzar.
 +
 
 
Al final de la partida se li mostrarà el temps que ha fet.
 
Al final de la partida se li mostrarà el temps que ha fet.
 +
 
Per a fer-ho cal utilitzar el següent codi:
 
Per a fer-ho cal utilitzar el següent codi:
 +
<source lang="java">
 
Quan comenci a jugar, guardar l'hora actual:
 
Quan comenci a jugar, guardar l'hora actual:
long inici = System.currentTimeMillis();
+
 
 +
  long inici = System.currentTimeMillis();
 +
 
 
Quan acabi de jugar, guardar l'hora actual:
 
Quan acabi de jugar, guardar l'hora actual:
long fi = System.currentTimeMillis();
+
 
I fer la resta. Cal tenir present que el temps està donat en mil·lisegons i per tant per
+
  long fi = System.currentTimeMillis();
mostrar els segons de joc cal dividir per 1000.
+
</source>
 +
 
 +
I fer la resta. Cal tenir present que el temps està donat en mil·lisegons i per tant per mostrar els segons de joc cal dividir per 1000.
 +
 
 
Ha de donar també la possibilitat de tornar a començar la partida.
 
Ha de donar també la possibilitat de tornar a començar la partida.
Possibles millores
+
 
Oferir la possibilitat de desmarcar una mina
+
'''Possibles millores'''
Poder interrompre el joc durant la partida i no haver d’esperar al final per sortir
+
 
 +
* Oferir la possibilitat de desmarcar una mina.
 +
 
 +
* Poder interrompre el joc durant la partida i no haver d’esperar al final per sortir.
 
del programa
 
del programa
+
 
Mostrar una pantalla inicial d’Ajut /Introducció al joc, en la qual s’expliqui
+
* Mostrar una pantalla inicial d’Ajut /Introducció al joc, en la qual s’expliqui l’objectiu i el funcionament del joc.
l’objectiu i el funcionament del joc
 

Revisió de 16:57, 15 abr 2021

Buscamines

Cal dissenyar i implementar el joc del “Buscamines”, tenint en compte les següents consideracions:

Introducció

L'objectiu del Buscamines és trobar totes les mines el més aviat possible, sense descobrir cap. Si es descobreix una mina, es perdrà la partida. Depenent del tauler que triï el jugador, es repartiran pel tauler un nombre de mines:

10x10 10 mines
15x15 15 mines
20x20 20 mines

El joc comença demanant a l’usuari quin tipus de tauler vol. A partir d’aquí és col·loquen les mines i es mostra el tauler:

center Recursivitat

El símbol # indica que la casella no s’ha descobert.

El símbol X indicarà que s’ha marcat una mina.

A partir d’aquí comença a jugar indicant si vol marcar (‘M’) o descobrir (‘D’) i a quina posició (fila, columna).

En el cas que es descobreixi una casella que no tingui una mina s’haurà de:

  • Si la casella no està contigua a cap mina, descobrir-se totes les caselles que estan buides i contigües a la casella descoberta (aquesta haurà de ser una funció recursiva, donat que al descobrir una casella s’haurà de tornar a executar per a totes les adjacents).
  • Si la casella està contigua a alguna mina, indicar el nombre de mines que té aquesta casella a la seva al voltant.

center Recursivitat

Si es descobreix una casella que conté una mina, el joc ha de finalitzar.

Al final de la partida se li mostrarà el temps que ha fet.

Per a fer-ho cal utilitzar el següent codi:

Quan comenci a jugar, guardar l'hora actual:

   long inici = System.currentTimeMillis();

Quan acabi de jugar, guardar l'hora actual:

   long fi = System.currentTimeMillis();

I fer la resta. Cal tenir present que el temps està donat en mil·lisegons i per tant per mostrar els segons de joc cal dividir per 1000.

Ha de donar també la possibilitat de tornar a començar la partida.

Possibles millores

  • Oferir la possibilitat de desmarcar una mina.
  • Poder interrompre el joc durant la partida i no haver d’esperar al final per sortir.

del programa

  • Mostrar una pantalla inicial d’Ajut /Introducció al joc, en la qual s’expliqui l’objectiu i el funcionament del joc.