public IEnumerable <Estado> JogadasPossiveisDoOponente(Estado estadoAtual) { EstadoLig4 atual = (estadoAtual as EstadoLig4); List <EstadoLig4> proximosEstados = new List <EstadoLig4>(); // @@@ int idDoOponente; if (id == EstadoLig4.X) { idDoOponente = EstadoLig4.O; } else { idDoOponente = EstadoLig4.X; } for (int coluna = 0; coluna < EstadoLig4.COLUNAS; coluna++) { for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--) { if (atual.IsCelulaVazia(linha, coluna) == true) { proximosEstados.Add(atual.MarcarCelula(linha, coluna, idDoOponente)); break; } } } return(proximosEstados); }
public override Estado EfetuarJogada(Estado estadoAtual) { // o jogador fácil não utiliza o minimax... // apenas adiciona a peça na primeira coluna vazia EstadoLig4 atual = (estadoAtual as EstadoLig4); for (int coluna = 0; coluna < EstadoLig4.COLUNAS; coluna++) { for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--) { if (atual.IsCelulaVazia(linha, coluna) == true) { return(atual.MarcarCelula(linha, coluna, Id)); } } } return(null); }
public override Estado EfetuarJogada(Estado estadoAtual) { // o jogador aleatório não utiliza o minimax... // apenas adiciona a peça na em uma coluna aleatória (e vazia) EstadoLig4 atual = (estadoAtual as EstadoLig4); // @@@ for (; ;) { int coluna = random.Next(EstadoLig4.COLUNAS); for (int linha = (EstadoLig4.LINHAS - 1); linha >= 0; linha--) { if (atual.IsCelulaVazia(linha, coluna) == true) { return(atual.MarcarCelula(linha, coluna, Id)); } } } }