h1

Como mandar email em Asp.Net/C#?

fevereiro 20, 2011

Como mandar email em DotNet?
Aqui está o código.
Não se esqueça de adicionar “using System.Net.Mail;
using System.Net.Configuration;”.

Se estiver muito dificil avise, apesar de que parece bem simples.

Para continuar a ler esse post visite o Amehisty Report na casa nova: Como mandar email em Asp.Net/C#?

h1

Grails: combobox com Ajax

fevereiro 20, 2011

Agora vou dar um pequeno exemplo de AJAX com GRAILS. Eu não vou para a série MagicLG, é só para não ficar só naquilo, e porque eu iria postar sobre tudo que eu aprendesse.

Comecei criando um projeto, uma app. Como não sei se vocês estarão usando a console ou alguma IDE não vou escrever como se estivesse em uma ou em outra.

Eu dei o nome de “AjaxGrails” ao meu projeto. Primeiro vamos criar uma Domain Class. Chamarei ela de Pai.

 

package ajaxgrails
class Pai {
String nome
static constraints = {
}
String toString()
{
return nome
}
}

 

Para continuar a ler esse post visite o Amehisty Report na casa nova:

Grails: combobox com Ajax

h1

“Magic Life Gauge” part II

fevereiro 20, 2011

Bem, eu prometi não morrer, né? Se possível hoje mesmo teremos o inicio de uma nova série.
Bom, voltando ao “Magic Life Gauge”. Da última vez nos criamos o projeto e criamos as Domain Class. Agora vamos fazer as constrains delas.
O que são constrains?
Nas constrains colocamos “regras” para os dados. Por exemplo na class Jogador temos 3 váriaveis: nome, vida e time. Vamos pegar “nome” e estudar ela. É obrigatório o jogador ter um nome? Ou podemos identifica-lo só pelo Id? Talvez o jogador fique confuso ao ver muitos números na tela e não saiba quem ele é. Que tal tornar obrigatório o jogador escrever seu nome?
Para fazer isso iremos no campo constrains e colocaremos a regra assim:

static constraints = {
nome(blank:false)
}

Para continuar a ler esse post visite o Amehisty Report na casa nova: Magic Life Gauge parte II


h1

“Magic Life Gauge” em Grails part I

fevereiro 20, 2011

Eu estava querendo começar uma app pequenininha mostrando passo a passo em algumas tecnologias. Queria algo simples e que fosse crescendo. Algo livre. Resolvi começar com GRAILS, que é rapidinho, e depois ir para outras, e depois fazer ela crescer!

Eu não tinha idéia nenhuma. Então minha irmã mais nova perguntou se eu queria jogar Magic, e pronto! Fazer um sisteminha bobinho de controle de pontos de vida. Simples, Né? Então comecemos decidindo o que a mini app irá fazer:

NOTA: Se você não conhece o jogo de cartas “Magic, The Gathering” visitehttp://www.wizards.com/magic/ ou algum outro site relacionado.

-Recolher alguns dados: quantos jogadores, se há times. Acho que para ficar mais legal seria bom recolher os nomes dos jogadores.
-Recolher os pontos tomados em cada rodada. Terá a opção de
-Mostrar quando a partida acabou e quem perdeu. Caso os jogadores quiserem será mostrado um “log”.

Agora vamos ver quais são as candidatas à Domain Class: Jogador, Time, Rodada. Acho que só por enquanto. Ficará meio tosco, eu sei, mas é um inicio. Quero que ela vá crescendo.

Para continuar a ler esse post visite o Amehisty Report na casa nova: Magic Life Gauge em Grails Parte I

h1

Nova casa do AR

fevereiro 19, 2011

Eu devia ter feito isso ante… mas fiquei com priguiça.
Pois faz um bom tempo que o AR tem casa nova, no endereço http://amethistyreport.com/

E eu nem para avisar vocês, né?

Os textos antigos eu deixei aqui. Só um levei pro novo blog. Sempre que vocês precisarem podem pedir uma mão que eu vou dar.

obrigado por tudo, e visitem a casa nova

h1

Comandos break e continue

agosto 18, 2009

