TDDs a Unity (II)

Bo, doncs com ja comentava intentarem crear un joc simple del penjat. Les regles són simple:

  1. Es tria una paraula
  2. Es tenen 6 vides (cap, braços, cos, cames)
  3. La paraula ix inicialment substituida cada lletra per un caràcter '_'
  4. Es pot elegir entre resodre i endivinar una lletra
  • Si resols i encertes guanyes
  • Si resols i no encertes perds una vida
  • Si endivines una lletra se substituix el caràcter '_' per la lletra corresponent en la posició pertinent
  • Si no encertes la lletra perds una vida


Comencem a programar ;) Obrim el Visual Studio i creem un projecte C# (per exemple de consola). Si no elegixes un projecte buid com jo, a l'intentar fer els tests, et dona un error que no troba cap main, te tocarà crear un nou arxiu.cs, i posar-li una funció main dummy:


 class Program
    {
        static void Main(string[] args)
        {
        }
    }

Afegim a la solució un projecte nou de test (ja ho vaig explicar a un altre post) i automàticament ens crea un test d'unitat, jo vaig pensar en aquestos tests:

  • public void GuessWordOK()
  • public void GuessWordFail()
  • public void LetterFail()
  • public void LetterOK()
  • public void WordCompleted()
  • public void WordNotCompleted()
  • public void YourDead()
  • public void CantGuessWordWhenDead()
  • public void CantGuessLetterWhenDead()
  • public void IndexIsGuessed() (Este crec que no faria falta )
  • public void GetLetterAtIndex() (Este crec que tampoc faria falta)
  • public void GetWordCompleted() 


No vaig a copiar i pegar totes les funcions per no avorrir (potser puge el codi el github), mirem per exemple la primera i la última:

 [TestMethod]
        public void GuessWordOK(){
            Tests.HangMan Hang = new Tests.HangMan("hola");
            bool res1 = Hang.DoTry("hola");
            Assert.IsTrue(res1);
        }
Creem la classe penjat (el joc), i intentem endevinar la paraula.
[TestMethod]
        public void GetWordCompleted()
        {
            HangMan Hang = new HangMan("hola");
            Hang.GuessLetter('o');
            Hang.GuessLetter('l');
            Hang.GuessLetter('z');
            Assert.AreEqual("_ol_", Hang.GetWordCompleted());
        }
Creem la classe joc i després de 3 intents (dos encertats i un fallit) comprovem que les lletres encertades estan actives i les que no amb un '_'

Comentaris

Entrades populars d'aquest blog

Comparativa dels Sistemes Polítics Espanyol, Valencià i d'un partit polític. (II)

Clean Code... WTF? És realment viable?

Hui he vist la por als ulls