private string[,] casas = new string[3,3];
public void Marcar(int x, int y, string simbolo){
public string VerificarPosicao(int x, int y){
public void ImprimirTabuleiro(){
Console.WriteLine("{0} {1} {2}", casas[0, 0], casas[0, 1], casas[0, 2]);
Console.WriteLine("{0} {1} {2}", casas[1, 0], casas[1, 1], casas[1, 2]);
Console.WriteLine("{0} {1} {2}", casas[2, 0], casas[2, 1], casas[2, 2]);
public void ZerarTabuleiro(){
casas = new string [3, 3];
public void Marcar(int x, int y, Tabuleiro tab){
tab.Marcar(x, y, simbolo);
public Jogador(string nome, string simbolo){
public bool VerificaResultado(Tabuleiro tab, Jogador jog){
if(tab.VerificarPosicao(i, j) == jog.Simbolo)
if(contHorizontal == 3) return true;
if(tab.VerificarPosicao(i, j) == jog.Simbolo)
if(contVertical == 3) return true;
if(tab.VerificarPosicao(i, i) == jog.Simbolo)
if(contDiagonal1 == 3) return true;
if(tab.VerificarPosicao(i, 2-i) == jog.Simbolo)
if(contDiagonal2 == 3) return true;
public static void Main()
Tabuleiro tab = new Tabuleiro();
Jogador player1 = new Jogador("Hugo", "X");
Jogador player2 = new Jogador("Luis", "O");
Arbitro arbitro = new Arbitro();
player2.Marcar(0, 0, tab);
player2.Marcar(1, 0, tab);
player2.Marcar(2, 0, tab);
player1.Marcar(0, 1, tab);
player1.Marcar(1, 1, tab);
player1.Marcar(2, 1, tab);
Console.WriteLine(arbitro.VerificaResultado(tab, player1));
Console.WriteLine(arbitro.VerificaResultado(tab, player2));