Para ver mais sobre esse assunto acesse o Amethisty Report na casa nova:
http://amethistyreport.com

Bom, vamos começar a adiantar as coisas… não sei quando, mas vamos começar. Já peguei o cd da MSDN AA pra instalar o Windows no meu note, que teve que ser formatado… logo, espero, eu volto a postar sobre XNA.

Bem, hoje vamos falar sobre uns comandinhos legais: break e continue.

BREAK

O comando break para um laço de repetição. Bem, pelo menos é isso que vamos ver hoje. Ele para sem dó nem piedade.

Exemplo:

#include <iostream.h>

void main ()

{

int x,i;

for(x=1;x<=100;x++)

{

cout<<x<<endl;

}

for (i=1; i<=100; i++)

{

cout<<i<<endl;

if(i=50)

{

break;

}

}

}

O que acontece a cima?

Primeiro FOR imprime na tela os números de 1 a 100. O segundo FOR vai imprimir de 1 a 50. Por que ele para? O BREAK mandou parar o laço. Num programa maior quando chega no BREAK o programa pula para a próxima linha do programa.

CONTINUE

Agora o continue é um pouquinho parecido. Ao invés de parar o laço e pular fora, indo pro próximo comando, o continue manda continuar o laço ignorando a linha depois deste.

Exemplo:

#include <iostream.h>
void main ()
{

int x,i;

for(x=1;x<=100;x++)

{

cout<<x<<endl;

}

for (i=1; i<=100; i++)

{

if(i=50)

{

continue;

}

cout<<i<<endl;

}

}

Nesse exemplo o programa roda o FOR, mas quando chega no CONTINUE, quando o valor de i for 50, ele ignora o COUT e não imprime o valor de i, porém, só naquela vez. Depois retorna ao laço, normalmente.

Bom, é isso.. não sei se fui muito clara… é que estou sem inspiração XD preciso voltar a postar.

Até mais

h1

Operadores aritméticos

agosto 16, 2009

Para ver mais sobre esse assunto acesse o Amethisty Report na casa nova:
http://amethistyreport.com

Não falamos muito sobre os operadores aritméticos, né?

Se você lembra que aritmética é um campo de estudo da matemática você deve imaginar do que estamos falando.

