Estruturas de Dados com Jogos

Slides:



Advertisements
Apresentações semelhantes
Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
Advertisements

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Aula T-09 – BCC202 Listas (Parte 1) Túlio Toffolo www. decom. ufop
Programação em Java Prof. Maurício Braga
Índice Estrutura de Dados Pilhas 2010 Renan Robson Lima Carneiro
Estruturas de Repetição
Marco Antonio Montebello Júnior
Listas Encadeadas CONTEÚDO (1) Motivação (2) Definição (3) Operações
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Programação Avançada I
Algoritmos de manipulação de estruturas elementares de dados
Programação II Estruturas de Dados
Interação entre objetos
Arquitetura de Sistemas Operacionais Francis Berenger Machado
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Listas lineares Listas Lineares Fila Dupla Pilha Fila Saída restrita
AED – Algoritmos e Estruturas de Dados
FILAS (Queues) Estrutura linear de acesso seqüencial que ordena seus elementos pela seqüência cronológica de sua entrada; Estrutura FIFO (First In First.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estrutura de dados Busca
Listas Encadeadas.
Revisão da Linguagem C.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Listas Lineares Estrutura de Dados.
Denise Guliato Faculdade de Computação – UFU
Listas lineares Denise Guliato Faculdade de Computação – UFU
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
INTELIGÊNCIA ARTIFICIAL
Estrutura de dados, pseudocódigo
Tipos Abstratos de Dados
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de Dados Unidade 6 Simulação do exercício 6.2 Elaborada por Mauricio Falvo.
Estruturas de Dados com Jogos
Entendendo as definições de classe
Denise Guliato Faculdade de Computação – UFU
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Prof. Daniel Aula 03.  Criar Projeto  Criar Pacote  Criando classes  Meu primeiro programa  Compilar  Comentários  Variáveis.
Tipos Abstratos de Dados
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Estruturas de Dados Aula 9: Listas (parte 1)
Linguagem e Ambiente Scratch
Pilhas Profa. Nádia Félix.
Estruturas de Dados PROFESSOR DIÓGENES FURLAN. Estruturas de Dados (ED) Programas operam sobre dados Dados são relacionados e possuem estrutura Como representar.
Estruturas de Dados Aula 11: TAD Pilha
CH: 60h Créditos: 3 Prof Me. Tiago Araujo
Capítulo VIII Ambientes de Execução
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Pilhas e Filas usando Alocação Estática e Dinâmica de Memória
Lista Linear Base para outras estruturas
INE5408 Estruturas de Dados
Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como.
Estruturas de Dados Murilo Salgado Razoli.
INE5408 Estruturas de Dados Listas Encadeadas Simples.
Pilha dinâmica Prof.° Jean Daniel Henri Merlin Andreazza
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
Estrutura de Dados Prof. André Cypriano M. Costa
Estrutura de Dados Prof. André Cypriano M. Costa
INE5408 Estruturas de Dados Estruturas de Dados básicas utilizando Vetores - Introdução - Pilhas usando Vetores - Filas usando Vetores.
Transcrição da apresentação:

Estruturas de Dados com Jogos Capítulo 2 Pilhas - Alocação Sequencial e Estática

Seus Objetivos neste Capítulo Entender o que é e para que serve uma estrutura do tipo Pilha; Entender o significado de Alocação Sequencial e Alocação Estática de Memória, no contexto do armazenamento temporário de conjuntos de elementos; Desenvolver habilidade para implementar uma estrutura do tipo Pilha, como um Tipo Abstrato de Dados - TAD, com Alocação Sequencial e Estática de Memória; Desenvolver habilidade para manipular Pilhas através dos Operadores definidos para o TAD Pilha; Iniciar o desenvolvimento do seu primeiro jogo.

O Que É uma Pilha? Pilha de Pratos Pilha de Cartas iStochPhoto

Definição de Pilha Definição: Pilha Pilha é uma estrutura para armazenar um conjunto de elementos, que funciona da seguinte forma: Novos elementos entram no conjunto sempre no topo da Pilha; O único elemento que pode ser retirado da Pilha em um dado momento, é o elemento do topo.   Do Inglês: Stack, L.I.F.O. Uma Pilha (em Inglês: Stack) é uma estrutura que obedece o critério Last In, First Out - L.I.F.O.  o último elemento que entrou no conjunto será o primeiro elemento a sair do conjunto. iStochPhoto

Retirando e Inserindo Elementos em uma Pilha

Inserindo e Retirando Cartas em uma Pilha → Insere Q ♥ → Retira Carta

Operações de uma Pilha Empilha (P, X, DeuCerto) Desempilha (P, X, DeuCerto) Vazia (P) Cheia(P) Cria (P)

Exercício 2.1 Transfere Elementos de uma Pilha para Outra TransfereElementos (parâmetros por referência P1, P2 do tipo Pilha) /* trasfere todos os elementos de P1 para P2 */  

Exercício 2.1 Transfere Elementos de uma Pilha para Outra TransfereElementos (parâmetros por referência P1, P2 do tipo Pilha) { /* trasfere todos os elementos de P1 para P2 */   Variável ElementoDaPilha do tipo Inteiro; Variável DeuCerto do tipo Boolean; Enquanto (Vazia(P1) == Falso) Faça { // enquanto P1 não for vazia Desempilha(P1, ElementoDaPilha, DeuCerto); // desempilha de P1 Empilha(P2, ElementoDaPilha, DeuCerto); } // empilha em P2 }

Exercícios Exercício 2.2 Mais Elementos? Boolean MaisElementos (parâmetros por referência P1, P2 do tipo Pilha); Exercício 2.3 Algum Elemento Igual a X? Boolean AlgumElementoIgualaX (parâmetro por referência P do tipo Pilha, parâmetro X do tipo inteiro); Exercício 2.4 As Pilhas São Iguais? Boolean Iguais (parâmetros por referência P1, P2 do tipo Pilha);

Alocação Sequencial Definição: Alocação Sequencial de Memória para um Conjunto de Elementos Os elementos ficam, necessariamente, em posições de memória adjacentes, ou ainda, "em sequência".

Definição: Alocação Estática de Memória para um Conjunto de Elementos O espaço de memória para todos os elementos que poderão fazer parte do conjunto é dimensionado previamente; Esse espaço de memória permanecerá reservado durante toda a execução do programa, mesmo que não estiver sendo efetivamente utilizado.

Pilha com Alocação Sequencial e Estática de Memória

Exercício 2.5 Operação Empilha →

Exercício 2.5 Operação Empilha Empilha (parâmetro por referência P do tipo Pilha, parâmetro X do tipo Char, parâmetro por referência DeuCerto do tipo Boolean) {   /* Empilha o elemento X, passado como parâmetro, na Pilha P também passada como parâmetro. O parâmetro DeuCerto deve indicar se a operação foi bem sucedida ou não.*/ Se (Cheia(P) == Verdadeiro) // se a Pilha P estiver cheia... Então DeuCerto = Falso // ... não podemos empilhar Senão { P.Topo = P.Topo + 1; // incrementa o Topo da Pilha P P.Elementos[ P.Topo ] = X; // armazena o valor de X no Topo da Pilha DeuCerto = Verdadeiro; } // a operação deu certo }

Exercícios Exercício 2.6 Operação Desempilha Desempilha(parâmetro por referência P do tipo Pilha, parâmetro por referência X do tipo Char, parâmetro por referência DeuCerto do tipo Boolean); Exercício 2.7 Operação Cria Cria (parâmetro por referência P do tipo Pilha); Exercício 2.8 Operação Vazia Boolean Vazia (parâmetro por referência P do tipo Pilha); Exercício 2.9 Operação Cheia Boolean Cheia (parâmetro por referência P do tipo Pilha);

Abrir a TV ou Não Abrir a TV? Exercício 2.10 Duas Estratégias para Elemento do Topo Char ElementoDoTopo (parâmetro por referência P do tipo Pilha, parâmetro por referência DeuCerto do tipo Boolean) {   /* Retorna o valor do elemento do Topo da Pilha P, caso a Pilha não estiver vazia. Caso a Pilha estiver vazia, DeuCerto retorna Falso. */

Se (Vazia (P)==Verdadeiro) Então DeuCerto = Falso Char ElementoDoTopo (parâmetro por referência P do tipo Pilha, parâmetro por referência DeuCerto do tipo Boolean) {   /* Retorna o valor do elemento do Topo da Pilha P, caso a Pilha não estiver vazia. Caso a Pilha estiver vazia, DeuCerto retorna Falso. */ Variável X do tipo Char; /* X armazenará o valor do elemento do Topo */ /* primeira solução: abre a TV com uma chave de fenda para aumentar o volume */ Se (Vazia (P)==Verdadeiro) Então DeuCerto = Falso Senão { X = P.Elementos[ P.Topo ]; /* pega o valor do elemento do Topo */ DeuCerto = Verdadeiro; Retorne X; }; /* segunda solução: aumenta o volume pelo botão de volume */ Senão { Desempilha ( P, X, DeuCerto); /* pega o valor do elemento do Topo */ Empilha ( P, X, DeuCerto); Retorne X; } }

Operações Primitivas e Não Primitivas Operações Primitivas de um Tipo Abstrato de Dados são aquelas que só podem ser implementadas através de uma solução dependente da estrutura de armazenamento. Operações Não Primitivas de um Tipo Abstrato de Dados são aquelas que podem ser implementadas através de chamadas a Operações Primitivas, possibilitando uma implementação independente da estrutura de armazenamento.

Projeto FreeCell: Pilha Burra ou Pilha Inteligente?

Diretrizes de Projeto Para manipular as Pilhas de Cartas, projete e utilize um TAD Pilha (seja uma Pilha Burra, seja uma Pilha Inteligente); A Aplicação em si e o TAD Pilha devem estar em unidades de software independentes, e em arquivos separados; A Aplicação (e outros módulos) deve(m) manipular o TAD Pilha exclusivamente através dos seus Operadores Primitivos - Empilha, Desempilha, Vazia, Cria e Cheia; Inclua no código do TAD Pilha exclusivamente ações pertinentes ao armazenamento e recuperação das informações sobre as Pilhas de Cartas.

Avanço de Projeto Exercício 2.11 Arquitetura de Software Exercício 2.12 Implementar uma Pilha Burra Exercício 2.13 Pilha Burra como uma Classe Exercício 2.14 Carta do Baralho Exercício 2.15 Pilha Intermediária Inteligente Exercício 2.16 Pilha Definitiva Inteligente Exercício 2.17 Definir Regras, Escolher Nome Exercício 2.18 Iniciar o Projeto da Interface

Comece a Desenvolver Seu FreeCell Agora! Faça um jogo legal! Faça um jogo que tenha a sua cara! Faça seu jogo ficar atrativo; distribua para os amigos; disponibilize publicamente; faça seu jogo bombar! Aprender a programar pode ser divertido! Estruturas de Dados com Jogos Aprender a programar pode ser divertido!