Ultraaaaaaaaa!!!
Deu certo pessoal.
O processo de integração foi um sucesso.
O jogo funcionaaaaa!!! Significa que tudo o que foi especificado no início do projeto está ok.
De repente um bando de alunos de graduação e até mesmo o professor pareciam crianças no
parque de diversão.
Ifelizmente não tenho fotos aqui, mas vamos publicar um video da aula de hoje com os melhores momentos e entrevista dos participantes no canal
da disciplina no youtube.
Vale muito a pena conferir.
Bom galera, chegou ao fim.
O semestre acabou e provavelmente as atualizações sobre o jogo também.
Mas existem rumores que
ainda iremos apresentar na mostra de profissões da UFMG, espero que sim.
Ja estou com saudade de todos...
É como se o mundo fosse um desenho animado e cada pessoa ali um personagem de desenho, com suas características, cada um
com seus traços que te torna único.
Todos indispensáveis. Marcou.
BrigadÚ!!!
Agradecimentos especiais:
- Professor Bruno que orientou o projeto.
- Diana sempre solícita e que esteve sempre ali garantindo que não iriamos fugir.
- Javier López, autor do código que utilizamos como referência pra criar o SuperTetris.
- Lazy Foo' Productions que disponibilizou tutoriais de SDL que salvaram muitas vezes.
- SoundJay de onde retiramos alguns audios
tec tec tec tec tec tec tec tec tec...
O som do ventilador continua
h h h
Vlw
quinta-feira, 1 de dezembro de 2016
quinta-feira, 24 de novembro de 2016
O android estava com problema para identificar a rotação do smartphone, devido a forma de leitura dos dados do giroscopio, foi utilizado um pacote de orienações do aparelho, presento no android, o qual mapeia as 4 posições de tela:
- Normal
- Tela de cabeça para baixo
- Landscape Normal
- Landscape invertido
As 4 configurações de posição são codificadas nos valores 0,1,2 e 3.
As posições 1 e 3, configuram posições de landscape, então foram definidos em:
- 1-0 sentido horário
- 1-2 sentido anti-horário
- 3-2 sentido horário
- 3-0 sentido anti-horário
Com base nesses movimentos, foi feita a conexão com o servidor TCP, e foi enviado para este os movimentos de acordo com o que foi pre definido no protocolo de envio de dados.
Foram feitos os testes no servidor, e este está recebendo perfeitamente os dados.
Não foram feitas alterações no OpenCV, pois este já está no seu funcionamento de acordo com os requisitos especificados, e enviando os dados nos padrõs pre definidos
No lado do servidor de rede, foi implementado o Socket de envio de dados para a máquina a qual irá conter o jogo rodando, este socket foi testado durante a aula e identificado alguns problemas quanto a recepção dos valores por parte da máquina hospedando o jogo.
Ultimo passo para finalizar o projeto será com relação a máquina do jogo, a qual deve ser modificada afim de receber as entradas, pois os movimentos para cada entrada como descritas no protocolo já está desenvolvido.
E o árbitro dá mais 3 minutos de acréscimo...
É com muita emoção entre os membros da equipe que esse post vem trazer as novidades da penúltima semana de trabalho.
O quê? Penúltima? Como assim? Já tá acabando?
É isso mesmo, galera! O semestre voou e a última semana do projeto se aproxima. Na próxima quinta-feira (01/12) faremos a última entrega, apresentaremos todos os resultados obtidos e nos despediremos do tão querido Super Tetris. Há rumores de que haverá uma competição onde o grande recordista da noite será agraciado com 10 pontos extras na disciplina. (necessita confirmar fonte)
Mas se o tempo é implacável, mais feroz ainda é o Super Tetris New Edition Completely Remastered Very Colorful with Special SoundTrack GREATEST HITS! Oh yeahhh!
É isso mesmo pessoal, nosso jogo está de cara nova e com sonorização profissional! Olha só que belezura!!!
Estamos muito satisfeitos com os avanços obtidos ao longo do semestre. O projeto evoluiu bastante, vários ciclos de desenvolvimento foram trabalhados e aceditamos ter cumprido com as principais metas que foram traçadas lá em Agosto.
Pra terminar de vez o projeto, só resta a conclusão da integração com a equipe 100Nome. Nossos colegas estão trabalhando a todo vapor para concluírem a comunicação dos dados e, assim que o último bit for transmitido com sucesso, nosso jogo estarádisponível na PlayStore muito muito próximo de ser concluído.
Para coroar o trabalho de toda a equipe, adicionamos no menu do jogo uma pequena homenagem aos alunos que estiveram envolvidos no desenvolvimento do SuperTetris.
Na próxima semana faremos os últimos reparos pertinentes e estaremos prontos para O GRANDE DIA!
Fiquem ligados porque ainda vamos vir aqui para contar os bastidores do que rolou na última semana do projeto.
Fiquem em paz e uma boa noite!
O quê? Penúltima? Como assim? Já tá acabando?
É isso mesmo, galera! O semestre voou e a última semana do projeto se aproxima. Na próxima quinta-feira (01/12) faremos a última entrega, apresentaremos todos os resultados obtidos e nos despediremos do tão querido Super Tetris. Há rumores de que haverá uma competição onde o grande recordista da noite será agraciado com 10 pontos extras na disciplina. (necessita confirmar fonte)
Mas se o tempo é implacável, mais feroz ainda é o Super Tetris New Edition Completely Remastered Very Colorful with Special SoundTrack GREATEST HITS! Oh yeahhh!
É isso mesmo pessoal, nosso jogo está de cara nova e com sonorização profissional! Olha só que belezura!!!
Estamos muito satisfeitos com os avanços obtidos ao longo do semestre. O projeto evoluiu bastante, vários ciclos de desenvolvimento foram trabalhados e aceditamos ter cumprido com as principais metas que foram traçadas lá em Agosto.
Pra terminar de vez o projeto, só resta a conclusão da integração com a equipe 100Nome. Nossos colegas estão trabalhando a todo vapor para concluírem a comunicação dos dados e, assim que o último bit for transmitido com sucesso, nosso jogo estará
Para coroar o trabalho de toda a equipe, adicionamos no menu do jogo uma pequena homenagem aos alunos que estiveram envolvidos no desenvolvimento do SuperTetris.
Na próxima semana faremos os últimos reparos pertinentes e estaremos prontos para O GRANDE DIA!
Fiquem ligados porque ainda vamos vir aqui para contar os bastidores do que rolou na última semana do projeto.
Fiquem em paz e uma boa noite!
quinta-feira, 17 de novembro de 2016
Novidade: Estamos também no LINUX
Boa noite galera!
Você que usa Linux com certeza vai se alegrar com a notícia de hoje. Como o título da postagem já diz, a nossa principal evolução do dia foi disponibilizar o tão sonhado Super Tetris para o Sistema Operacional Linux. É isso mesmo galera! Agora chegamos para todos os gostos ;)
Além dessa novidade, como está chegando o dia da inauguração do game mais esperado do ano, fizemos uma homologação pesada em todas as funcionalidades para garantir a completa felicidade dos nossos clientes. Encontramos alguns bugs no ranking de maior pontuação que, prontamente, foram corrigidos, além de termos aproximado as conversas com a nossa equipe parceira 100Nome, avançado no processo de integração entre o trabalho até então desenvolvido e inserir efeitos sonoros na nossa aplicação.
Então é isso pessoal, estamos chegando ao fim, mas ainda garantimos algumas surpresas antes da grande inauguração. Então fiquem ligados e nos acompanhem para não perderem nada.
Forte abraço e até semana que vem.
Você que usa Linux com certeza vai se alegrar com a notícia de hoje. Como o título da postagem já diz, a nossa principal evolução do dia foi disponibilizar o tão sonhado Super Tetris para o Sistema Operacional Linux. É isso mesmo galera! Agora chegamos para todos os gostos ;)
Além dessa novidade, como está chegando o dia da inauguração do game mais esperado do ano, fizemos uma homologação pesada em todas as funcionalidades para garantir a completa felicidade dos nossos clientes. Encontramos alguns bugs no ranking de maior pontuação que, prontamente, foram corrigidos, além de termos aproximado as conversas com a nossa equipe parceira 100Nome, avançado no processo de integração entre o trabalho até então desenvolvido e inserir efeitos sonoros na nossa aplicação.
Então é isso pessoal, estamos chegando ao fim, mas ainda garantimos algumas surpresas antes da grande inauguração. Então fiquem ligados e nos acompanhem para não perderem nada.
Forte abraço e até semana que vem.
Falta Pouco!
Hoje a equipe 100Nome chegou nos finalmentes do projeto.
Conexão OpenCV -> Servidor ###### DONE
Conexão App -> Servidor ###### DONE
Layout App ###### DONE
Codificação dos movimentos esquerda e direita em colunas do jogo ######## DONE
O que falta:
* Codificar a rotação que se apresentou diferente do esperado nos testes utilizando um celular
* Finalizar conexão Servidor -> Jogo
Abaixo, o layout da tela inicial do App:
Conexão OpenCV -> Servidor ###### DONE
Conexão App -> Servidor ###### DONE
Layout App ###### DONE
Codificação dos movimentos esquerda e direita em colunas do jogo ######## DONE
O que falta:
* Codificar a rotação que se apresentou diferente do esperado nos testes utilizando um celular
* Finalizar conexão Servidor -> Jogo
Abaixo, o layout da tela inicial do App:
quinta-feira, 10 de novembro de 2016
Show do futebol!
Bem amigos da Rede UFMG,
Falamos aqui ao vivo do estádio dos manipuladores, a temperatura é de 22 graus Celsius. Tivemos um bom jogo aqui hoje e agora vamos aos melhores momentos:
Primeiro tempo
10 minutos
A equipe entrou com um desfalque mas o time ainda está bem armado com Lucas jogando de Verificador e caindo pra Monitor, André jogando de Relator e Gustavo na frente jogando de Coordenador.
15 minutos
Gustavo e Lucas trabalham na implementação de efeitos sonoros no jogo. Achou-se uma plataforma na website com efeitos sonoros de graça: www.soundjay.com
Enquanto isso André trabalha a bola estudando a implementação de sockets para a comunicação com o controlador do jogo e tabelando com o Vitor tirando dúvidas sobre a função de cliente do socket.
30 minutos
GOOOLL!! Lucas cruza a SDL_mixer pra área e Gustavo bota a cabeça na biblioteca e joga ela pro fundo do código. Agora a biblioteca já está linkada ao projeto.
Intervalo
"A gente trabalhou muito durante o primeiro tempo. Durante o intervalo agora é combinar com a equipe o protocolo de comunicação entre o jogo o e servidor e partir pra implementação de um código base para testar a comunicação com o servidor." Disse André na saída do campo indo pro vestiário.
Segundo tempo
2 minutos
Gustavo e Lucas trabalham a bola lá atrás tentando implementar o código no Linux. Enquanto isso, André já sabe que serão 3 bytes de comunicação: um para identificar qual dos dois jogadores, um para identificar qual movimento e outro para identificar a distância do movimento.

