Exercicis de funcions

elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. Buscamines
    1. Cell
      1. showInformation
    2. Board
      1. addBombs
      2. generateBombsList
      3. calculateAdjacencies
      4. prepareBoard
      5. openCell
      6. showInformation
      7. complete
    3. UI
      1. Play
    4. Main

Buscamines

L'objectiu d'aquest exercici és desenvolupar el joc buscamines fent servir una metodologia bottom-up.

Cell

Volem fer una classe anomenada Cell

showInformation

Afegeix un mètode a la classe Cell que retorni un string que indiqui:
X : si no ha estat oberta
B : si ha estat oberta i conté una bomba
3 : si ha estat oberta mostra el valor de bombes adjacents (valor -1 .. 8)

Fes el testing d'aquest mètode

Board

Volem fer una classe anomenada Board (taulell)

addBombs

Fes el testing d'aquest mètode

generateBombsList

Fes un mètode anomenat GenerateBombsList que generi una posició i aleatòria

(0..n - 1).random()

i una posició j per cada bomba que contindrà el Board. Assegura't que aquesta llista no conté repeticions

A aquest mètode no se li pot fer testing!

calculateAdjacencies

Fes un mètode que per cada casella d'un taulell de buscamines calculi quantes bombes adjacents té
Per exemple donat aquest taulell:

X X X
B 3 B 
X X B

La casella cell=[1,1] té tres bombes adjacents per tant cell.adjacent = 3

Fes el testing!

prepareBoard

Fes un mètode que afegeixi les bombes de forma aleatòria i calculi les adjacencies.

openCell

Fes un mètode que donada una pocició x,y obri la cel·la i que retorni true si hi ha una bomba a la cel·la.

showInformation

Fes el testing!

complete

Fes un mètode que retorni true si el jugador ha completat el taulell

Fes el testing!

UI

Fes la classe user interface, aquesta classe s'encarrega de mostrar i recollir les dades de l'usuari.
Necessitarà fer ús de l'scanner (un únic scanner per tot el projecte) per entrar les dades. Per tant l'scanner serà un atribut de la classe.

Play

Main

fun main() {
    var board = Board(5,5)
    var ui = Ui(board)
    ui.play()
}