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

De wikiserver
Dreceres ràpides: navegació, cerca
(Buscamines)
 
Línia 1: Línia 1:
<!--
 
===Prova 3===
 
 
1. Escriu un programa que imprimeixi el següent “triangle” de números tenint com a entrada el número de files. Per exemple si l’entrada fos 5 la sortida seria:  '''2 punts'''
 
<pre>
 
1
 
1 2 1
 
1 2 3 2 1
 
1 2 3 4 3 2 1
 
1 2 3 4 5 4 3 2 1
 
</pre>
 
 
2. Volem construir una seqüència de números caracteritzada per:
 
:* El primer element anomenat llavor pot ser qualsevol número positiu
 
:* El segon element és igual a la llavor més 1
 
:* Els altres elements són el producte de tots els anteriors més 1
 
:* Per exemple si la llavor és 2, els primers elements són : 2, 3, 7, 43, 1807, 3263443, ... 
 
 
Escriu un programa que '''donada una llavor introduïda per teclat i un número màxim''' també introduït per teclat, ens mostri tota la seqüència d’elements de la seqüència inferiors al màxim, i finalment ens digui quants elements hi ha.  '''1,5 punts'''
 
 
Per exemple:
 
<pre>
 
Si llavor=2 i màxim=1000, escriurà : 2 3 7 43 i escriurà que la seqüència té 4 elements
 
Si llavor =3 i màxim =25000, escriurà : 3 4 13 157 24493 i escriurà que la seqüència té 5 elements
 
</pre>
 
 
3. Escriu un programa que demani un número senar com a entrada. Donarà com a sortida una lletra ' T ' majúscula escrita amb lletres ' t ' minúscules com les de la figura. La longitud de la barra superior i l'alçada de la T són les mateixes i iguals al número
 
entrat per teclat ( a l'exemple 7). '''1,5 punts'''
 
<pre>
 
  t t t t t t t
 
        t
 
        t
 
        t
 
        t
 
        t
 
        t
 
</pre>
 
 
4. En una seqüència de números enters positius acabada en -1, indicar quants números són iguals a la suma de tots els números que el precedeixen: '''1,5 punts'''
 
Exemple:
 
<pre>
 
3  7  10  3  23  9  55  110  2  11  12  245  33  45  56  77 -1
 
 
Hi ha 4 números iguals a la suma dels que el precedeixen
 
(10  23  55 110  245)
 
</pre>
 
 
5. En una seqüencia de números enters positius acabada en -1, determinar si s’ha produït una seqüencia de 5 números en els que cada número és major que l’anterior o una seqüencia de 5 números en els que cada número és menor que l’anterior. '''1,5 punts'''                                                                                                                           
 
 
Exemples.
 
<pre>
 
3  7  22  3  4  67 12  87  76  111  124  33  45  56  77 -1 → NO
 
 
3  7  22  3  4  67 12  87  76  111  124  33  45  56  77  88  99  → SÍ
 
 
3  7  22  3  4  67 12  87  76  111  124  88  45  36  17  11 → SÍ
 
</pre>
 
 
6. Mostra per pantalla aquesta "representació" a partir d’un número introduït per teclat (en el exemple 5).                                                                                                  '''2 punts'''
 
<pre>
 
  # # # # # # #
 
  #    *    #         
 
  #    *    #
 
  # * * * * * #
 
  #    *    #   
 
  #    *    #   
 
  # # # # # # #
 
</pre>
 
-->
 
 
 
==Buscamines==
 
==Buscamines==
  

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.