A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estrutura de Dados André Augusto Nogueira Alves

Apresentações semelhantes


Apresentação em tema: "Estrutura de Dados André Augusto Nogueira Alves"— Transcrição da apresentação:

1

2 Estrutura de Dados André Augusto Nogueira Alves
Colaborador: Alexandre Tolstenko Nogueira

3 Papel e caneta na mão! Revisão

4 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.

5 Objetivos

6 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;

7 Orientação Objeto e EstRUTURA DE DADOS

8 Teoria Prática

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

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

11 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);

12 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;

13 Pong OO - Bola

14 Pong OO - Raquete

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

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

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

18 Vetor Prós e Contras;

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

20 Lista Exemplos de usos;

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

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

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

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

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

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

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

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

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

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

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

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

33 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;

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

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

36 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; ...}} }

37 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; ...}} }

38 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

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


Carregar ppt "Estrutura de Dados André Augusto Nogueira Alves"

Apresentações semelhantes


Anúncios Google