quinta-feira, 22 de setembro de 2011

Como reusar um projeto em C# - import project

Nesta vídeo aula, é apresentado como podemos importar um projeto em C# para outro projeto.

O áudio do video está péssimo, mas da pra entender pelas imagens...rs um dia eu atualizo isso...rs






segunda-feira, 12 de setembro de 2011

override em C#


public override string ToString()

neste caso, gosto mais do annotation... :D

C# play wav sound



using System.Media;

        public void MakeSound()
        {
            SoundPlayer simpleSound = new SoundPlayer(@"c:\Windows\Media\chimes.wav");
            simpleSound.Play();
        }

C# Padrão Strategy

O Padrão Strategy define uma familia de algorimos, encapsula cada um deles e os torna intercambiáveis.
A estratégia deixa o algoritimo variar independentemente dos clientes que o utilizam (use a cabeça use padrão de projeto)
Ah!!! vamos tentar novamente

O Padrão Strategy, garante que toda classe tenha um método, independente de como ele implementa.

Todo animal faz um som, então usando o padrão strategy podemos garantir que todos os animais vão fazer isso, mesmo que cada animal faça alguma coisa diferente.

//Animal.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Strategy
{
    interface Animal
    {
        void MakeSound();
    }
}
//Animal.cs Fim

//Dog.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Strategy
{
    class Dog : Animal
    {
        public void MakeSound()
        {
            Console.WriteLine("Au");
        }
    }
}
//Dog.cs Fim

//Cat.cs Inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Strategy
{
    class Cat : Animal
    {
        public String nome { get; private set; }
        public Cat(String nome) {
            this.nome = nome;
        }
        public void MakeSound()
        {
            Console.WriteLine("Miau");
        }
    }
}
//Cat.cs Fim

//Programa.cs inicio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Strategy
    // O Padrão Strategy define uma familia de algorimos, encapsula cada um deles e os torna intercambiáveis.
    // A estratégia deixa o algoritimo variar independentemente dos clientes que o utilizam
{
    class Program
    {
        static void Main(string[] args)
        {
            Animal dog = new Dog();
            Animal cat = new Cat("gato");
            dog.MakeSound();
            cat.MakeSound();
            Cat cat2 = (Cat) cat;
            Console.WriteLine(cat2.nome);
            
            Console.ReadLine();
        }
    }
}
//programa.cs Fim

//Saída

Au
Miau
gato

//Saída fim






c# foreach

private List<Visinho> visinhos;



visinhos.ForEach((visinho) =>
            {
                Console.WriteLine("Visinho: " + visinho.nome);
            }
        );



Get and set C#

Isso eu achei bem bacana na sintaxe do C#

Para declara uma variável com seu get e set

escopo tipo nome {escopo get; escopo set;}

exemplo

public string nome { get; private set; }

Observer

Pessoal,

Hoje estou implementando o padrão observer no C#.

Para implementar o observer no C# existem duas interfaces

IObservable  e IObserver 


Onde IObservable é a classe que esta sendo observada.
E IObserver é a classe que observa.

Para exemplicar vamos fazer um sistema bem simples, sistema fofoqueira.

Vamos ter a classe visinho, que pode fazer alguma coisa

E a visinha fofoqueira, objservvar tudo que os visinhos fazem e vai gritar para os quatro cantos tudo o que ele fizer.

Vamos ver comom ficam as classes.



