segunda-feira, 18 de maio de 2009

Games

Sempre me perguntei quando criança como que faziam aqueles jogos. Sempre me diverti muito com eles e meu Super Nintendo, mas sempre quis saber como eram feitos.
Logicamente, eu cresci e agora sei que não é fácil como eu até então imaginava, e claro isso desanima =P. Mesmo assim é um assunto que vira e torna a voltar nos meus pensamentos.
Aí então o oráculo Google me ajudou. Pesquisando sobre games e java (já deu pra notar que gosto desta linguagem, não sei por que é uma afinidade XD) achei vária coisas interresantes e coisas que quero aprender a mexer. Aí vai o link para algo que está me inspirando:
http://fivedots.coe.psu.ac.th/~ad/jg/

Conteúdo todo em inglês. pra quem tem problemas com ingles, aqui vai uma dica: Aprenda!
Este livro faz uma coletânea de tudo que importante aprender sobre java pra quem quer fazer um game. Acho que tem uma linguagem de fácil entendimento e contém exemplos. No site tbm tem códigos-fonte dos programas.
Várias coisas bem interessantes, vale a pena uma conferida
Ai foi a dica.
Sorte pra mim, pois quero aprender =P

terça-feira, 14 de abril de 2009

Hello World!
Nossa isso foi .....
Bom penso em várias coisa ultimamente, um pouco de tudo. Geralmente Criptografia, Funções Hash e seu funcionamento (sei lá mas gosto disso, me chama atenção), estudo sobre várias linguagens de programação etc e talz. O que quebra é a maldita semana de provas que está aí e não da tempo de guaribar os diversos assuntos e muito menos de organizar algo na cabeça.
Espero que tudo acabe logo..

Saindo do assunto acima
Ontem vi que foi regulamentado o sistema de banda larga pela rede elétrica. É uma ideia legal pro Brasil, uma ideia que pode atingir a todos sem uma mudança na infraestrutura geral. Só gostaria de sabe mais detalhes, coisa do tipo qual a velocidade máxima que estará disponível e principalmente o custo, já que internet do Brasil é uma das mais caras do mundo. Veremos...

See Ya!

segunda-feira, 6 de abril de 2009

Cultura Inútil

Aqui vai um pouco de cultura inútil. Curiosidade que ninguém precisa saber, mas saber não vai te matar pra valer.


http://www.uhull.com.br/04/02/cultura-inutil/#more-19872

domingo, 5 de abril de 2009

Gagged in Brazil - Censura na Imprensa

Vendo a net por aí achei um bom vídeos. Sobre política, ele fala de como a política pode manipular os centros de informação que por sua vez manipulam a opinião pública.

sábado, 18 de outubro de 2008

Mais Luajava

Como ja disse antes estou fando um trabalho de Linguagens de Programação.
Agora está na segunda parte do trabalho, a implementação.
Ela consiste em fazer um programa para maniopulação de uma base de dados.
A linguagem do meu grupo é Lua.
A idéia eh fazer a interface gráfica em linguagem Java e toda a conexão ao banco em Lua.
É um pouco dificil de mexer com o plugin Luajava, da um pouco de dor de cabeça, mas puxando artigos e procurando nos fóruns da internet tá indo e é bem interresante como tudo funciona.
Em breve postarei o código.
See Ya!

domingo, 28 de setembro de 2008

Linked List em Lua

