Boa noite galera bonita.
Hoje demos um grande salto com o projeto. Ufa, missão cumprida pra hoje!
Como combinamos no último encontro, o objetivo da aula de hoje seria iniciar o processo de incrementar o jogo para modo multiplayer. Não só avançamos bastante nesse sentido como também adicionamos na tela a informação sobre a pontuação dos jogadores.
A tela do jogo foi dividida em duas e adicionamos novas entradas do teclado para o controle do segundo jogador, as peças continuam sendo geradas aleatoriamente para ambos.
Paralelamente atualizamos a documentação da "Engenharia Detalhada" inserindo novos protótipos para as especificações que atendem à adição do novo jogador.
Pra próximo encontro pretendemos temos uma surpresa boa. Aguardem haha :D
quinta-feira, 29 de setembro de 2016
Ta ficando cabulosooo
Foi feita a apresentação da engenharia detalhada do projeto, como pode ser visalizada no link abaixo:
https://docs.google.com/ presentation/d/ 1fhOozewvXWSSUQR- XHMOEbZing0NrZiEGUVbAIUGpjU/ edit?usp=sharing
Na engenharia detalhada, foram descritos como serão as estruturas de comunicação entre os modulos, e as entrutura de entrada de movimento e saida de notificações.
Foi adicionado o segundo jogador ao OpenCV, sendo assim selecionadas duas cores diferentes, uma para cada smartphone, as cores selecionadas foram verde e lilas, pois apresentaram excelente constrate com o ambiente.

Como pode ser visto acima, já estão sendo detectados os centros de ambos os celulares, com base nesses centros serão calculados os movimentos, depois de futuro alinhamento com o outro grupo.
https://docs.google.com/
Na engenharia detalhada, foram descritos como serão as estruturas de comunicação entre os modulos, e as entrutura de entrada de movimento e saida de notificações.
Foi adicionado o segundo jogador ao OpenCV, sendo assim selecionadas duas cores diferentes, uma para cada smartphone, as cores selecionadas foram verde e lilas, pois apresentaram excelente constrate com o ambiente.

