Projecte: el Joc Mastermind

Sumari

  1. El joc de mastermind
  2. Regles del joc
  3. Adaptacions
  4. Funcionament i simplificacions
  5. Final del joc
  6. 1vs1 o solitari
  7. Esquelet
  8. Joc de proves complet
  9. Joc de proves evaluacions
  10. Fonts

El joc de mastermind


Photo taken by ZeroOne (Treball propi) CC BY-SA, https://commons.wikimedia.org/w/index.php?curid=75983

Regles del joc

Un jugador col·loca en secret quatre peces d'algun dels sis colors (es pot repetir el color i posar-los en qualsevol ordre) i l'oponent ha d'esbrinar-los en un nombre limitat de torns. A cada torn, qui intenta endevinar col·loca quatre peces de colors i l'altre respon indicant amb fitxes blanques i negres depenent de la combinació introduïda.

Adaptacions

Funcionament i simplificacions

Cada cop que l'usuari introduiex una nova combinació, per cada peça, s'indicarà si ha encertat la lletra i està en la posició correcte. En cas que no sigui així, avaluarem si la lletra existeix a la combinació secreta però és en un altre lloc.

Exemples:
guess = AABC secret = ADFE
rightPosition=1, wrongPosition=1

Final del joc

Guanya l'usuari si encerta la combinació o perd si s'esgoten els slots (vegeu la imatge del joc).

1vs1 o solitari

El joc tindrà dues modalitats de joc.

En la primera, un primer usuari introduirà la combinació secreta i un segon usuari haurà de descobrir-la. En una segona modalitat el programa generarà una combinació que haurem d'endevinar.

Esquelet

Utilitza el següent esquelet per desenvolupar el teu joc. Anomena l'arxiu Mastermind

import java.util.*

data class Evaluation(val rightPosition: Int, val wrongPosition: Int)
fun main() {
    // Use only this scanner
    val scanner = Scanner(System.`in`)
    // Your code
    
    //use this function
    var evaluation = evaluateWord("ABCD", "AEEE")
}

fun randomChar():Char{
    val allowedChars = 'A'..'F'
    return allowedChars.random()
}

fun evaluateWord(secret: String, guess: String): Evaluation {
    //Calculate your right and wrong positions and change it as you need
    return Evaluation(0,0)
}

Joc de proves complet

Les línies que comencen per > són les que ha introduït l'usuari

Vols jugar en mode 1vs1 (1) o solitari (2)?
> 1
Introdueix la paraula secreta
> ABCD
Comença el joc!
Introdueix una combinació
> FFFF
Posicions correctes: 0, Posicions incorrectes: 0
Introdueix una combinació
> AAAA
Posicions correctes: 1, Posicions incorrectes: 3
Introdueix una combinació
> ABCD
Enhorabona! has guanyat

Joc de proves evaluacions

Happy coding ;)!

Fonts

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

  2. per afegir un tag desde l'IntelliJ fes clic a VCS -> Git -> Tags. Al fer push, marca l'opció push tags.