public Vector2(int x, int y)
private Vector2 _posicio;
protected int Velocitat = 1;
_posicio = new Vector2(10, 10);
public Personatge(string nom, int nivell)
_posicio = new Vector2(10, 10);
public void SetNivell(int nivell)
public Vector2 GetPosicio()
public void SetPosicio(Vector2 posicio)
virtual public int GetVelocitat()
public void Moure(Direccio direccio)
Console.WriteLine($"{Nom} es mou");
int velocitat = GetVelocitat();
public class PersonatgeOrc : Personatge
public bool GetCorrer() {
public void SetCorrer(bool estaCorrent)
override public int GetVelocitat()
int velocitatOriginal = base.GetVelocitat();
velocitatOriginal = velocitatOriginal * 2;
return velocitatOriginal;
public class PersonatgeTroll : Personatge
Console.WriteLine($"El Troll ha fet un atac de {Nivell*2} punts. ");
public static void Main()
Personatge[] personatges = new Personatge[4];
personatges[0] = new PersonatgeOrc();
personatges[0].Nom = "Thrall";
personatges[1] = new PersonatgeTroll();
personatges[1].Nom = "Vol'jin";
personatges[2] = new PersonatgeOrc();
personatges[2].Nom = "Saurfang";
personatges[3] = new PersonatgeTroll();
personatges[3].Nom = "Rohkan";
for (int i=0; i<personatges.Length; i++) {
Console.WriteLine($"Personatge: {personatges[i].Nom} (classe:{personatges[i]})");