15 minutos
GOOOOOOLL!!! André em jogada individual faz a comunicação com o servidor recebendo e enviando dados e bota a bola para o fundo do gol. Confira comigo no replay ao lado!
40 minutos
Gol da Alemanha! Lucas e Gustavo até tentaram compilar o código mas o Linux pegou a linkagem das bibliotecas desprevinidas e botou a bola pra rede levando Gustavo e Lucas ao desespero por não terem conseguido resolver o problema.
Confira agora a coletiva após jogo:
"O mais importante foi que a gente conseguiu o resultado positivo. Embora a gente foi infeliz no fim do jogo mas a gente conseguiu produzir bons resultados aqui hoje. Agora é trabalhar durante a semana pra no próximo jogo a gente conseguir implementar o código no Linux resolvendo o problema de linkagem, fechar os efeitos sonoros no jogo, terminar a classe para modular o uso do socket e adicioná-los no código do jogo". Falou Gustavo, coordenador da equipe.
Então é isso amigos, boa noite e vocês ficam agora com o jornal da Globo com as últimas notícias da noite. UFMG, a gente se vê por aqui!
Falamos aqui ao vivo do estádio dos manipuladores, a temperatura é de 22 graus Celsius. Tivemos um bom jogo aqui hoje e agora vamos aos melhores momentos:
Primeiro tempo
10 minutos
A equipe entrou com um desfalque mas o time ainda está bem armado com Lucas jogando de Verificador e caindo pra Monitor, André jogando de Relator e Gustavo na frente jogando de Coordenador.
15 minutos
Gustavo e Lucas trabalham na implementação de efeitos sonoros no jogo. Achou-se uma plataforma na website com efeitos sonoros de graça: www.soundjay.com
Enquanto isso André trabalha a bola estudando a implementação de sockets para a comunicação com o controlador do jogo e tabelando com o Vitor tirando dúvidas sobre a função de cliente do socket.
30 minutos
GOOOLL!! Lucas cruza a SDL_mixer pra área e Gustavo bota a cabeça na biblioteca e joga ela pro fundo do código. Agora a biblioteca já está linkada ao projeto.
Intervalo
"A gente trabalhou muito durante o primeiro tempo. Durante o intervalo agora é combinar com a equipe o protocolo de comunicação entre o jogo o e servidor e partir pra implementação de um código base para testar a comunicação com o servidor." Disse André na saída do campo indo pro vestiário.
Segundo tempo
2 minutos
Gustavo e Lucas trabalham a bola lá atrás tentando implementar o código no Linux. Enquanto isso, André já sabe que serão 3 bytes de comunicação: um para identificar qual dos dois jogadores, um para identificar qual movimento e outro para identificar a distância do movimento.

