domingo, 21 de julho de 2019

Alguém se lembra: Altered Beast (Mega Drive)?

Hum... Não era meu jogo preferido (afinal, era um dos primeiros jogos para Mega Drive), mas tem seus méritos.

Um port muito bem feito do Arcade, que conta a história de um gladiador que é ressuscitado por Zeus para salvar a deusa Atena das garras do vilão Neff (ou uma peça de teatro que conta tudo isso... -- entendedores, entenderão).

O mais legal, é quando se junta três (3) "bolinhas" de poder -- estes dado por ovelhas (???) -- e a personagem se transforma em um animal (literalmente):


O melhor das transformações, é o lobo-homem (lobisomen?). :P

Obs.: Para quem tinha o jogo: O que você entendia quando Zeus falava a você (primeira frase do jogo)?
Obs. 2: Só para constar, eu entendia: "Uia, mata o gay" (#pelamordeus, nada contra, eu só ouvia isso -- cabeça de criança é uma b*sta :P ).

Abaixo, uma jogatina feita pelo canal ralphdouglas:




Até mais!

quinta-feira, 6 de junho de 2019

Alguém se lembra: Battletoads do NES/Mega Drive?

Sabe aquele jogo que é legal, mas não dá vontade de terminar por que é muito difícil...

Então... Este é Battletoads:


Battletoads é um jogo estilo "briga de rua" (tipo Double Dragon), aonde os protagonistas são sapos (???) que precisam salvar seus companheiros (que, também, são sapos) da terrivel Dark Queen (que, acreditem, NÃO é um sapo, mas uma mulher gostosa pra c...aramba).

É legal? É... até perceber que não tão fácil quanto parece. A primeira fase é muito de boa, mas depois, meu amigo, a coisa só piora (e demais, diga-se de passagem).

Dá um pouco de raiva (para não falar outra coisa).

Mas vale pela jogatina... Falando em jogatina, assista uma feita pelo canal Medieval Games BR:



Até mais!

Dicas de Programação: Qual é a diferença entre agregação e composição?

No final, em um diagrama de classes (UML), agregação e composição são a referência que uma classe tem com a outra (uma classe contém uma propriedade de outra classe).

A diferença entre elas, esta no "valor" que uma classe representa para a outra.

Como exemplo, vamos pegar a classe Carro e dizer que ela tem as propriedades arCondicionado e motor (com suas respectivas classes):

public class Carro {
        [Nullable]
        public ArCondicionado arCondicionado { get; set; }
        [NotNull]
        public Motor motor { get; set; }
}

Se um carro comum não tiver arCondicionado, ele ainda funciona, certo?

Se o arCondicionado só "agrega" um valor ao carro (fica mais valorizado, mas o carro não deixa de funcionar), então dizemos que é uma agregação.

Mas se um carro não tem motor, ele não funciona mais, correto? (só se for carro fantasma :P)

Assim, podemos afirmar que um motor "compõe" o carro (sem ele, o carro não funciona), então dizemos que é uma composição.

Bem, espero que a explicação seja útil para alguém... (pelo menos, para mim foi) :P

Até mais!

Dicas de Programação: Como gravar um objeto em um arquivo no C#?

Fácil, é só deixar ele serializavel:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class Program
{
        //Classe que representa dados de uma pessoa
        [Serializable()]
        public class Pessoa {
                public string Nome { get; set; }
                public int Idade {get; set; }
public static explicit operator String(Pessoa p)
{
return String.Format("Nome: {0} Idade: {1}", p.Nome, p.Idade);
}
        }

public static void Main()
{
          //Se arquivo Data.bin existe...
if (File.Exists("Data.bin"))
{
                  //Leio os dados gravados nele e transformo em um objeto do tipo Pessoa
Stream stream = File.OpenRead("Data.bin");
BinaryFormatter binary = new BinaryFormatter();
Pessoa p = (Pessoa) binary.Deserialize(stream);
stream.Close();
Console.WriteLine(String.Format("Lendo - {0}", (String)p));
}
          //Se o arquivo não existe...
else
{
                  //Crio os dados do objeto do tipo Pessoa e gravo ele no arquivo Data.bin
Pessoa p = new Pessoa();
p.Nome = "Me";
p.Idade = 18;
Stream stream = File.Create("Data.bin");
BinaryFormatter binary = new BinaryFormatter();
binary.Serialize(stream, p);
stream.Close();
Console.WriteLine(String.Format("Escrevendo - {0}", (String)p));
}
}
}

Obs.: Sempre que um objeto precisa ser "gravado"/"transportado", seja na rede ou no arquivo (binário, xml ou json), ele precisa ser serializado.

Até mais!

terça-feira, 21 de maio de 2019

Dicas de programação: Qual é a diferença entre aspas simples (') e aspas duplas (") em PHP?

Para o pessoal que vai trabalhar com PHP:

A diferença entre criar uma string, no PHP, com aspas simples (') e aspas duplas (") é, em geral, em termos de performance... Se criar uma string simples (sem concatenação ou caracteres especiais), o mais performático é usar as aspas simples:

$str = 'Minha frase simples';

Se for necessário concatenar com uma variável ou utilizar caracteres especiais, é mais performático usar as aspas duplas ("):

$str2 = 'composta';
$str = "Minha frase $str2\n";

Mas se for uma concatenação complicada e precisar utilizar o ponto (.) para isso - para quem não sabe, o ponto é o operador de concatenação em PHP (igual ao + do Java/C#) -, é melhor usar as aspas simples ('):

$i = 0;
$str = 'Minha frase';
if ($i == 0) {
    $str = $str . ' simples';
} else {
    $str = $str . ' composta';
}

Mas se precisar concatenar com variáveis e tem um texto enorme, o mais correto é usar o operador <<<:

$str = <<<EOF
texto...
texto...
texto...
EOF;

Complicado? E quem disse que PHP é fácil? :P

Até mais!

segunda-feira, 6 de maio de 2019

Conseqüências


Todo ato tem uma conseqüência e, geralmente, ela não afeta somente a pessoa que a cometeu, ela pode afetar outras pessoas e, talvez, uma sociedade inteira...

Então, antes de:

- Escrever, pense (algumas vezes, palavras são mais perigosas que uma arma -- elas podem começar até uma guerra...);

- Falar, ouça (ser visto como um bom ouvinte é dez vezes melhor do que ser visto como um fofoqueiro, ideologista, fanático ou reclamão);

- Condenar, pondere (poderia ser perdoar, poderia... mas acho muito difícil! Portanto, tente, pelo menos, aconselhar as pessoas);

- Criticar, elogie (ninguém é perfeito, todo mundo sabe disso, mas ninguém, também, é imperfeito, portanto sempre existe algo para se elogiar);

- Estressar, ria (se você acha tudo muito absurdo, ria da situação, afinal, perdido por perdido, pelo menos você esta se divertindo... :P );

- Agir, reflita (vá no espelho do banheiro, veja você no lugar do outro e depois volte -- acredite, algumas vezes dá certo);

- Criar um blog, pense que você pode não ficar rico com isso (pois eu não fiquei :P );

Até mais!

A Guerra e a Justiça

(c) Alla Vasilyeva

Uma vez, em um momento qualquer das eras, a Justiça encontrou a Guerra e, sem ter o que dizer, indagou a ela:

- Guerra, você não se sente cansada de ser odiada pelos humanos? Os mesmos que a clamam, quando as coisas parecem mais calmas e pacíficas?

- Não sou eu que sou chamada, cara Justiça -- respondeu Guerra, urrando como grandes cornetas -- sou apenas a conseqüência dos pecados deles!!!

- Como assim? -- perguntou Justiça, com uma certa cara de espanto.

- Simples, Justiça. Veja como os mortais defendem os ideais de outros mortais, só por pura inveja, vaidade, raiva ou luxúria. Deixam seu lado mais "egoísta" e "cruel" exposto, demonstrando seu ódio e atraindo mais ódio pelos que defendem o "outro lado".

- Um ciclo vicioso, como diria os mortais! -- conclui Justiça, tentando parecer sábia.

- Sim, com certeza! E você, minha filha, já sabe como isso termina...

Assim, percebendo a verdade, Justiça simplesmente calou-se e, antes que Guerra volta-se seus olhos para ela, esta partiu para seus afazeres diários...