Exemple #1
0
        private void Jogada(int L, int C, char Caractere)
        {
            matriz[L, C] = Caractere;

            ListaAtual.Add(new Jogada(L, C, Caractere));

            if (MotorTTC.JogoGanho(matriz))
            {
                if (caracteremaquina == ListaAtual.Last().Caractere)
                {
                    MessageBox.Show("O computador ganhou");
                }
                else
                {
                    Armazenamento.AdicionarBuffer(ListaAtual);

                    MessageBox.Show("Você ganhou");
                }

                panel2.Visible = false;

                Armazenamento.Salvar(ListaAtual);
            }
            else if (MotorTTC.Empate(matriz))
            {
                MessageBox.Show("Empate");
            }
            else if (lblJogador.Text == "jogador 2")
            {
                JogMaquina();
            }
        }
Exemple #2
0
        public static void Salvar(List <Jogada> Lista)
        {
            string linha = null;

            foreach (var item in Lista)
            {
                linha += item.L + ";" + item.C + ";" + item.Caractere + ";";
            }

            UsarBuffer = false;

            List <string> ListaAuxiliar = Armazenamento.Carregar();

            UsarBuffer = true;

            if (ListaAuxiliar.Contains(linha))
            {
                int Indice = ListaAuxiliar.IndexOf(linha);

                int Numero = int.Parse(ListaAuxiliar[Indice - 1].ToString()) + 1;

                ListaAuxiliar[Indice - 1] = Numero.ToString();
            }
            else
            {
                ListaAuxiliar.Add("1");
                ListaAuxiliar.Add(linha);
            }

            try
            {
                File.WriteAllLines(/*@"C:\Users\usuario\Desktop\*/ "Jogadas.txt", ListaAuxiliar);
            }
            catch (Exception)
            {
                MessageBox.Show("Não foi possivel criar/modificar o arquivo de jogadas");
            }
        }
Exemple #3
0
        public static void JogadaMaquina(List <Jogada> ListaAtual, char[,] Matriz)
        {
            string        Linha = "";
            List <string> Lista = Armazenamento.Carregar();

            if (ListaAtual.Count == 0 && Lista.Count != 0)
            {
                for (int i = 0; i < Lista.Count; i += 2)
                {
                    ListaNumeros.Add(int.Parse(Lista[i]));
                    int.Parse(Lista[i + 1][0].ToString());

                    if (Lista[i + 1][Lista[i + 1].Length - 1] == 'x')
                    {
                        caracteremaquina = 'x';
                    }
                    else
                    {
                        caracteremaquina = 'c';
                    }

                    ListaJogadas.Add(new Jogada((int.Parse(Lista[i + 1][0].ToString())), int.Parse(Lista[i + 1][2].ToString()), caracteremaquina));
                }

                int Maior = 0;

                for (int i = 0; i < ListaNumeros.Count; i++)
                {
                    if (ListaNumeros[i] > Maior)
                    {
                        Maior = ListaNumeros[i];
                        J     = ListaJogadas[i];
                    }
                }

                return;
            }

            if (SequenciaDetectada(Matriz, caracteremaquina))
            {
                return;
            }

            if (caracteremaquina == 'x')
            {
                if (SequenciaDetectada(Matriz, 'c'))
                {
                    return;
                }
            }
            else if (SequenciaDetectada(Matriz, 'x'))
            {
                return;
            }

            ListaJogadas.Clear();
            ListaNumeros.Clear();

            foreach (var item in ListaAtual)
            {
                Linha += item.L + ";" + item.C + ";" + item.Caractere + ";";
            }

            Lista = Armazenamento.Carregar();

            Regex rg = new Regex(Linha, RegexOptions.None);

            for (int i = 1; i < Lista.Count; i += 2)
            {
                if (rg.IsMatch(Lista[i]) && Lista[i].Length > Linha.Length)
                {
                    string Auxiliar = Linha;
                    Linha = Lista[i].Replace(Linha, "");

                    if (Linha[Linha.Length - 2] == caracteremaquina)
                    {
                        J = new Jogada(int.Parse(Linha[0].ToString()), int.Parse(Linha[2].ToString()), Linha[4]);
                    }
                    else
                    {
                        J = new Jogada(int.Parse(Linha[6].ToString()), int.Parse(Linha[8].ToString()), Linha[10]);
                    }

                    if (ValidaJogada(Matriz, J.L, J.C))
                    {
                        ListaJogadas.Add(J);
                        ListaNumeros.Add(int.Parse(Lista[i - 1]));
                    }

                    Linha = Auxiliar;
                }
            }

            if (ListaJogadas.Count != 0)
            {
                return;
            }



            List <Jogada> Jogadas = new List <Jogada>();

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (Matriz[i, j] != 'c' && Matriz[i, j] != 'x')
                    {
                        Jogadas.Add(new Jogada(i, j, caracteremaquina));
                    }
                }
            }

            Random r = new Random();

            if (Jogadas.Count() > 0)
            {
                J = Jogadas[r.Next(0, Jogadas.Count() - 1)];
            }
            else
            {
                J = Jogadas[0];
            }
        }