Por esses dias vou ter que apresentar um trabalho na faculdade para matéria de Linguagem de Programação. A linguagem do meu grupo foi Lua. Lua é uma linguagem brasileira criada pelo pessoal da PUC-Rio que está ganhando espaço aos poucos.
Como exemplo para mostrar em sala, eu fiz um script de uma LinkedList, porém como Lua éuma linguagem de script, e eu quis abordar um pouco disso, então fiz a extensão de Lua com Java usando o LuaJava(http://www.keplerproject.org/luajava). Fiz a interface em Java e a lista em Lua.
O blog Programadores De Jogos tem um artigo que me ajudou muito no trabalho (http://www.blog.programadoresdejogos.com/?p=13)
Abaixo o código para vizualização tanto do código lua quanto Java

http://luatrab.googlecode.com/files/ListaEnc.lua
http://luatrab.googlecode.com/files/ListaEncadeada.java
http://luatrab.googlecode.com/files/Main.java

Para rodar vai precisar do LuaJava
Qualqur coisa não explicada, eu respondo...fui

segunda-feira, 22 de setembro de 2008

Estrutura de Dados Java - Lista encadeada / LinkedList

Começei ontem um algoritmo para Lista Encedeada, to estudando melhor as estruturas de dados, está implementada em Java, só para estudo mesmo. Vamos dizer que esta na versão 0.1. Vou postar o código pra quem quiser. Comentários?


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.NoSuchElementException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class LinkedList implements Iterable {

private Node head = null;
private Node last = null;

private int size = 0;

public void initList() {
head = null;
last = null;
size = 0;
}

public boolean isEmpty() {
return head == null;
}

public void addFirst(V info) {
Node tmp = new Node(info, head);
if(isEmpty())
last = tmp;
head = tmp;
setSize(size + 1);
}

public void addLast(V info) {
Node tmp = new Node(info, null);
if(isEmpty())
head = tmp;
else
last.next = tmp;
last = tmp;
setSize(size + 1);
}

public void add(V info) {
addLast(info);
}

public V removeFirst() {
V obj = null;
if(!isEmpty()) {
obj = head.getInfo();

if(head == last)
last = null;
head = head.getNext();
}
setSize(size - 1);
return obj;
}

public V removeLast() {
V obj = null;
if(!isEmpty()) {
Node aux = head;
obj = last.info;
if(aux.next == null) {
head = null;
last = null;
} else {
while(aux.next != last)
aux = aux.next;
aux.next = null;
last = aux;
}
}
setSize(size - 1);
return obj;
}

public V get(int index) {
V obj = null;
if(index < size) {
int i = 0;
Node n = head;
while(i < index) {
n = head.next;
i++;
}
obj = n.info;
} else {
throw new NoSuchElementException();
}
return obj;
}

public V getHeadInfo() {
return head.info;
}

public boolean contains(V obj) {
Node aux = head;
while(aux != null)
if(obj.equals(aux.getInfo()))
return true;
else
aux = aux.getNext();

return false;
}

public int size() {
return size;
}

private void setSize(int size) {
this.size = size;
if(this.size < 0)
this.size = 0;
}

public Iterator iterator() {
return new Iterator() {
Node current = head; // utilizado apenas para iteração de elementos
public boolean hasNext() {
return current != null;
}

public V next() {
V obj = current.getInfo();
current = current.getNext();

return obj;
}

public void remove() {} //não utilizado ainda
};
}

class Node {
private V info;
private Node next;

public Node(V info, Node next) {
this.info = info;
this.next = next;
}

public V getInfo() {
return info;
}

public Node getNext() {
return next;
}
}

//------------------------------------------------------------------------------
public static void main(String args[]) {
JFrame frm = new JFrame("Bla");
final JTextField tx = new JTextField(25);

JButton btInit = new JButton("Reset Lista");
JButton btSize = new JButton("Tamanho");
JButton btAddIni = new JButton("Add Inicio");
JButton btRemoveIni = new JButton("Remove Inicio");
JButton btAddFim = new JButton("Add Fim");
JButton btRemoveFim = new JButton("Remove Fim");
JButton btContains = new JButton("Contem?");
JButton btGetNode = new JButton("Get Node");
JButton btShow = new JButton("Show");
final LinkedList list = new LinkedList();

btInit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
list.initList();
}
});

btAddIni.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = tx.getText();
list.addFirst(s);
tx.setText("");
tx.requestFocus();
}
});

btRemoveIni.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String a = list.removeFirst();
tx.setText(a);
}
});

btAddFim.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = tx.getText();
list.addLast(s);
tx.setText("");
tx.requestFocus();
}
});

btRemoveFim.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String a = list.removeLast();
tx.setText(a);
}
});

btContains.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = tx.getText();
boolean result = list.contains(s);
tx.setText(""+result);
}
});

btSize.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, list.size());
}
});

btGetNode.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = tx.getText();
int index = Integer.parseInt(text);
String result = list.get(index);

JOptionPane.showMessageDialog(null, result + " - " + index);
}
});

btShow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String s = "";
for(String a : list)
s += a + "\n";

JOptionPane.showMessageDialog(null, s);
}
});

frm.setLayout(new FlowLayout());
frm.add(tx);
frm.add(btInit);
frm.add(btSize);
frm.add(btAddIni);
frm.add(btRemoveIni);
frm.add(btAddFim);
frm.add(btRemoveFim);
frm.add(btContains);
frm.add(btGetNode);
frm.add(btShow);

frm.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frm.setBounds(150, 50, 310, 200);
frm.setVisible(true);
}
}