sexta-feira, 7 de outubro de 2011

Jogos em C#

C # - Jogo Blaster 


Space Invaders foi um sucesso e gerou centenas de milhões de dólares, não só para os desenvolvedores mas também para outras empresas que imitaram a fórmula de sucesso do jogo. A jogabilidade foi muito inovadora na época. Antes a maioria dos jogos tinha um tempo para acabar, já em Space Invaders o jogo só acabava quando o jogador perdesse suas três vidas, com isso a duração do jogo ficava nas mãos da habilidade dos jogadores. (http://pt.wikipedia.org/wiki/Space_Invaders)






C# - Jogo de Xadrez

Xadrez é um jogo de tabuleiro de natureza recreativa e competitiva para dois jogadores, sendo também conhecido como Xadrez Ocidental ou Xadrez Internacional para distingui-lo dos seus predecessores e de outras variantes da atualidade. A forma atual do jogo surgiu no Sudoeste da Europa na segunda metade do Século XV, durante o Renascimento, depois de ter evoluído de suas antigas origens persas e indianas. O Xadrez pertence à mesma família doXiangqi e do Shogi e, segundo os historiadores do enxadrismobr. (ou xadrezismo pt.), todos eles se originaram do Chaturanga, que se praticava na Índia noSéculo VI d.C.[1]



C# - Sudoku 

 é um quebra-cabeça baseado na colocação lógica de números. O objetivo do jogo é a colocação de números de 1 a 9 em cada uma das células vazias numa grade de 9×9, constituída por 3×3 subgrades chamadas regiões. O quebra-cabeça contém algumas pistas iniciais, que são números inseridos em algumas células, de maneira a permitir uma indução ou dedução dos números em células que estejam vazias. Cada coluna, linha e região só pode ter um número de cada um dos 1 a 9.








Boids:: Aves de simulação de comportamento

Boids, desenvolvido por Craig Reynolds, em 1986, é um programa de vida artificial,simulando o comportamento flocking de aves.
Como a maioria das simulações de vida artificial, Boids é um exemplo de comportamento emergente, ou seja, a complexidade da Boids surge da interação dos agentes individuais (oboids, neste caso) aderir a um conjunto de regras simples. As regras aplicadas no mundomais simples Boids são as seguintes:

separação: orientar para evitar aglomeração flockmates locais
alinhamento: orientar para a média título de flockmates locais
coesão: orientar a se mover para a posição média de flockmates locais
src: wikipedia

Como: -

Botão direito do mouse: Adicionar Boid novo Blue

Esquerdo do mouse: Adicionar novo Red Boid

O que acontece depois?

O azul boids tentar mover-se em grupos - notar que eles têm uma visão limitada de vista!Eles sempre temem o boids vermelho para que eles tentam evitá-los.


Jogo Pong em C#
 código fonte anexo é um clone pong simples, com quatro níveis de dificuldade. 
Baixar o código fonte e executar o exemplo para ver como funciona o jogo e os detalhes do código.
Nota : Este código é escrito usando NET Framework 2.0.. Você deve ter. NET Framework 2.0 instalado em sua máquina antes de executar este código.







                                                                     DOWNLOAD

C# - Snooker


Um jogo de sinuca!









                                                         DOWNLOAD


terça-feira, 27 de setembro de 2011

Sistema de Contato em Três Camadas C# - Parte III de III

Camada de Apresentação

Renomeie o formulário form1.cs para frmContato.cs
Na propriedade do formulário modifique os seguintes:
Nome
Valor
O que é?
Name
frmContato
Nome do Formulário
BackColor
White
Plano de Fundo
Icon
Escolha o ícone com extensão .icon
Ícone
Size
509; 733
Tamanho do Formulário
StartPosition
CenterScreen
Posição inicia
Text
Contatos
Titulo




No topo do formulario, adicione o componente Panel, uma PictureBox e uma label, conforme a imagem a seguir:


Adicione uma groupBox e os componentes a seguir conforme a imagem: utilize label, textbox e uma maskTextBox.




os nomes dos controles são:
textBox1 = txtCodigo
textBox2 = txtNome
textBox3 = txtEndereco
maskedTextBox1 = mkTelefone

Adicione outra groupbox e os controles a seguir conforme a imagem:


button1 = btnNovo
button2 = btnSalvar
button3 = btnAtualizar
button4 = btnExcluir

Adicione outra groupbox com os controles a seguir

combobox1 = cbmFiltro
maskedTextBox1 = mkPesquisar.
Na propriedade Items adicione os seguintes textos:
Código
Nome
Telefone
e no botão pesquisar = btnPesquisar
Adicione a ultima groupbox e dentro dela insira uma DataGridView. Recendo o nome dgvContato


vá para o código do formulário (F7)
insira o código a seguir:
Chamar a classe RegraNegocio
RegraNegocio negocio = new RegraNegocio();

Habilitar os controles
  private void habilitarControles()
        {
            txtNome.Enabled = true;
            txtEndereco.Enabled = true;
            mkTelefone.Enabled = true;
        }


Limpar os Campos
 
  private void LimparCampo()
        {
            foreach (Control cont in this.Controls)
            {
                if (cont is GroupBox)
                {
                    for (int i = 0; i < cont.Controls.Count; i++)
                    {
                        if (cont.Controls[i] is TextBox)
                            (cont.Controls[i] as TextBox).Text = "";
                        if (cont.Controls[i] is ComboBox)
                            (cont.Controls[i] as ComboBox).SelectedIndex = -1;
                        if (cont.Controls[i] is MaskedTextBox)
                            (cont.Controls[i] as MaskedTextBox).Text = "";
                    }
                }
            }
        }
No evento load do formulário insira o código a seguir
  private void frmContato_Load(object sender, EventArgs e)
        {
            btnNovo.Enabled = true;
            negocio.PreencherDataGrid(dgvContato);
        }
Clique no botão novo e insira o código a seguir:
    private void btnNovo_Click(object sender, EventArgs e)
        {
          
            habilitarControles();
            btnNovo.Enabled = false;
            btnAtualizar.Enabled = false;
            btnExcluir.Enabled = false;
            if (txtNome.Text != null)
            {
                txtNome.Focus();
                btnSalvar.Enabled = true;
            }
            LimparCampo();
        }
Clique no botão Salvar e insira o código a seguir:
private void btnSalvar_Click(object sender, EventArgs e)
        {
          
            if (txtNome.Text != "")
            {
                RegraNegocio cln = new RegraNegocio();
                cln.Nome = this.txtNome.Text;
                cln.Endereco = this.txtEndereco.Text;
                cln.Telefone = this.mkTelefone.Text;
                cln.InserirContato();
                negocio.PreencherDataGrid(dgvContato);
                btnSalvar.Enabled = false;
                btnAtualizar.Enabled = true;
                btnExcluir.Enabled = true;
                MessageBox.Show("Contato cadastrado com sucesso",
                    "Sucesso",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
            }
            else
            {
                txtNome.Focus();
                btnNovo.Enabled = false;
                MessageBox.Show("Adicione um nome de Usuário",
                    "Atenção",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
            }
        }
Clique no botão Atualizar e insira o código a seguir:
        private void btnAtualizar_Click(object sender, EventArgs e)
        {
         
            try
            {
                if (txtCodigo.Text != null)
                {
                    negocio.Codigo = int.Parse(txtCodigo.Text);
                    negocio.Nome = txtNome.Text;
                    negocio.Endereco = txtEndereco.Text;
                    negocio.Telefone = mkTelefone.Text;
                    negocio.AtualizarContato();
                    negocio.PreencherDataGrid(dgvContato);
                    MessageBox.Show("Atualizado com sucesso",
                        "Sucesso",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("O Campo código é obrigatório",
                        "Atenção",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível atualizar os dados pelo seguinte motivo: " + ex.Message);
            }
       
Clique no botão excluir e insira o código a seguir:
private void btnExcluir_Click(object sender, EventArgs e)
        {
           
            try
            {
                if (txtCodigo.Text != null)
                {
                    negocio.Codigo = int.Parse(txtCodigo.Text);
                    negocio.ExcluirContato();
                    LimparCampo();
                    negocio.PreencherDataGrid(dgvContato);
                    btnExcluir.Enabled = false;
                    btnAtualizar.Enabled = false;
                    MessageBox.Show("Excluido com sucesso",
                        "Sucesso",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("O Campo Código é obrigatório",
                        "Atenção",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível excluir os dados pelo seguinte motivo: " + ex.Message);
            }
        }        
Clique no botão pesquisar e insira o código a seguir:
private void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (cbbFiltro.Text == "Código")
            {
                negocio.Codigo = int.Parse(mkPesquisar.Text);
                negocio.ConsultarCodigo(dgvContato);
            }
            if (cbbFiltro.Text == "Nome")
            {
                negocio.Nome = mkPesquisar.Text;
                negocio.ConsultarNome(dgvContato);
            }
            if (cbbFiltro.Text == "Telefone")
            {
                negocio.Telefone = mkPesquisar.Text;
                negocio.ConsultarTelefone(dgvContato);
            }
            if (cbbFiltro.Text == "")
            {
                negocio.PreencherDataGrid(dgvContato);
            }
        }
Clique duas vezes na ComboBox do Filtro de pesquisa e insira o código a seguir:
        private void cbbFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbFiltro.Text == "Telefone")
            {
                mkPesquisar.Mask = "(00)0000-0000";
            }
            else
            {
                mkPesquisar.Clear();
                mkPesquisar.Mask = "";
            }
        }
No evento da DataGridView (no raio) Click insira o código a seguir:
   private void dgvContato_Click(object sender, EventArgs e)
        {
            habilitarControles();
            btnAtualizar.Enabled = true;
            btnExcluir.Enabled = true;
            txtCodigo.Text = dgvContato.CurrentRow.Cells[0].Value.ToString();
            txtNome.Text = dgvContato.CurrentRow.Cells[1].Value.ToString();
            txtEndereco.Text = dgvContato.CurrentRow.Cells[2].Value.ToString();
            mkTelefone.Text = dgvContato.CurrentRow.Cells[3].Value.ToString();
        }

Conclusão

O Conceito de três camadas veio com o objetivo de separar a lógica de negocio da lógica de apresentação e acesso a dados. Com isto o sistema torna-se mais fácil a manutenção e inserção de funções. Este é o primeiro tutorial em três camadas do blog nstutoriais.blogspot.com, e vamos fazer muito mais. Caso tenha alguma dúvida acesse o blog ou adicione no MSN: natanaelsantosdf@hotmail.com ou na nossa página do facebook.  
Tutorial em PDF = Clique aqui Código Fonte do arquivo = Clique aqui
Parte I = Clique aqui
Parte II = Clique aqui
Parte III = Clique aqui