Estrutura de Dados André Augusto Nogueira Alves

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Programa das Aulas 20/09/05 - Apresentação da disciplina
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
Palestras, oficinas e outras atividades
O Modelo de Jesus para Crescimento e Serviço
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Interação entre objetos
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Árvores.
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
Estruturas de Dados e Algoritmos
Estudo de Caso 1: UNIX e LINUX
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Controle
Auditoria de Segurança da Informação
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Questionário de Avaliação Institucional
Fases do desenvolvimento de software UML
Listas Encadeadas.
Revisão da Linguagem C.
Classes e objetos P. O. O. Prof. Grace.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Provas de Concursos Anteriores
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
MATEMÁTICA PARA NEGÓCIOS
Curso do GEM Preparação do expositor
Módulo Financeiro Centro de Custo.
Como aplicar leis da lógica
INPUT Alexandre Tolstenko Nogueira
Alexandre Tolstenko Nogueira
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap. 12.
Cinemática de uma Partícula Cap. 12
Resultantes de Sistemas de Forças Cap. 4
Cinemática Plana de um Corpo Rígido Cap. 16
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap Exercícios.
Cinética Plana de uma Partícula: Força e Aceleração Cap. 13
Object Oriented Software Construction (MEYER, Bertrand)
Árvores binárias de pesquisa com balanceamento
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Taxonomia Profa. Lillian Alvares,
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2011 Ministro Paulo Bernardo Silva Brasília, novembro de 2010.
Coordenação Geral de Ensino da Faculdade
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
É u m e l e m e n t o f u n d a m e n t a l
EXERCÍCIOS PARA GUARDA-REDES
EMPREENDEDORES EM AÇÃO PROF. NILSON R. FARIA Colégio Wilson Joffre.
Técnicas de Modelagem para Aplicações em Computação Gráfica
Projeto de Banco de Dados
Erick Luis Moraes de Sousa
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Conceitos básicos em grafos
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Curso: Cerimonial, Protocolo e Eventos
Rio Verde - Goiás - Brasil
Alexandre Tolstenko Nogueira
FORMATANDO O TRABALHO NO WORD 2007
Cinemática Plana de um Corpo Rígido Cap. 16
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Redes para Jogos Felipe Guaycuru de C. B. Franco
GINÁSTICA LABORAL UM NOVO CAMINHO.
Orientação a Objetos Erick Luis Moraes de Sousa
Curso Básico de Programação de Jogos com XNA Alexandre Tolstenko Nogueira
Transcrição da apresentação:

Estrutura de Dados André Augusto Nogueira Alves alves.andreaugusto@gmail.com Colaborador: Alexandre Tolstenko Nogueira

Papel e caneta na mão! Revisão

Revisão Diferença entre IDE, Framework, Engine e SDK; Estrutura básica de um game em XNA; Rectangle vs Vector2; Desenhar uma imagem na tela; Desenhar um texto na tela; Colisão com com instersect.

Objetivos

Objetivos Entender um pouco de OO (Orientação Objeto); Apresentação de algumas das estruturas de dados mais simples; Um novo jogo ao fim da aula, mas dessa usando os tópicos citados acima;

Orientação Objeto e EstRUTURA DE DADOS

Teoria Prática

Teoria POO História Conceitos Objetos PongOO Interação Listas Árvores Snake Apêndice Campeonatos

História Final da década de 60; Possibilitar compartilhamento de códigos e desenvolvimento mais rápido;

Conceitos Desvendando os mistérios da Classe; Abstração: Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno observável; Classe x Objeto; Alocar memória (construtores); DNA(assinatura da classe) x Humano(objeto);

Objetos Alta coesão, baixo acoplamento; Tentativa de representar o mundo do ponto de vista humano de forma computacional; Semelhanças com Structs; Visibilidade; Criando um objeto;

Pong OO - Bola

Pong OO - Raquete

Interação – Acoplamento(?) Juntando os objetos; Montando uma colisão;

Teoria POO Estruturas Enum Vetor Listas Árvores Snake Apêndice Campeonatos

Enum Diferenças entre C e C#; Usos do Enum;

Vetor Prós e Contras;

Teoria POO Estruturas Enum Vetor Listas List LinkedList Pilha Fila Árvores Snake Apêndice Campeonatos

Lista Exemplos de usos;

List List<Tipo> myList; Utilidade: agregar coisas sem garantir sequência

Lista Ligada LinkedList<Tipo> listTipo; LinkedListNode<Tipo> llnTipo; Uso: llnTipo.Next, llnTipo.Previous Utilidade: agregar coisas com com sequência.

Pilha Stack<tipo> stkTipo; Uso: stkTipo.Pop, stkTipo.Push Utilidade: Armazenar coisas temporariamente (ex. Gerência de tela, recursão)

Fila Queue<tipo> qTipo; Uso: qTipo.Pop, qTipo.Push Utilidade: guardar coisas enquanto elas esperam para serem executadas. Ex:

Teoria POO Estruturas Enum Vetor Listas Árvores Binárias Quadtree Octree BSP Snake Apêndice Campeonatos

Árvores Definição Árvore Binária; Quadtree (Octree); BSP;

... Lista de outras estruturas Splaytree Btree Red-black tree Hash table Grafos Dicionários

Estrutura de dados e classes Classes que incluem vários objetos;

Modelagem Computacional Teoria Classe vs Struct Listas Árvores Snake História Mecânica de jogo Modelagem Computacional Códigos Apêndice Campeonatos

Prática Prática: Desafio: Programar um SNAKE; Opcional: transformar o Pong em um Breakout; Desafio: Mapear uma imagem usando uma quadtree; Defender;

Snake Time Jogo do dia: Snake; Programado usando OO não estruturada;

Análise de Jogo Elementos? Como anda? Como interage?

Mecânica de jogo A cobra tem que “comer” os pontos que aparecem na tela; A cada item comido, a cobra cresce de tamanho; A cobra anda somente para as direções Up, Left, Right e Down;

Modelagem Computacional Classes a serem criadas; Métodos de cada uma dessas classes; Interação entre elas;

Teoria Classe vs Struct Listas Árvores Snake Apêndice Campeonatos XNA Challenge SBgames Arena Info Dreambuild Imagine Cup

Struct public struct RectangleFloatS { } public float X, Y; public RectangleFloatS(float X, float Y) { this.X = X; this.Y = Y;} public Anda(Direcao dir) {switch(dir){ case Direcao.Up: //anda pra cima break; ...}} }

Class public class RectangleFloatC { } public float X, Y; public RectangleFloatC(float X, float Y) { this.X = X; this.Y = Y;} public Anda(Direcao dir) {switch(dir){ case Direcao.Up: //anda pra cima break; ...}} }

Diferenças List<RectangleFloatS> rectStructList; List<RectangleFloatC> rectObjList; ... foreach(RectangleFloatS rect in rectStructList) rect.X += valor; // nao altera X do rectStructList foreach(RectangleFloatR rect in rectObjList) Rect.X += valor; // altera X do recObjList

Agradecimento spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!", positionVect, Color.Black);