15 minutos
GOOOOOOLL!!! André em jogada individual faz a comunicação com o servidor recebendo e enviando dados e bota a bola para o fundo do gol. Confira comigo no replay ao lado!
40 minutos
Gol da Alemanha! Lucas e Gustavo até tentaram compilar o código mas o Linux pegou a linkagem das bibliotecas desprevinidas e botou a bola pra rede levando Gustavo e Lucas ao desespero por não terem conseguido resolver o problema.
Confira agora a coletiva após jogo:
"O mais importante foi que a gente conseguiu o resultado positivo. Embora a gente foi infeliz no fim do jogo mas a gente conseguiu produzir bons resultados aqui hoje. Agora é trabalhar durante a semana pra no próximo jogo a gente conseguir implementar o código no Linux resolvendo o problema de linkagem, fechar os efeitos sonoros no jogo, terminar a classe para modular o uso do socket e adicioná-los no código do jogo". Falou Gustavo, coordenador da equipe.
Então é isso amigos, boa noite e vocês ficam agora com o jornal da Globo com as últimas notícias da noite. UFMG, a gente se vê por aqui!
Nova fase no desenvolvimento do tradutor de mensagens para controlar o
jogo. Testamos a comunicação entre o OpenCV e o roteador de comandos,
enquanto desenhando o protocolo de comunicação com o jogo em si, que agora é
capaz de se comunicar com o servidor central. O único imprevisto foi a cor
utilizada pelo OpenCV para reconhecimento dos movimentos, que era a mesma da
camisa do tester =/
Na próxima fase será confeccionado o commander, que executará as instruções
recebidas no jogo, fechando o circuito entre o OpenCV e o game em si.
quinta-feira, 3 de novembro de 2016
Super Tetris versão COMBOOO!
Fala galera bonita, estamos aqui com novidades mais uma vez.
Hoje a coisa rendeu por aqui. Como já estamos na reta final (faltam só três semanas galera) fomos além dos limites.
Hoje a coisa rendeu por aqui. Como já estamos na reta final (faltam só três semanas galera) fomos além dos limites.
Eis então que surge a versão COMBO do SuperTetris. Durante a execução de cada espiral do projeto foram criados modos de jogo distintos. Decidimos inclui-los na versão final e portanto agora teremos os modos SINGLE PLAYER, MULTIPLAYER e EVIL PIECE em um único jogo.
Além do processo de integração dos modos de jogo, concluímos hoje a função de leitura e armazenamento do RECORD emum arquivo txt nosso banco dados e a exibição do mesmo em tela por meio da renderização de texto.
Além do processo de integração dos modos de jogo, concluímos hoje a função de leitura e armazenamento do RECORD em
Aguardem pois o próximo encontro será do barulho.
;)
;)
Conexão com servidor e primeira release de telas
Foi solucionado o ploblema de algumas aulas atras com a implementação do envio de movimento do OpenCV, via socket para um sevidor socket qualquer, apenas como teste.
Os dados enviados via socket, seguem a modularização pré definida, contendo 4 bytes, sendo o primeiro qual aplicação está enviando tal dado (OpenCV/Servidor), o segundo qual player está jogando, o terceiro qual o código do movimento e por último qual o valor do movimento.
Com base nos movimentos acima, o servidor irá decidir o que deve ser feito com cada dado e enviar para seu referido destinarátio.
Evoluimos no design das telas do aplicativo, adicionando a possibilidade de escolha, de qual jogador cada um será, como abaixo:
Como pode ser visto acima, apos o usuário escolher qual jogador será, a tela irá adquirir a cor daquele jogador especifico.
Houve um problema quanto a continuidade da elaboração das telas devido a uma atualização do MAC OS, o qual prejudicou o funcionamento de uma das máquinas, tal erro só foi constatado ao final da aula.
quinta-feira, 27 de outubro de 2016
Avante!!!
Boa noite, companheiras e companheiros!
Nunca antes na história desse projeto estivemos tão perto de consolidar a implementação do nosso aguardado SuperTetris.
A grande novidade da semana fica por conta do Menu do jogo, que já foi implementado e funciona atrelado a janela principal onde ocampo de batalha cenário é apresentado. Todas as modificações pertinentes na estrutura do jogo estão sendo realizadas para incorporar essa nova tela.
Optamos por um layout simples e funcional, fiel ao projeto que foi apresentado algumas semanas atrás. Queremos, em iterações posteriores do projeto, incrementar o nível de detalhe da interface. Por ora, estamos satisfeitos com o resultado até então obtido.
Trabalhamos também na implementação das funcionalidades necessárias para o armazenamento e exibição da pontuação obtida pelomelhor dos melhores, digno de ir parar no Guinness Book detentor da melhor pontuação de todos os tempos.
Outra novidade é que decidimos migrar da biblioteca SDL1.2 para a SDL2.0, visando obter maior flexibilidade e simplicidade na implementação de determinadas funcionalidades do projeto.
Com esse embalo todo, ninguém segura esse time...
Agradecemos a visita e esperamos vocês de volta na próxima semana, onde traremos mais novidades acerca do desenvolvimento do projeto.
Um grande abraço,
Hasta la vista, baby!
Nunca antes na história desse projeto estivemos tão perto de consolidar a implementação do nosso aguardado SuperTetris.
A grande novidade da semana fica por conta do Menu do jogo, que já foi implementado e funciona atrelado a janela principal onde o
Optamos por um layout simples e funcional, fiel ao projeto que foi apresentado algumas semanas atrás. Queremos, em iterações posteriores do projeto, incrementar o nível de detalhe da interface. Por ora, estamos satisfeitos com o resultado até então obtido.
Trabalhamos também na implementação das funcionalidades necessárias para o armazenamento e exibição da pontuação obtida pelo
Outra novidade é que decidimos migrar da biblioteca SDL1.2 para a SDL2.0, visando obter maior flexibilidade e simplicidade na implementação de determinadas funcionalidades do projeto.
Com esse embalo todo, ninguém segura esse time...
Agradecemos a visita e esperamos vocês de volta na próxima semana, onde traremos mais novidades acerca do desenvolvimento do projeto.
Um grande abraço,
Hasta la vista, baby!
Equipe 100Nome - 27/10
Hoje o dia foi dedicado a melhorias e correções de erro.
O roteador de comandos foi refatorado. Além disso foi corrigido um erro em relação ao versionamento dos módulos.
O App Mobile apresentava problemas ao girar o celular dentro da interface do jogador. O que acontecia é que o jogo retornava para a tela inicial. Esse problema foi corrigido e o código também foi refatorado para melhorar o entendimento.
O módulo do OpenCV ainda está pendente. O objetivo da próxima aula é validar a conexão desse módulo com o roteador e acrescentar uma interface no App compatível com a do core jogo que a outra equipe está desenvolvendo.
O roteador de comandos foi refatorado. Além disso foi corrigido um erro em relação ao versionamento dos módulos.
O App Mobile apresentava problemas ao girar o celular dentro da interface do jogador. O que acontecia é que o jogo retornava para a tela inicial. Esse problema foi corrigido e o código também foi refatorado para melhorar o entendimento.
O módulo do OpenCV ainda está pendente. O objetivo da próxima aula é validar a conexão desse módulo com o roteador e acrescentar uma interface no App compatível com a do core jogo que a outra equipe está desenvolvendo.
quinta-feira, 13 de outubro de 2016
Que tal um menu?
Boa noite galera.
O dia de hoje foi muito light, afinal ainda estamos aproveitando a semana das crianças =P
mas temos algumas novidades interessantes para vocês. Começamos a criar o menu do nosso tetris. Isso mesmo pessoal! O monstrão está ficando encorpado!
Assim será a tela de apresentação do jogo.
Com um click do mouse será possível selecionar as opções de jogar (PLAY), verificar maior pontuação (RECORD) e sair (EXIT).
Aí vocês nos perguntam: "Mas equipe Mini-Game, esperamos ansiosamente a semana toda e vocês fizeram só isso?" e a gente responde: "Claro que não!!!", também randomizamos a posição X onde a famosa peça do mal cai e definimos que a mesma cairá no tabuleiro do adversário. Além disso, fizemos muitos reparos gráficos pra deixar o nosso game cada vez mais supimpa!
Esses foram os resultados de hoje pessoal. Mas semana que vem teremos muito mais!
Esperamos finalizar o desenvolvimento desse menu e já inserir essa parte fundamental do jogo. Esperamos que dê tudo certo e contamos com a sua torcida.
Forte abraço e até semana que vem!
O dia de hoje foi muito light, afinal ainda estamos aproveitando a semana das crianças =P
mas temos algumas novidades interessantes para vocês. Começamos a criar o menu do nosso tetris. Isso mesmo pessoal! O monstrão está ficando encorpado!
Assim será a tela de apresentação do jogo.
Com um click do mouse será possível selecionar as opções de jogar (PLAY), verificar maior pontuação (RECORD) e sair (EXIT).
Aí vocês nos perguntam: "Mas equipe Mini-Game, esperamos ansiosamente a semana toda e vocês fizeram só isso?" e a gente responde: "Claro que não!!!", também randomizamos a posição X onde a famosa peça do mal cai e definimos que a mesma cairá no tabuleiro do adversário. Além disso, fizemos muitos reparos gráficos pra deixar o nosso game cada vez mais supimpa!
Esses foram os resultados de hoje pessoal. Mas semana que vem teremos muito mais!
Esperamos finalizar o desenvolvimento desse menu e já inserir essa parte fundamental do jogo. Esperamos que dê tudo certo e contamos com a sua torcida.
Forte abraço e até semana que vem!
Finalizamos a construção do roteador de comandos, responsável pela
abertura do sistema que coleta mensagens na rede para serem interpretados e
transmitidos ao motor do jogo. Também realizamos testes de conectividade entre o
app e o roteador, tendo uma interface simples e comunicante. Contudo enfrentamos
problemas com o sistema de segurança do Android a ser trabalhado na próxima aula,
juntamente com os testes de conectividade do OpenCV.
quinta-feira, 6 de outubro de 2016
Chegou a hora da sacanagem
Bem amigos da Rede Globo,
Os nossos trabalhos neste dia foram dois: o primeiro foi criar uma tela de menu inicial para o jogo, conforme projetado e criar a peça do mal que vai ficar entre os dois tabuleiros e cairá em um dos tabuleiros sem que o jogador daquele tabuleiro possa controlar a peça.
Em relação ao primeiro objetivo, não obtivemos resultado. A nossa intenção era colocar uma imagem no background do menu do jogo. Para isso, seria necessário usar a biblioteca SDL_Image.h e a função IMG_load. Contudo, houveram problemas na compilação que não permitiram a realização dessa tarefa. Na próxima, vamos criar um menu sem background até conseguirmos colocar essa imagem.
Em relação ao segundo objetivo, a ordem de atividades foi:
a) Criar uma nova peça e posiciona-la no meio, entre os dois tabuleiros.
b) Identificar o evento onde o jogador 1 toca o limite direito de seu tabuleiro na altura na peça do mal.
c) Mover a peça do mal para o topo do tabuleiro 1 ao ser identificado o evento do toque do jogador 1.
d) Fazer a peça mal cair e juntar-se às peças já estáticas.
e) Repor a peça do mal no meio dos dois tabuleiros.
Essas atividades foram completadas. Na figura acima, é mostrado a peça do mal no meio dos dois tabuleiros, e na figura à direita, existem duas peças caindo ao mesmo tempo no tabuleiro 1, onde a de baixo é aquela que o jogador tem controle e a de cima é a peça do mal.
Na próxima aula, será preciso randomizar a posição X onde a peça do mal cai e também randomizar qual tabuleiro que receberá essa peça inconveniente, além de uns pequenos reparos na parte gráfica.
No mais, foi um prazer tê-los aqui conosco. Fique ligado porque na sequência temos o Jornal da Globo com as notícias do Brasil e do mundo.
Boa noite!
Os nossos trabalhos neste dia foram dois: o primeiro foi criar uma tela de menu inicial para o jogo, conforme projetado e criar a peça do mal que vai ficar entre os dois tabuleiros e cairá em um dos tabuleiros sem que o jogador daquele tabuleiro possa controlar a peça.
Em relação ao primeiro objetivo, não obtivemos resultado. A nossa intenção era colocar uma imagem no background do menu do jogo. Para isso, seria necessário usar a biblioteca SDL_Image.h e a função IMG_load. Contudo, houveram problemas na compilação que não permitiram a realização dessa tarefa. Na próxima, vamos criar um menu sem background até conseguirmos colocar essa imagem.
Em relação ao segundo objetivo, a ordem de atividades foi:a) Criar uma nova peça e posiciona-la no meio, entre os dois tabuleiros.
b) Identificar o evento onde o jogador 1 toca o limite direito de seu tabuleiro na altura na peça do mal.
c) Mover a peça do mal para o topo do tabuleiro 1 ao ser identificado o evento do toque do jogador 1.
d) Fazer a peça mal cair e juntar-se às peças já estáticas.
e) Repor a peça do mal no meio dos dois tabuleiros.
Essas atividades foram completadas. Na figura acima, é mostrado a peça do mal no meio dos dois tabuleiros, e na figura à direita, existem duas peças caindo ao mesmo tempo no tabuleiro 1, onde a de baixo é aquela que o jogador tem controle e a de cima é a peça do mal.Na próxima aula, será preciso randomizar a posição X onde a peça do mal cai e também randomizar qual tabuleiro que receberá essa peça inconveniente, além de uns pequenos reparos na parte gráfica.
No mais, foi um prazer tê-los aqui conosco. Fique ligado porque na sequência temos o Jornal da Globo com as notícias do Brasil e do mundo.
Boa noite!
Equipe 100Nome 06/10
O objetivo do trabalho de hoje foi criar a conexão entre o módulo do OpenCV e o módulo principal do jogo e iniciar o desenvolvimento do App para Android.
Estamos encontrando dificuldade ao criar o socket cliente no ambiente do Windows. O problema encontrado é que a biblioteca windows.h chama a biblioteca winsock.h. Só que precisamos da biblioteca winsock2.h, e isso gera conflitos pois a winsock2.h tem funções que já existem na winsock.h.
No mais, preparamos o ambiente de desenvolvimento para o App do Android. Uma primeira versão da tela pode ser visualizada abaixo.
Estamos encontrando dificuldade ao criar o socket cliente no ambiente do Windows. O problema encontrado é que a biblioteca windows.h chama a biblioteca winsock.h. Só que precisamos da biblioteca winsock2.h, e isso gera conflitos pois a winsock2.h tem funções que já existem na winsock.h.
No mais, preparamos o ambiente de desenvolvimento para o App do Android. Uma primeira versão da tela pode ser visualizada abaixo.
quinta-feira, 29 de setembro de 2016
Agora a coisa ficou séria!
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
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
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
quinta-feira, 25 de agosto de 2016
PLANEJAMENTO
Análise de Requisitos, Projeto Conceitual e Engenharia Básica
OUÇA SEU CLIENTE!!! A aula de hoje teve início com uma
entrevista fictícia (figurando: Lucas
(Pajé), o cliente e Camille Carvalho, Engenheira Senior) com o objetivo de
realizar a definição de requisitos do projeto em alto nível.
Com base no feedback do cliente, elaboramos o projeto
conceitual e, com a proposta definida, determinamos em nível macro a
arquitetura e o comportamento do jogo.
Na etapa de engenharia básica definimos os requisitos de
forma mais detalhada de acordo com os módulos previamente estabelecidos,
levando em conta os requisitos do cliente e possíveis expansões do jogo
proposto.
Durante a aula foram definidos também alguns meios de
comunicação entre o grupo de trabalho. Uma conta na ferramenta Trello foi
configurada para o gerenciamento de projeto, incluindo todos os membros das
duas equipes. Uma pasta compartilhada no
Google Drive também foi criada para facilitar o compartilhamento de materiais
relevantes para o projeto.
Maiores informações sobre os requisitos levantados durante a aula podem ser encontradas aqui.
Assinar:
Comentários (Atom)
