Como pode ser visto acima, já estão sendo detectados os centros de ambos os celulares, com base nesses centros serão calculados os movimentos, depois de futuro alinhamento com o outro grupo.
quinta-feira, 22 de setembro de 2016
Tetris Multiplayer! A new era!
O encontro do dia 22 foi marcado por muita mão na massa, mudança de planos e uma grande novidade para quem tem acompanhado nosso trabalho.
Passamos boa parte da aula aprendendo sobre os processos de execução da biblioteca SDL em diferentes ambientes operacionais. Enquanto alguns de nossos colegas arrancavam os cabelos tentando compilar tutoriais no MAC OS e Windows, outros se debatiam entre os inúmeros erros apontados no terminal do Linux. Finalmente, obtivemos êxito em compilar alguns exemplos de teste, podendo assim concentrar nossos esforços em entender algumas das funções básicas implementadas na biblioteca padrão.
Como exemplo, rodamos os tutoriais abaixo, que incorporam funções que serão posteriormente úteis no desenvolvimento do SuperTetris. A figura da direita mostra a execução de um programa simples que indica qual tecla foi pressionada pelo usuário. A figura da esquerda, por sua vez, indica a execução de um programa que implementa um timer.
Aguardem as cenas dos próximos capítulos.
Passamos boa parte da aula aprendendo sobre os processos de execução da biblioteca SDL em diferentes ambientes operacionais. Enquanto alguns de nossos colegas arrancavam os cabelos tentando compilar tutoriais no MAC OS e Windows, outros se debatiam entre os inúmeros erros apontados no terminal do Linux. Finalmente, obtivemos êxito em compilar alguns exemplos de teste, podendo assim concentrar nossos esforços em entender algumas das funções básicas implementadas na biblioteca padrão.
Como exemplo, rodamos os tutoriais abaixo, que incorporam funções que serão posteriormente úteis no desenvolvimento do SuperTetris. A figura da direita mostra a execução de um programa simples que indica qual tecla foi pressionada pelo usuário. A figura da esquerda, por sua vez, indica a execução de um programa que implementa um timer.
No decorrer da aula surgiram algumas discussões a respeito de novas funcionalidades que poderiam ser incorporadas ao jogo. Dentre as propostas levantadas, temos a seguinte novidade para vocês:
"Se com um jogador já era bom, com dois vai ficar ainda melhor."
Encontramos uma implementação básica da proposta que havia sido discutida até então, livremente disponível na internet (acesse aqui), e decidimos usar algumas ideias já propostas como base do nosso projeto. Tal decisão implica numa maior agilididade na fase incial de desenvolvimento do projeto e abre espaço para que novas funcionalidades sejam incorporadas no trabalho, dentre as quais, a função multiplayer.
Aguardem as cenas dos próximos capítulos.
Relatório 100Nome - 22/09
Hoje a equipe 100Nome trabalhou em três frentes distintas e elas serão detalhadas a seguir:
Engenharia Detalhada
A engenharia detalhada está 80% pronta. Foi definido o OSGi para implementar a estrutura de forma modularizada da maneira como havia sido definido previamente.
A comunicação entre os módulos será através de sockets de comunicação cliente-servidor utilizando protocolo TCP.
Foi também definido um protocolo de comunicação que proverá pela troca de informações entre os módulos.
Uma apresentação está sendo montada para organizar as informações. Abaixo uma figura para deixar um gostinho do que está por vir:
OpenCV
Já temos uma boa leitura da tela do celular que irá representar o movimento do jogador. Os ruídos foram removidos, uma cor de captura foi definida e o centro da tela já está mapeado. O próximo passo é detectar a porcentagem de movimento que o jogador fez em relação ao quadro que a câmera está visualizando. Abaixo uma figura com os resultados.
Estruturação dos módulos
Também já foi definida a estruturação dos módulos utilizando OSGi. O código do nosso projeto está disponível de forma pública no link: https://github.com/victorlima02/Super-Tetris
Próximos passos: Finalizar Engenharia Detalhada (faltando diagrama de classes) e finalizar comunicação OpenCV - Commander.
quinta-feira, 15 de setembro de 2016
"fatal error undefined reference"
Durante uma discussão entre o grupo surgiu a ideia de se utilizar um soquete como acoplamento entre principais blocos do projeto utilizando comunicação TCP
e foi tomada a decisão de que o movimento do bloco no jogo se dará através de uma proporção de tela.
Agora vamos falar de coisa boa:
"Aqui nós constrói Fibra!!"
BIRLLLL
Começamos a colocar a mão na massa e logo tivemos dificuldades com a nova biblioteca SDL, o que ja era esperado.
Mas com algumas pesquisas e seguindo tutoriais, conseguimos executar os primeiros códigos exemplos que serviram como base para darmos esse primeiro passo.
Como inspiração o primeiro código a ser executado será apresentado abaixo:
Após esse exemplo partimos para tutoriais mais elaborados, contudo encontramos dificuldades em relação às bibliotecas.
Para proxima aula definimos temas a serem estudados previamente por cada membro do grupo, de forma a obter maior fluidez e entendimento da ferramenta SDL no desenvlvimento do projeto. Ficou dividido em Video e IO, as duas grandes areas a serem estudadas para começar.
Não fiquem tristes, na verdade avançamos mais do que isso, mas estamos aguardando para apresentar o que fizemos de melhor nas próximas semanas.
e foi tomada a decisão de que o movimento do bloco no jogo se dará através de uma proporção de tela.
Agora vamos falar de coisa boa:
"Aqui nós constrói Fibra!!"
BIRLLLL
Começamos a colocar a mão na massa e logo tivemos dificuldades com a nova biblioteca SDL, o que ja era esperado.
Mas com algumas pesquisas e seguindo tutoriais, conseguimos executar os primeiros códigos exemplos que serviram como base para darmos esse primeiro passo.
Como inspiração o primeiro código a ser executado será apresentado abaixo:
Após esse exemplo partimos para tutoriais mais elaborados, contudo encontramos dificuldades em relação às bibliotecas.
Para proxima aula definimos temas a serem estudados previamente por cada membro do grupo, de forma a obter maior fluidez e entendimento da ferramenta SDL no desenvlvimento do projeto. Ficou dividido em Video e IO, as duas grandes areas a serem estudadas para começar.
Não fiquem tristes, na verdade avançamos mais do que isso, mas estamos aguardando para apresentar o que fizemos de melhor nas próximas semanas.
Sumario do dia 09/15/2016
Acabamos de finalizar a Engenhara detalhada, para o laboratório de projetos 3. Continuando o trabalho passado, definimos as interfaces com um grau mais elevado de granularidade, definindo o protocolo a ser seguido pelos componentes em comunicação.
quinta-feira, 8 de setembro de 2016
Aqui tem classe, chefe!!
Na aula de hoje, o grupo Minigame continuou seus trabalhos em Engenharia Detalhada, mas desta vez, focando no design dos diagramas UML que descrevem as classes, os usos e as sequências de interações do sistema.

