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); }