public IEnumerable <Estado> JogadasPossiveisDoOponente(Estado estadoAtual) { EstadoTicTacToe atual = (estadoAtual as EstadoTicTacToe); List <EstadoTicTacToe> proximosEstados = new List <EstadoTicTacToe>(); int idDoOponente; if (id == EstadoTicTacToe.X) { idDoOponente = EstadoTicTacToe.O; } else { idDoOponente = EstadoTicTacToe.X; } for (int linha = 0; linha < EstadoTicTacToe.TAMANHO; linha++) { for (int coluna = 0; coluna < EstadoTicTacToe.TAMANHO; coluna++) { if (atual.IsCelulaVazia(linha, coluna) == true) { proximosEstados.Add(atual.MarcarCelula(linha, coluna, idDoOponente)); } } } return(proximosEstados); }
public override Estado EfetuarJogada(Estado estadoAtual) { // o jogador aleatório não utiliza o minimax... // apenas marca uma célula vazia aleatória EstadoTicTacToe atual = (estadoAtual as EstadoTicTacToe); for (; ;) { int linha = random.Next(EstadoTicTacToe.TAMANHO); int coluna = random.Next(EstadoTicTacToe.TAMANHO); if (atual.IsCelulaVazia(linha, coluna) == true) { return(atual.MarcarCelula(linha, coluna, Id)); } } }
public IEnumerable <Estado> JogadasPossiveis(Estado estadoAtual) { EstadoTicTacToe atual = (estadoAtual as EstadoTicTacToe); List <EstadoTicTacToe> proximosEstados = new List <EstadoTicTacToe>(); for (int linha = 0; linha < EstadoTicTacToe.TAMANHO; linha++) { for (int coluna = 0; coluna < EstadoTicTacToe.TAMANHO; coluna++) { if (atual.IsCelulaVazia(linha, coluna) == true) { proximosEstados.Add(atual.MarcarCelula(linha, coluna, id)); } } } return(proximosEstados); }
public override Estado EfetuarJogada(Estado estadoAtual) { // o jogador fácil não utiliza o minimax... // apenas marca a primeira célula vazia EstadoTicTacToe atual = (estadoAtual as EstadoTicTacToe); for (int linha = 0; linha < EstadoTicTacToe.TAMANHO; linha++) { for (int coluna = 0; coluna < EstadoTicTacToe.TAMANHO; coluna++) { if (atual.IsCelulaVazia(linha, coluna) == true) { return(atual.MarcarCelula(linha, coluna, Id)); } } } return(null); }
public override bool Equals(object obj) { if (obj == this) { return(true); } EstadoTicTacToe e = (obj as EstadoTicTacToe); if (e == null || e.jogadorDaVez != jogadorDaVez) { return(false); } for (int linha = 0; linha < TAMANHO; linha++) { for (int coluna = 0; coluna < TAMANHO; coluna++) { if (e.tabuleiro[linha, coluna] != tabuleiro[linha, coluna]) { return(false); } } } return(true); }