TDDs a Unity (II)
Bo, doncs com ja comentava intentarem crear un joc simple del penjat. Les regles són simple:
- Es tria una paraula
 - Es tenen 6 vides (cap, braços, cos, cames)
 - La paraula ix inicialment substituida cada lletra per un caràcter '_'
 - 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
Publica un comentari a l'entrada