Atenção, todo o conteúdo desta página foi desenvolvido com objetivos didáticos e pode ser utilizado livremente por qualquer pessoa desde que sua utilização seja sem fins lucrativos. Ao utilizar qualquer parte do conteúdo deste projeto, favor referenciar o projeto e/ou qualquer publicação produzida a partir do mesmo. As páginas deste projeto estão sendo constantemente atualizadas. Em breve novos códigos fontes, aplicações e manuais serão disponibilizados. |
Sistema Torneio de Truco: possui as classes básicas para se executar um torneio de truco entre dois ou mais bots. Além disso, possui a interface Jogador que, ao ser implementada, produz os jogadores participantes do torneio. Este sistema pode ser utilizado para se fazer um competição, na disciplina de Inteligência Artificial, entre os alunos para verificar quais alunos (ou grupos) produzem os melhores bots. Inclui duas implementações da interface Jogador (uma com um jogador que age de maneira aleatória e outra com um jogador que segue algumas regras simples [além de ter parte do comportamento aleatório]). Este sistema foi desenvolvido em Java, e o projeto Eclipse dele pode ser encontrado no seguinte link: [zip].
Jogador de Joga da Velha (automático): utiliza aprendizado por tentativa e erro para aprender a jogar sabendo apenas quando perdeu ou não e usando esse conhecimento para jogar melhor o próximo jogo. Está desenvolvido em Perl (são dois jogadores: um é sempre o primeiro a jogar e o outro sempre o segundo).
Jogador de Damas (interativo): aplicativo local feito em Prolog, o jogador automático (bot) utiliza a busca MiniMax (Inteligência Artificial) para decidir quais são as melhores jogadas.
Jogador de Truco (interativo): aplicativo Web (desenvolvido em CGI/Perl) é um sistema especialista para jogar truco.
Newmings: jogo dinâmico baseado em Lemings, onde você deve ajudar os pinguins a encontrar a saída. Desenvolvido em C++, no Linux.
Jogador de Joga da Velha II (automático): utiliza diversos algoritmos da Inteligência Artificial (busca MiniMax, sistema especialista e dicionário de jogadas) para executar a “melhor” jogada. Por se tratar de um jogo simples, todo o espaço de busca é analisado por alguns dos algoritmos. Implementado em C.
Tetris: convencional, implementado em C++ no Linux.
Campo Minado: com um bot para tentar resolver automaticamente (de maneira iterativa), implementado em Visual C#.
Robot Algorithm: robô que conta com o auxílio do usuário para desenvolver um percurso passando por todas as regiões vermelhas e acendendo sua luz sobre essas regiões. O Robô pode executar 7 diferentes ações que podem ser estruturas em três conjuntos de funções: a principal (caixa Agir das figuras abaixo), f(x) e g(x). Este sistema serve para ensinar conceitos básicos de programação estruturada. [.exe]
![]() | ![]() |
Torres de Hanoi: simulação automática e manual do algoritmo. Implementado em C#, utilizando a recursão clássica para este algoritmo (indução) [.exe].
Passeio do Cavalo/Cavaleiro: simulação automática e manual do algoritmo do Passeio do Cavalo (Knight Tour). O objetivo é, dado um tabuleiro quadrado n por n e uma posição inicial para o cavalo, percorrer todas as casas do tabuleiro apenas uma vez (respeitando o movimento de xadrez de um cavalo [andar em "L"]). Implementado em C#, utilizando a técnica tentativa e erro/backtracking [.exe].
Problema das Rainhas (8 Rainhas): simulação automática do algoritmo do Problema das Rainhas para um tabuleiro n x n. O objetivo é, dado um tabuleiro quadrado n por n, encontrar todas as posições das n rainhas no tabuleiro de forma que cada rainha não ameace as demais. Implementado em C#, utilizando a técnica tentativa e erro/backtracking [.exe].
Criando um Novo Jogo no Servidor de Jogos. Esta aula ensina como utilizar conceitos de orientação a objetos e estruturas de dados para criar um novo jogo no servidor de jogos por meio da extensão de classes básicas do servidor [pdf].
Técnicas de Inteligência Artificial. Esta aula resume alguns conceitos de Inteligência Artificial (relacionados a busca por soluções, sistemas baseados em regras, descoberta, armazenamento e recuperação de conhecimento, etc) e aplica estes conceitos no desenvolvimento de quatro diferentes bots jogadores de Jogo da Velha [pdf].
Torneio de Truco. Esta aula propõe uma atividade prática (a ser desenvolvida individualmente ou em grupo) relacionada ao desenvolvimento de um sistema especialista. Estes sistema especialista deve implementar um jogador de truco (cuja interface está disponibilizada no pacote TorneioDeTruco). O sistema desenvolvido permite que todas as implementações dos jogadores participem de um torneio de truco (jogando todas contra todas) [pdf].
Publicações
Aulas e Palestras
Aulas
Esta seção contéma alguns exemplos de aulas que podem ser usadas (em conjunto com os sistemas desenvolvidos) em disciplinas como Introdução a Ciência da Computação, Algoritmos e Estruturas de Dados e Inteligência Artificial. Cada conjunto de slides contém uma descrição do contexto onde pode ser aplicado, seus objetivos e atividades práticas relacionadas.
Palestras
Plataforma de Jogos como Ferramenta Multidisciplinar. Microsoft Faculty Summit Brasil, Dezembro de 2008. Esta palestra motiva e descreve a utilização da plataforma de jogos aqui desenvolvida como ferramenta para o auxílio ao ensino de computação [pdf].