No diagrama de classes é possível ver que quatro classes foram projetadas: Peça, Tabuleiro, IO e Jogo. Como se observa, a classe Jogo é composta por todas as outras, o que indica que ela será responsável por coordenar as sequências de ações durante o jogo. A classe Peça será responsável por guardar informações sobre o estado da peça como a posição inicial da peça. A classe Tabuleiro guarda informações sobre o estado do tabuleiro como quais pixels representam peças que estão estáticas, verifica a factibilidade de movimentos feito pelo o usuário, eliminar linhas e verificar se o jogo chegou no fim. A classe IO é responsável pela interface do jogo com a plataforma SDL, isto é, a parte gráfica do jogo; desta forma, esta classe possui funções para atualizar a tela, receber o comando dos usuários, limpar a tela, entre outros. A classe Jogo possui funções principais como inicializar o jogo, criar as variáveis que representam o tabuleiro, as peças e a interface com a plataforma SDL.
No diagrama de sequência foi detalhada a sequência de ações entre as classes no caso de uso de jogar o jogo. Basicamente, o fluxograma desenvolvido na última aula foi detalhado mais profundamente uma vez que as classes são os atores das ações do fluxograma. Observa-se que a classe Jogo depende do comando inicial do usuário e, a partir daí, ele começa a coordenar as ações do jogo através das interações com as outras classes.

