Example #1
0
        /// <summary>
        /// Construtor
        /// </summary>
        public Jogo(object _udtJogadorUm, object _udtJogadorDois, TipoDosJogadores _enumTipoJogo)
        {
            ////Chama o método que realiza jogada do computador para P1
            //m_cp1 = new MudaEstado(CP1);
            ////Chama o método que realiza jogada do computador para P2
            //m_cp2 = new MudaEstado(CP2);
            ////Chama o método que mostra o resultado do jogo
            //m_fim = new MudaEstado(Fim);

            m_enumTipoJogo = _enumTipoJogo;
            switch (m_enumTipoJogo)
            {

                case TipoDosJogadores.HumanoXComputador:
                    m_HJogadorUm = new JHumano();
                    m_CJogadorDois = new JComputador();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                case TipoDosJogadores.HumanoXFComputador:
                    m_HJogadorUm = new JHumano();
                    m_CJogadorDois = new JComputador();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                case TipoDosJogadores.HumanoXHumano:
                    m_HJogadorUm = new JHumano();
                    m_HJogadorDois = new JHumano();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                case TipoDosJogadores.ComputadorXHumano:
                    m_CJogadorUm = new JComputador();
                    m_HJogadorDois = new JHumano();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                case TipoDosJogadores.ComputadorXComputador:
                    m_CJogadorUm = new JComputador();
                    m_CJogadorDois = new JComputador();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                case TipoDosJogadores.ComputadorXFComputador:
                    m_CJogadorUm = new JComputador();
                    m_CJogadorDois = new JComputador();
                    CopiaAtributosJogadores((Jogador)_udtJogadorUm, (Jogador)_udtJogadorDois);
                    break;
                default:
                    break;
            }

            //Instancia o Tabuleiro
            //A posicao 0 do array nao sera usada para facilitar varios calculos dos algoritmos
            //que envolvem os indices dele, por isso 26 posicoes para o jogo com 25 casas
            m_TabuleiroAtual = new int[26];
            m_TabuleiroProximosMovimentos = new int[26];

            Jogador jogadorConfig = (Jogador)_udtJogadorUm;

            if (jogadorConfig.IsPrimeiroJogador)
            {
                if (m_enumTipoJogo == TipoDosJogadores.HumanoXComputador
                    || m_enumTipoJogo == TipoDosJogadores.HumanoXHumano
                    || m_enumTipoJogo == TipoDosJogadores.HumanoXFComputador)
                    m_enmEstado = EstadoDoJogo.JogadorUm;
                else if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano
                      || m_enumTipoJogo == TipoDosJogadores.ComputadorXComputador
                      || m_enumTipoJogo == TipoDosJogadores.ComputadorXFComputador)
                {
                    m_enmEstado = EstadoDoJogo.ComputadorJogando;
                    m_IsComputadorUM = true;
                }
            }
            else
            {
                if (m_enumTipoJogo == TipoDosJogadores.ComputadorXHumano || m_enumTipoJogo == TipoDosJogadores.HumanoXHumano)
                    m_enmEstado = EstadoDoJogo.JogadorDois;
                else if (
                       m_enumTipoJogo == TipoDosJogadores.HumanoXComputador
                    || m_enumTipoJogo == TipoDosJogadores.ComputadorXComputador
                    || m_enumTipoJogo == TipoDosJogadores.ComputadorXFComputador)
                {
                    m_enmEstado = EstadoDoJogo.ComputadorJogando;
                    m_IsComputadorUM = false;
                }
            }

            //Inicializa o tabuleiro
            for (int i = 1; i < 26; i++)
            {
                /*
                 * Preenche de 1 a 12 com pecas do jogador NOT(Embaixo).
                 * 14 a 25 com pecas do jogador Embaixo.
                 * A casa 13 inicia vazia.
                 */
                if (jogadorConfig.IsEmbaixo)
                {
                    if (i < 13)
                        m_TabuleiroAtual[i] = CorJogadorAdversario(jogadorConfig.CorDoJogador);
                    else
                        m_TabuleiroAtual[i] = jogadorConfig.CorDoJogador;
                }
                else
                {
                    if (i < 13)
                        m_TabuleiroAtual[i] = jogadorConfig.CorDoJogador;
                    else
                        m_TabuleiroAtual[i] = CorJogadorAdversario(jogadorConfig.CorDoJogador);
                }

                m_TabuleiroProximosMovimentos[i] = VAZIA;

            }
            m_TabuleiroAtual[13] = VAZIA;
        }
Example #2
0
        private void menuCarregarJogo_Click(object sender, EventArgs e)
        {
            Stream stream = null;
            Dados carregaJogo = null;
            openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Eukreukla files |*.euk";

            try
            {
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    IFormatter formatter = new BinaryFormatter();
                    stream = new FileStream(openFileDialog.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                    int version = (int)formatter.Deserialize(stream);
                    carregaJogo = (Dados)formatter.Deserialize(stream);

                    m_enumTipoJogadores = carregaJogo.TipoDosJogadores;
                    novoJogo = carregaJogo.Jogo;
                    m_udtJogadorUm = carregaJogo.JogadorUM;
                    m_udtJogadorDois = carregaJogo.JogadorDOIS;
                    t_diferenca = carregaJogo.TempoDecorrido;

                    IniciarJogo(true);
                }

            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (null != stream)
                    stream.Close();
                openFileDialog.Dispose();
                openFileDialog = null;
                carregaJogo = null;
            }
        }
Example #3
0
 private void SetaTipoJogadores()
 {
     if (JogadorUM.IsHumano)
         if (JogadorDOIS.IsHumano)
             this.TipoDosJogadores = TipoDosJogadores.HumanoXHumano;
         else if (JogadorDOIS.IsFuncional)
             this.TipoDosJogadores = TipoDosJogadores.HumanoXFComputador;
         else
             this.TipoDosJogadores = TipoDosJogadores.HumanoXComputador;
     else
         if (JogadorDOIS.IsHumano)
             this.TipoDosJogadores = TipoDosJogadores.ComputadorXHumano;
         else if (JogadorDOIS.IsFuncional)
             this.TipoDosJogadores = TipoDosJogadores.ComputadorXFComputador;
         else
             this.TipoDosJogadores = TipoDosJogadores.ComputadorXComputador;
 }
Example #4
0
        /// <summary>
        /// Abre form de configuracao e recebe jogadores e tipo de jogo.
        /// </summary>
        private void Configuracao()
        {
            FrmConfig frmConfig = new FrmConfig();

            if (frmConfig.ShowDialog() == DialogResult.OK)
            {
                m_udtJogadorUm = frmConfig.JogadorUM;
                m_udtJogadorDois = frmConfig.JogadorDOIS;
                m_enumTipoJogadores = frmConfig.TipoDosJogadores;
            }
        }