Diferència entre revisions de la pàgina «ASIX-M3-UF2-A2.2-Pràctiques recursivitat»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «==Buscamines== Cal dissenyar i implementar el joc del “Buscamines”, tenint en compte les següents consideracions: '''Introducció''' L'objectiu del Buscamines...».)
 
Línia 39: Línia 39:
  
 
Per a fer-ho cal utilitzar el següent codi:
 
Per a fer-ho cal utilitzar el següent codi:
<source lang="java">
+
<source lang="python">
 +
import time
 +
 
 
Quan comenci a jugar, guardar l'hora actual:
 
Quan comenci a jugar, guardar l'hora actual:
  
  long inici = System.currentTimeMillis();
+
inici = time.strftime("%H:%M:%S") # Format 24 hores  (time.strftime("%I:%M:%S") #Formato de 12 horas)
  
 
Quan acabi de jugar, guardar l'hora actual:
 
Quan acabi de jugar, guardar l'hora actual:
  
  long fi = System.currentTimeMillis();
+
fi = time.strftime("%H:%M:%S") # Format 24 hores
 +
 
 +
# si volem calcular el temps transcorregut: time.time()
 +
# Cal tenir present que el temps està donat en mil·lisegons i per tant per mostrar els segons de joc cal dividir per 1000.
 
</source>
 
</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.
Línia 57: Línia 60:
 
* Oferir la possibilitat de desmarcar una mina.
 
* Oferir la possibilitat de desmarcar una mina.
  
* Poder interrompre el joc durant la partida i no haver d’esperar al final per sortir.
+
* 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 l’objectiu i el funcionament del joc.
+
* Mostrar una pantalla inicial d’Ajut / Introducció al joc, en la qual s’expliqui l’objectiu i el funcionament del joc.

Revisió del 15:41, 23 març 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:

import time

Quan comenci a jugar, guardar l'hora actual:

inici = time.strftime("%H:%M:%S") # Format 24 hores  (time.strftime("%I:%M:%S") #Formato de 12 horas)

Quan acabi de jugar, guardar l'hora actual:

fi = time.strftime("%H:%M:%S") # Format 24 hores

# si volem calcular el temps transcorregut: time.time()
# 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.