As operações em C/C++ (e em C# também) são:

+ adição

- subtração

* multiplicação

/ divição

% módulo

Bom, soma e subtração já usamos, né? Multiplicação e divisão são sinais diferentes dos que já conhecemos, mas tudo bem, né?

E o módulo?

Módulo é o resto de uma divisão. Pra que usar isso?

Bom, se você precisar de uma aplicação que verifique se o número é par você pode usar:

resto=numero%2;

if(resto == 0)

{

cout<<”Numero eh par”;

}

else

{

cout<<”Numero impar”;

}

Muito bem, se você sabe o que é um número par sabe que quando dividimos ele por 2 o resto é 0. Quando o resto é 1 ele é impar. Quando o resto não for nem 0 e nem 1? Bom… se você atribuiu essas variáveis como inteiras isso não pode acontecer… se acontecer você conseguiu uma coisa incrível, meu caro!

Eu sei que deveria ter feito esse post antes… mas eu tinha esquecido dele. Sinto muito. Qualquer sugestão…

h1

Diferenças: = e ==

agosto 16, 2009

As vezes até mesmo os mestres fazem coisas erradas… descuido… e nós mortais também nos descuidamos. Um dia um programa não estava rodando direito, e quando eu fui ver era um problema simples: um if estava usando somente um sinal de “igual” (=).

Qual a diferença?

Bem, de um modo simples você usa o sinal de = quando vai atribuir um valor (ou outra coisa) a uma variável, ou objeto, ou ao estanciar algo. Sinais de == juntos é verificação. Juntos significam “igual a”.

Tanto é que o sinal = é um operador de atribuição, ele atribui um valor. Os == se chama operador relacional. Quando usar cada um?

Você usa = quando vai atribuir um valor. Dãa. Por exemplo:

int x;

x = 4;

int u;

u = x;

Você usa == quando quer… verificar se algo é igual a outra coisa. Exemplo:

int x, u;

x = 4;

u = 5;

if ( x == u)

{

cout<<”Eles são iguais”;

}

Se você usar = num if vai dar erro de compilação. Apesar que um dia a muito tempo aconteceu o milagre de não dar erro. Digo, eu deixei um = só no if, e na hora que o programa chegava na linha do if ele atribuía um tal valor a variável ao invés de verificar se eram iguais. Nunca mais isso aconteceu comigo. Mágica. Do mesmo jeito, não façam isso em casa. E nem no trabalho.

h1

Opa!

agosto 15, 2009

Para ver mais sobre esse assunto acesse o Amethisty Report na casa nova:<a title=”Amethisty Report” href=”http://amethistyrepor.com”>http://amethistyreport.com</a>

Tantas coisas aconteceram nesses tempos…

Teve o concurso, da qual nos últimos dias eu estive me preparando (mentira), teve muitas coisas noas no meu serviço, que me tirar a atenção… meu computador e meu note resolveram parar de funfar na mesma semana…

 

Aliais… a continuação do tutorial de XNA só continua semana que vem… preciso pegar um cd na faculdade para poder continuar.. (longa história).

 

Mas sem demoras, aqui eu volto. E agradeço muito pois só voltei por causa dos comentários. Muito obrigada.

h1

Projeto XNAF: colocar imagens do nosso jogo em XNA

julho 5, 2009

Olá
Vamos continuar com o joguinho de torre de Hanói usando XNA? Lembra, é o nosso projeto, meu e seu, leitor imaginário. XD
Lembrando que vamos começar por baixo, fazendo coisas simples e depois aumentando a dificuldade.

Bom, primeiro vamos pegar essas imagens ai e salva-las, e é bom deixar com o mesmo nome que eu dei. Só para ajudar.

barra

barra

disco_1

disco_1

disco_2

disco_2

disco_3

disco_3

Bom, salvaram elas? Agora abra o Visual Studio ou o Visual C# Express. Abra o projeto da torre de Hanói. Você pode ir por File>>Open>>Project/Solution e escolher o arquivo dentro da pasta torre de Hanói com o nome de Game1.cs

Ou você clica no nome do projeto na abinha de Recents Project.

Bom, vá à abinha da Solution Explore, que é onde mostrar todos os componentes (arquivos) do projeto. Se ela não estiver visível vá ao menu View>>Solution Explore. Ou dê Ctrl+Alt+L.

Bom, Tá vendo onde está escrito Content? Clique sobre ele (para selecionar) e depois clique com o botão direito e escolha add e crie uma pasta. A pasta deve ter o nome de Sprites. Sprites? Ah pai, a tia MayogaX explica depois. Enfim:

Solution Explore

Solution Explore

Agora clique com o botão direito na pasta criada e escolha add>>existing item e ai escolha as imagens. Uma de cada vez.

Bom, primeiro tenho que contar uma coisa: como testar seu jogo. É claro que por enquanto não tem nada, mas só para você já ficar sabendo, olhe a imagem abaixo:

obotão player

Ta vendo o botãozinho verde? Se você clicar nele pode ver como está ficando o sue jogo. Ou seja, por enquanto uma tela azul. Vamos trocar a cor dele primeiro?

Vá onde tem o código:  protected override void Draw(GameTime gameTime){

Vá na linha depois e onde tem escrito a cor de tonalidade azul escreva White:

GraphicsDevice.Clear(Color.White);

É importante que escreva White com ‘w’ maisculo. Em C# há distinção de letras maisculas de minusculas.

Agora clique no botãozinho verde que eu acabei de falar. A tela tá branca, né? Por enquanto, por enquanto, vamos deixa-lá assim.

Bom, poderiamos criar jeitos muito imaginários para controlar as imagens… por enquanto vamos fazer do metodo mais simples, certo?

Agora vamos criar a váriavel  que chama a imagem e a variavel que diz em que posição da tela cada coisa vai ficar. A começar com a barra. Pense comigo: por que variavel a posição na tela? Oras os discos vão ter que se mover, né?

Vá na classe publica Game1 e escreva logo depois de onde está escrito:

public class Game1 : Microsoft.Xna.Framework.Game

{

GraphicsDeviceManager graphics;

SpriteBatch spriteBatch;

Ai escreva:

Texture2D barra1;

Vector2 barra1posicao = Vector2.Zero;

Texture2D barra2;

Vector2 barra2posicao = Vector2.Zero;

Texture2D barra3;

Vector2 barra3posicao = Vector2.Zero;

NOTA IMPORTANTE: Onde é letra maiscula deve ser maiscula e minuscula deve ser minuscula. Espaços devem ser respeitado. Depois falamos mais sobre isso, mas como eu já disse letras maisculas e minusculas são diferentes em C#.

Bom, percebeu que eu criei 3 barras? Ué, no jogo não são 3 barras? Ai você pergunta por que temos só um desenho de barra e eu respondo: não podemos copiar todas as barras?

Criamos as variaveis de textura e as variáveis de vetor. As variáveis de vetor são para colocarmos as possições nas barras.

Agora vamos dizer qual imagem de cada um e qual a possição.

Vá em  protected override void LoadContent()

E escreva logo depois do segundo cometário:

// TODO: use this.Content to load your game content here

barra1 = Content.Load<Texture2D>(“Sprites\\barra”);

barra2 = Content.Load<Texture2D>(“Sprites\\barra”);

barra3 = Content.Load<Texture2D>(“Sprites\\barra”);

Bom, já criamos as variáveis e já dizemos que cada uma delas é a imagem da barra. É isso que diz essas linhas.

barra1 é o nome da variável. Content.Load diz que dentro da variável vai caber tal conteúdo que deve ser carregado. <Texture2D> diz que é 2d. E depois o arquivo que deve ser carregado.

Bom, agora precisamos mandar desenhar as barras. Onde tiver o código:

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.White);

// TODO: Add your drawing code here

Escreva logo depois:

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra1, barra1posicao, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra2, barra2posicao, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra3, barra3posicao, Color.White);

spriteBatch.End();

Dê o play, Macaco! Digo… ahn… teste o joguinho (dica: apertar F5 é a mesma coisa que clicar no botãozinho de play verde).

Você vê só uma barra, certo? Bem, estão as três, mas agente pôs como todas na mesma posição ZERO. Vamos mudar as posições?

Vá em protected override void Update(GameTime gameTime) e logo depois do comentário // TODO: Add your update logic here escreva:

barra1posicao = new Vector2(170.0f, 200.0f);

barra2posicao = new Vector2(370.0f, 200.0f);

barra3posicao = new Vector2(570.0f, 200.0f);

Teste o jogo agora. Bom, por hoje é só. Depois o resto e depois faremos leitura do mouse no jogo (esse jogo será rodado só em pcs).

Bom, até a próxima!

Olá
Vamos continuar com o joguinho de torre de Hanói usando XNA? Lembra, é o nosso projeto, meu e seu, leitor imaginário. XD
Lembrando que vamos começar por baixo, fazendo coisas simples e depois aumentando a dificuldade.

Bom, primeiro vamos pegar essas imagens ai e salva-las, e é bom deixar com o mesmo nome que eu dei. Só para ajudar.

barra

disco_1

disco_2

disco_3

Bom, salvaram elas? Agora abra o Visual Studio ou o Visual C# Express. Abra o projeto da torre de Hanói. Você pode ir por File>>Open>>Project/Solution e escolher o arquivo dentro da pasta torre de Hanói com o nome de Game1.cs

Ou você clica no nome do projeto na abinha de Recents Project.

Bom, vá à abinha da Solution Explore, que é onde mostrar todos os componentes (arquivos) do projeto. Se ela não estiver visível vá ao menu View>>Solution Explore. Ou dê Ctrl+Alt+L.

Bom, Tá vendo onde está escrito Content? Clique sobre ele (para selecionar) e depois clique com o botão direito e escolha add e crie uma pasta. A pasta deve ter o nome de Sprites. Sprites? Ah pai, a tia MayogaX explica depois. Enfim:

Agora clique com o botão direito na pasta criada e escolha add>>existing item e ai escolha as imagens. Uma de cada vez.

Bom, primeiro tenho que contar uma coisa: como testar seu jogo. É claro que por enquanto não tem nada, mas só para você já ficar sabendo, olhe a imagem abaixo:

Ta vendo o botãozinho verde? Se você clicar nele pode ver como está ficando o sue jogo. Ou seja, por enquanto uma tela azul. Vamos trocar a cor dele primeiro?

Vá onde tem o código:  protected override void Draw(GameTime gameTime){

Vá na linha depois e onde tem escrito a cor de tonalidade azul escreva White:

GraphicsDevice.Clear(Color.White);

É importante que escreva White com ‘w’ maisculo. Em C# há distinção de letras maisculas de minusculas.

Agora clique no botãozinho verde que eu acabei de falar. A tela tá branca, né? Por enquanto, por enquanto, vamos deixa-lá assim.

Bom, poderiamos criar jeitos muito imaginários para controlar as imagens… por enquanto vamos fazer do metodo mais simples, certo?

Agora vamos criar a váriavel  que chama a imagem e a variavel que diz em que posição da tela cada coisa vai ficar. A começar com a barra. Pense comigo: por que variavel a posição na tela? Oras os discos vão ter que se mover, né?

Vá na classe publica Game1 e escreva logo depois de onde está escrito:

public class Game1 : Microsoft.Xna.Framework.Game

{

GraphicsDeviceManager graphics;

SpriteBatch spriteBatch;

Ai escreva:

Texture2D barra1;

Vector2 barra1posicao = Vector2.Zero;

Texture2D barra2;

Vector2 barra2posicao = Vector2.Zero;

Texture2D barra3;

Vector2 barra3posicao = Vector2.Zero;

NOTA IMPORTANTE: Onde é letra maiscula deve ser maiscula e minuscula deve ser minuscula. Espaços devem ser respeitado. Depois falamos mais sobre isso, mas como eu já disse letras maisculas e minusculas são diferentes em C#.

Bom, percebeu que eu criei 3 barras? Ué, no jogo não são 3 barras? Ai você pergunta por que temos só um desenho de barra e eu respondo: não podemos copiar todas as barras?

Criamos as variaveis de textura e as variáveis de vetor. As variáveis de vetor são para colocarmos as possições nas barras.

Agora vamos dizer qual imagem de cada um e qual a possição.

Vá em  protected override void LoadContent()

E escreva logo depois do segundo cometário:

// TODO: use this.Content to load your game content here

barra1 = Content.Load<Texture2D>(“Sprites\\barra”);

barra2 = Content.Load<Texture2D>(“Sprites\\barra”);

barra3 = Content.Load<Texture2D>(“Sprites\\barra”);

Bom, já criamos as variáveis e já dizemos que cada uma delas é a imagem da barra. É isso que diz essas linhas.

barra1 é o nome da variável. Content.Load diz que dentro da variável vai caber tal conteúdo que deve ser carregado. <Texture2D> diz que é 2d. E depois o arquivo que deve ser carregado.

Bom, agora precisamos mandar desenhar as barras. Onde tiver o código:

protected override void Draw(GameTime gameTime)

{

GraphicsDevice.Clear(Color.White);

// TODO: Add your drawing code here

Escreva logo depois:

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra1, barra1posicao, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra2, barra2posicao, Color.White);

spriteBatch.End();

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(barra3, barra3posicao, Color.White);

spriteBatch.End();

Dê o play, Macaco! Digo… ahn… teste o joguinho (dica: apertar F5 é a mesma coisa que clicar no botãozinho de play verde).

Você vê só uma barra, certo? Bem, estão as três, mas agente pôs como todas na mesma posição ZERO. Vamos mudar as posições?

Vá em protected override void Update(GameTime gameTime) e logo depois do comentário // TODO: Add your update logic here escreva:

barra1posicao = new Vector2(170.0f, 200.0f);

barra2posicao = new Vector2(370.0f, 200.0f);

barra3posicao = new Vector2(570.0f, 200.0f);

Teste o jogo agora. Bom, por hoje é só. Depois o resto e depois faremos leitura do mouse no jogo (esse jogo será rodado só em pcs).

Bom, até a próxima!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.