domingo, 29 de julho de 2012

Softwares Antigos Desenvolvidos

Galera neste post tenho por objetivo disponibilizar alguns softwares antigos desenvolvidos por mim.   Este softwares em geral teve o objetivo de aprendizado da linguagem Java (o qual são a maioria dos programas) desenvolvidos aqui. Estou disponibilizando aqui, mais como incentivo para quem já desenvolve em alguma linguagem ter algumas idéias interessantes de programas a serem desenvolvidos. A maioria dos programas que se encontram aqui consegui desenvolver nos primeiros meses após começar a programar na linguagem java, o que demonstra a facilidade da linguagem.

Programa Jogo Reversi: Este programa é uma Inteligência Artificial (IA) para o jogo Reversi. Este trabalho foi feito na disciplina de Inteligência Artificial enquanto fazia graduação na UFLA. Possui os modos de jogar Humano x Humano e Humano x CPU. Foi desenvolvido com o proposito de aprender sobre algoritmo Minimax com poda alfa e beta. Desenvolvido em Java.


Programa Jogo Reversi. 
Programa Perceptron X: Este programa mostra uma rede neural para fazer separação de classes nos problemas AND e OR. Esses são problemas clássicos de Redes Neurais Artificiais (RNA). Foi desenvolvido com o proposito de aprender a trabalhar com RNA. Desenvolvido na linguagem Java.
Software Perceptron Utilizando Redes Neurais Artificiais.
Jogo da Velha: Um simples jogo velha onde joga-se apenas dois jogadores humanos, ou seja, não tem inteligência artificial. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt. Desenvolvido em Java.

Jogo da Velha
Download Jogo da Velha: Download aqui.

Jogo do Campo Minado X: Jogo simples do campo minado, mas ficou bem próximo ao do programa da Microsoft em Jogabilidade (Eu acho kkkkkk). Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt além de aperfeiçoar a lógica de programação. Feito em Java.

Jogo Campo Minado X
Download Jogo Campo Minado X: Download aqui.

Fractais: Este programa mostra alguns fractais desenvolvidos como o fractal de Mandelbrot, o de Júlia, o de Koch, o de Ló, o de Sierpinski, entre outros famosos. Tem alguns criados por mim também e tem alguns desenhos que não são fractais são maluquices quaisquer. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt, fazer os códigos interessantes de fractais entre outros objetivos. Feito em Java.

Software Fractais, mostrando o fractal de Mandelbrot.
Download do Programa Fractal: Download aqui.

Programa Paint X: Este programa é uma versão bem simples do paint desenvolvido por mim. Ele possui os seguintes recursos: desenhar retângulos, elipses e linhas nas mais diversas cores, as formas geométricas podem ser preenchidas ou não. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt. Feito em Java

Software Paint, mostrando uma loucura qualquer.
Download Programa Paint X: Donwload aqui.

Programa Leitor de Mente 2.0: Este software foi criado com base em um propriedade da matemática. Este software foi feito quando eu estava no curso técnico no CEFET-Formiga. Foi feito em C#, assim para rodar talvez precise de instalar um biblioteca no Windows.

Programa Leitor de Mente 2.0
Download Programa Leitor de Mente 2.0: Downlaod aqui.

Programa Sistema Planetário: Este software tenta simular um pouco do sistema solar. Possui os movimentos de translação dos planetas Mercúrio, Vênus, Terra e Marte, além de possuir também a animação da lua em translação em volta da terra. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt além de aperfeiçoar a lógica de programação. Desenvolvido na linguagem Java.


Software que simula o sistema planetário.
Programa Problema das Damas: Este software busca sozinho a solução para o problema das Damas o método de busca não apresenta muita inteligência, apenas um algoritmo de força bruta, mas é o suficiente para esse problema quando o tamanho do tabuleiro é 8x8, em tabuleiros maiores esse algoritmo não é viável. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt além de aperfeiçoar a lógica de programação. Feito em Java.

Software que resolve por força bruta o problema das damas.

Programa Caça Níqueis X: Este software pretendia simular o jogo de caça níquel. Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt além de aperfeiçoar a lógica de programação. Feito em Java.


Software que simula uma máquina de caça níqueis.

Programa Desenha Smile: Este software desenha uma "carinha" (sorriso) na tela e através dos JSliders o usuário pode aumentar ou diminuir o tamanho da "carinha". Foi desenvolvido com o proposito de aprendizado para trabalhar com Swing e Awt além de aperfeiçoar a lógica de programação. Feito em Java.

Software que desenha uma smile.
Como disse anteriormente a maioria dos softwares aqui apresentados não possui nenhum valor. Exceto o valor dado ao aprendizado obtido sobre programação. Até+.

Adivinhando Números

Olá este post tem por objetivo apresentar uma técnica interessante de adivinhar o número pensado por uma pessoa. Sendo assim é uma maneira de se divertir aplicando esta técnica a seus amigos e familiares.  Observe a figura abaixo para entender como funciona.
Cartelas Para adivinhar o Número Pensado.
Abaixo encontra-se cinco cartelas que você deverá imprimi-las para fazer a brincadeira. Após imprimi-las recorte-as, e atrás destas cartelas coloque a letra que se encontra acima de cada uma das cartelas. Fazendo isto peça para uma pessoa que escolha um número de 1 a 31. Feito isto peça para a pessoa olhar a cartela e dizer em quais cartelas se encontra o número pensado, ela deve dizer em quais letras das cartelas o número se encontra. 