Esse foi o progresso de hoje. Agradecemos a sua visita e que você tenha um feliz final de semana, porque a gente não vai ter, provavelmente. Ou não. Sei lá.
Nos vemos nesse mesmo dia, nesse mesmo horário e nesse mesmo canal.
Engenharia detalhada e filtro Opencv
Hoje foram elaborados quais os relacionamentos entre uma parte dos macro sistemas que ficaram por responsabilidade do grupo 100Nome. As responsabilidades do grupo são os inputs, outputs e comunicação enrtre os modulos com o Jogo em si. Dentre estes inputs, estãoos dados enviados do acelerometro do celular, os quais serão responsaveis pelos movimentos de rotação das peças no jogo. O outro input de dados será o Opencv, biblioteca de processamento de imagens a qual ficará responsavel pelo detecção de onde se encotra o smartphone e quais os movimentos realizados pelo mesmo, o que irá representar os movimentos esquerda, direita e para baixo, das peças.
Dentre os outputs do jogo teremos respostas para o jogador, tais como vibração do celular, notificações sonoras entre outras.
Acima consta um conceito bem macro de quais são e como todos os subsitemas se comunicam. Ainda não foram definidos os atributos de cada um do itens, pois é necessário a avaliação de quais são os parametros necessários para a comunicação.
Foram implementadas versões iniciais do filtro de cores com o Opencv, foi selecionado como teste, uma tonalidade de verde e feito um filtro inicial como abaixo:
Dentre os outputs do jogo teremos respostas para o jogador, tais como vibração do celular, notificações sonoras entre outras.
Acima consta um conceito bem macro de quais são e como todos os subsitemas se comunicam. Ainda não foram definidos os atributos de cada um do itens, pois é necessário a avaliação de quais são os parametros necessários para a comunicação.
Foram implementadas versões iniciais do filtro de cores com o Opencv, foi selecionado como teste, uma tonalidade de verde e feito um filtro inicial como abaixo:
A imagem acima contem muitos ruidos, foi feito um filtro para que fosse retirada a maioria destes ruidos.
quinta-feira, 1 de setembro de 2016
UMA IMAGEM VALE MAIS QUE MIL PALAVRAS!!!
Hoje foi dia de planejar os aspectos relacionados à Engenharia
Detalhada do "SUPER TETRIS".
Nosso objetivo nesta etapa é definir o escopo geral do projeto levando em conta os aspectos técnicos mais relavantes para o desenvolvimento da lógica do jogo, sua interface gráfica e comunicação com os demais módulos do projeto.
Assim, o fluxograma ao lado foi elaborado para apresentar a visão macro do sistema.
Uma vez esboçada a ideia geral do projeto, aplicamos a visão top-down para determinar como cada um dos módulos ao lado se desdobra internamente.
O principal fluxograma elaborado corresponde ao módulo "Jogo", que basicamente explicita toda a lógica comportamental do sistema. Assim, baseando-se nas boas lembranças da infância no conhecimento prévio do jogo, construímos o modelo abaixo.
Algumas sugestões para aumentar a complexidade e o nível de detalhamento do jogo foram levantadas durante a aula, mas como esse é o primeiro ciclo da espiral do nosso projeto (e ainda temos muito trabalho pela frente), as novidades sugeridas são cenas para os próximos capítulos.
Por fim, esboçamos o layout gráfico do jogo, que é apresentado na versão BETA.0.0.1 abaixo.
O esboço ao lado mostra a tela principal do jogo, que exibirá, além do cenário de jogo, a próxima peça da sequência, o recorde e a respectiva pontuação do jogador.
Abaixo, temos a tela incial do "SUPER TETRIS", exibindo as opções principais para o usuário.
Na próxima semana continuaremos com o processo de Engenharia Detalhada do projeto já nos preparando para a mão na massa que está por vir.
Até semana que vem.
That's all folks!
Distribuição das tarefas:
Coordenador: Gustavo - Relator: Roberto - Verificador: André Costa - Monitor: Lucas
Relatório de Atividades dia 01/09/16 - Grupo 100Nome
No dia de hoje foi desenvolvida a primeira versão para o fluxograma do módulo que será desenvolvido pela equipe 100Nome, que foi batizado de Tetris Interface. Juntamente com a equipe MiniGame foi definido quais os inputs e outputs desse módulo.
O fluxograma detalhado é exibido na imagem abaixo.
Engine Bridge - Recebe a notificação que deve ser passada para o celular, recebe do celular o comando de rotação e recebe do módulo OpenCV os comandos de direta, esquerda e abaixo. O sub-processo Commander prepara esses dados para ser considerado o output do módulo.
APP Bridge - Responsável por fazer a ponte entre a engenharia e o aplicativo do celular. Irá aplicar protocolos de comunicação para transmitir e receber os dados.
Na próxima semana iremos detalhar como cada processo irá funcionar, juntamente com as tecnologias que serão usadas.
As responsabilidades do grupo foram:
Coordenador - Victor
Relator - Camille
Verificador/Monitor - André Ferreira
O fluxograma detalhado é exibido na imagem abaixo.
Engine Bridge - Recebe a notificação que deve ser passada para o celular, recebe do celular o comando de rotação e recebe do módulo OpenCV os comandos de direta, esquerda e abaixo. O sub-processo Commander prepara esses dados para ser considerado o output do módulo.
APP Bridge - Responsável por fazer a ponte entre a engenharia e o aplicativo do celular. Irá aplicar protocolos de comunicação para transmitir e receber os dados.
Na próxima semana iremos detalhar como cada processo irá funcionar, juntamente com as tecnologias que serão usadas.
As responsabilidades do grupo foram:
Coordenador - Victor
Relator - Camille
Verificador/Monitor - André Ferreira
Assinar:
Comentários (Atom)