using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace VisinhaFofoqueira
{    class VisinhaFofoqueira     {        List<Visinho> visinhos;
        public VisinhaFofoqueira()         {            visinhos = new List<Visinho>();        }        public void monitorar(Visinho visinho){            visinho.fofoqueira = this;            visinhos.Add(visinho);            Console.WriteLine("Visinha esta monitorando o visinho: " + visinho.nome);        }
        public void pararDeMonitorar(Visinho visinho) {            visinhos.Remove(visinho);        }
        public void mudou() {            Console.WriteLine("Fofoqueira esta vendo que alguma coisa mudou");        }    }}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace VisinhaFofoqueira
{
    class Visinho
    {
        public string nome { get; private set; }
        public VisinhaFofoqueira Ffofoqueira;
        public VisinhaFofoqueira fofoqueira
        {
            get
            {
                return Ffofoqueira;    
            }
            set
            {
                Console.WriteLine("Visinho esta sendo monitorado pela fofoqueira");
                Ffofoqueira = value;
            }
        }
        public Visinho(String nome)
        {
            this.nome = nome;      
        }
        public void fazerAlgumaCoisa() {
            Console.WriteLine("Visnho: " + nome +" esta fazendo algo");
            fofoqueira.mudou();
        }     
    }


E o main para textar...



            VisinhaFofoqueira fofoqueira = new VisinhaFofoqueira();
            Visinho marcelo = new Visinho("Marcelo");
            Visinho gomes = new Visinho("Gomes");
            fofoqueira.monitorar(marcelo);
            fofoqueira.monitorar(gomes);
            marcelo.fazerAlgumaCoisa();
            Console.WriteLine("Fim");
            Console.ReadLine();


O C# tem duas interfaces para implementar o padrão observer IObservable  e IObserver  mas não consegui usar ainda!!!


Abraço!


Sugestões:
http://msdn.microsoft.com/pt-br/library/dd990377.aspx
http://brluz.wordpress.com/category/csharp/

terça-feira, 6 de setembro de 2011

Cronometro em C#



//Fazer o import
using System.Windows.Threading;

//Declara a variável
private DispatcherTimer timer;

//Iniciar
timer = new DispatcherTimer();
            timer.Start();
            timer.Interval = TimeSpan.FromSeconds(1); //vai rodar de um em um segundo
            timer.Tick += timer1_Tick;

//aça a rodar de um em um segundo
 private void timer1_Tick(object sender, EventArgs e){
            //ação
}

Números randomicos com C#


Random rnd = new Random(DateTime.Now.Millisecond);
rnd.Next(0, 50) //entre 0 e 50


Mensagens com C#



MessageBox.Show("Olá Mundo");


MessageBoxResult = MessageBox.Show("Vai chover", "Titulo", MessageBoxButton.YesNo);


Outras possibilidades

  • OK
  • OKCancel
  • YesNo
  • YesNoCancel

segunda-feira, 5 de setembro de 2011

Como o kinect reconhece as pessoas

O kinect chama todas as pessoas de esqueletos, calma não fique bravo, na sua aplicação você pode chamar seus jogadores por outros nomes como He-man por exemplo, mas o kinect vai continuar chamando de esqueleto.

A API NUI skeleton, é a que prove informações sobre a localização de ate dois jogadores que estiver em frente ao kinect.

O que é API não encane com detalhes, é parte do SDK (vou colocar na sopa depois)

Continuando... Os dados lidos pelo kinects são chamados de skeleton position (posição do esqueleto), estes dados são composto por pontos que representam o usuário.
Veja na figura que peguei na documentação do sdk os pontos que o kinect consegue detectar.




Banca não é, pra mim ele deveria ler os dedos também, mas tudo bem, já temos bastante pontos para brincar.

Junto com o SDK do kinect vem uma aplicação, onde é possível ver como o computador identifica estes pontos, veja uma imagem que também peguei da documentação do sdk.




Cada ponto na verdade é uma coordenada, X,Y,Z e tem o W também!!!


Confuso com as coordenadas, calma… lembra de plano cartesiano, X é a medida horizontal, Y é a vertical (altura meu amigo) e Z e a distancia do jogador para o kinect!

Ta é o W ?

W é a distancia do kinect para o chão! 

Veja mais uma figura para ajudar.


É isso ai!







Instalação do kinect no pc

Receita para instalar o kinect no PC


Ingerdientes

1 - Kinect com cabo USB
1 - PC com entrada USB
1 - Windows 7 (Com updates!!!)
1 - SDK do kinect
1 - C# express

Modo de preparo


 Instale o windows no seu PC, em seguida realizar os updates (isso da mais sabor a todas as receitas, sempre atualize os softwares);

 Instalar o SDK do kinect (não plugue o seu kinect ainda);

 Aguarde ate que a mistura de o ponto (reboot no windows ..rs ) conecte o seu kinect ao pc.

 Conecte o cabo usb do kinect a uma porta usb do seu PC. nesta hora já deve estar sentindo um cheirinho bom em... esta quase pronto.

 Agora instale o C# express, poderiamos ter instalado o C# express antes, na verdade o para o funcionamento do Kinect o C# express não é necessário, mas sem ele você não vai ter (mentira) como fazer nada com o seu kinect!

  Redimento Muita diversão e varias noites em claro programado (Valido somente para nerd)



Olá mundo

Boa tarde pessoal, Estou criando este blog para registar minhas aventuras com o kinect, no pc. Aqui vou postar meus lembretes de kinect e c# Abraço a todos