Por exemplo, suponha que a pessoa pensou no 25, ela dever-a te dizer que o número pensado encontra-se na cartela A, D e E. Feito isto você consegue descobrir qual número ela pensou associando a letra A = 1, B = 2, C = 4, D = 8 e E = 16. Como as cartelas A, D e E são as cartelas que está o número pensado você descobre este número somando-se os números associados a cada cartela neste caso 1 + 8 + 16 = 25 (número pensado). Repare que somamos 1 + 8 + 16, pois são os números associados as cartelas A, D e E respectivamente. 

Explicação do funcionamento da brincadeira: Este brincadeira funciona com base no sistema de numeração binário. Quando você escolhe ou não uma cartela, você esta ativando ou desativando-a, sendo assim 0 ou 1 que é a base do sistema binário. Como temos cinco cartelas, o maior número pensado vai ser 31 (marcado na figura acima de verde), onde todas as cartelas estão ativadas. O número em binário com cinco dígitos uns consecutivos (0b11111 = 31). Repare então que conforme a nossa regra 31 tem de ser igual a soma de 1, 2, 4, 8, 16, o que é verdade (1 + 2 + 4 + 8 + 16 = 31). Outra característica presente na cartela é que o valor associado a cada cartela é exatamente o primeiro valor de cada cartela (marcado na figura acima de vermelho). Assim repare que o A = 1, B = 2, C = 4, D = 8 e E = 16, pois estes são os primeiros números em cada cartela.

Abaixo encontra-se para download um arquivo contendo as cartelas. Neste arquivo tem-se duas cartelas para serem impressas, uma para iniciantes (pessoas com dificuldades em fazer contas) onde o número pensado vai de 1 a 31 e outra para pessoas mais avançadas que vai de 1 a 127. Nesta cartela mais avançada é claro que deve-se colocar mais duas letras que são a letra F e G além das outras já existentes. Onde a letra F = 32 e G = 64. Você pode propagar o raciocínio existente nesta brincadeira para qualquer intervalo de números inteiros apenas incluindo ou excluindo cartelas, que apresentem esta propriedade.

Download da cartelas prontas: Download aqui.

segunda-feira, 23 de julho de 2012

ChessClock

Um dos meus hobbys é jogar xadrez, e como muitos dos jogadores de xadrez, eu não possuo o relógio de xadrez para cronometrar as partidas. Assim resolvi fazer um software (um relógio de xadrez digital) que simule o relógio de xadrez. 

Tela Principal do Relógio de Xadrez Digital
Esta tela marca o tempo dos jogadores. O tempo é dado em segundos neste exemplo acima um dos jogadores tem 48,73 segundos e o outro 57,90 segundos. O relógio tem as opções de play, pause, restart e opções.


A tela de Opções pode ser vista acima. Nesta tela os jogadores definem o tempo para cada jogador, e caso desejem colocar acréscimo de tempo (tempo extra) após cada jogada poderão fazê-lo. Apesar de ser um software simples achei poucos softwares que façam algo parecido, os que encontrei acabaram não satisfazendo as minhas necessidades. Dessa forma, eu decide fazer meu próprio relógio digital de xadrez. Abaixo encontra-se o link para download desse software. Qualquer dúvidas ou sugestões deixe o seu comentário abaixo. 

Download ChessClock: Download aqui.

Visual GrubiX

O Visual GrubiX é um visualizador de Redes de Sensores Sem Fio (RSSF) feito para o framework GrubiX. O GrubiX é derivado do simulador ShoX mais informações são obtidas no site do Grubi. Este visualizador foi desenvolvido por mim com o auxílio do grupo de pesquisa GRUBi que fica localizado no DCC da UFLA. Foi desenvolvido durante meu trabalho de Iniciação Científica. 

Essa ferramenta é capaz ler o arquivo XML que é dado como saída pelo framework GrubiX. Dessa forma, primeiro deve-se programar a RSSF através do GrubiX depois de pronta a simulação gera-se o arquivo XML que o Visual GrubiX trabalha. Esse software funciona como um player de vídeo, só que exibindo a simulação da RSSF mostrando o envio e recebimento dos pacotes. Mostra também o alcance dos sensores, etc. A tela abaixo mostra a interface gráfica desse software.

Tela do Visualizador - Visual GrubiX
Download Visualizador Visual GrubiX: Download aqui.

Jogo: O Reino da Portumática

Olá este post tem por objetivo divulgar um jogo o qual fui um dos desenvolvedores. Foi desenvolvido em um trabalho de Iniciação Científica na Universidade Federal de Lavras (UFLA). Este jogo tem por objetivos auxiliar a crianças de 2ª e 3ª série, nas disciplinas de matemática e português dai o nome Portumática. Este jogo é do tipo perguntas/respostas, o qual uma pergunta virá e o jogador deverá responder corretamente a mesma senão perde uma vida. O cenário do jogo, um ambiente medieval, este foi vislumbrado pelas crianças de uma escola. Nesta escola foi feito o levantamento de requisitos para a criação de um jogo educacional. Este jogo foi desenvolvido em Java usando as APIs Swing e AWT. Este foi o primeiro projeto de médio porte o qual me envolvi. No mesmo aprendi a trabalhar com a criação de interfaces usando Swing e Awt, reprodução de áudio, orientação a objetos em java. Foi feito usando o padrão de projeto Model View Control - MVC.

A seguir pode-se ver um conjunto de telas do jogo. Na primeira tela mostrada tem-se a tela de abertura do jogo. Na segunda tela tem-se a tela de escolha dos personagens e definição dos nomes do jogador. E por fim, na última tela exibida tem-se a tela onde o jogador pode escolher uma determinada porta e a pergunta associada. Caso o jogador acerte a pergunta ele avança uma nas salas do castelo até chegar no último nível e então terminar o jogo.

Tela Inicial do Jogo
Tela de Escolha do Personagem do Jogo 
Tela de Perguntas e Respostas do Jogo
Download de Esquema do Jogo em PDF: Download aqui.