Programação II. Trabalho 2 Freecell

Documentos relacionados
Programação Aplicada de Computadores. Trabalho 1 Freecell

Estrutura de Dados Prof. a Mariella Berger. Trabalho 2 - Freecell

Compiladores Prof. a Mariella Berger. Trabalho 3 Analisador Semântico

Compiladores Prof. a Mariella Berger. Trabalho 1 Analisador Léxico

Compiladores Prof. a Mariella Berger. Trabalho 2 Analisador Léxico

Máquinas de Busca. Estruturas de Dados II Prof. a Mariella Berger. 1. Objetivo

Estruturas de Dados II. Caixeiro Viajante

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

08/09/10. Atividade Supervisionada: Programação de Computadores. Profa.: Alessandra Bussador

Programação II Primeiro Trabalho

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres

Processamento de Dados I - 05/1

Trabalho Prático 1. Prof. Raphael de O. Santos April 29, 2008

WikED! Na última década, um grande número de sistemas colaborativos apareceram

SME Introdução à Programação de Computadores Primeiro semestre de Trabalho: jogo Semáforo

Trabalho Prático Data de Entrega : 30 de Maio

Este trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

29/04/2015. Trabalho de Programação 3. Prof. Flávio Miguel Varejão. I. Descrição

Teoria das Filas /2

Sistema Rodoviário Tabajara

Trabalho de LP 14/03/2011. Prof. Flávio Miguel Varejão. I. Descrição

Universidade Federal do Espírito Santo - Departamento de Informática. Estruturas de Dados I INF09292

Guia de atividades para uma aula sobre Energia Mecânica e sua Conservação utilizando analogias

Trabalho de LP - C++ 19/05/2014. Prof. Flávio Miguel Varejão. I. Descrição do Problema

Universidade Federal do Espírito Santo - Departamento de Informática. Estruturas de Dados I INF09292

Primeiro Trabalho Prático Turma A. Descrição do Trabalho. Considere os seguintes dados a respeito de um livro:

Terceiro Trabalho Prático. Este trabalho tem como objetivo ordenar um arquivo de dados e implementar as operações cosequenciais de merging e matching.

Manual do Tenente Skat. Martin Heni Eugene Trounev Revisor: Mike McBride Tradução: Marcus Gama Revisão: Stephen Killing

Segundo Trabalho Prático Turma A

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -

1 Introdução. 2 Especificação

Universidade Estadual do Oeste do Paraná UNIOESTE Campus de Cascavel Colegiado de Ciência da Computação. Algoritmos Trabalho 3º Bimestre

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

Trabalho 1 ALGORITMOS E ESTRUTURAS DE DADOS I (SCC-202)

Inteligência Artificial Projecto 1

Trabalho Computacional Jogo da Forca

Fixação de conteúdo teórico

GRADUAÇÃO EM ANÁLISE E DESENVOLVIMENTO PROGRAMAÇÃO DE COMPUTADORES I Trabalho Final Anual TFA

Trabalho Prático. Primeira Parte do Trabalho (Parte I): peso 40%

Primeira Parte do Trabalho Prático (Parte I) Valor: 30% Descrição do arquivo de dados

2. Descrição do problema

2 Segmentação de imagens e Componentes conexas

SCC-ICMC-USP. Trabalho em Grupo 1 SCC-0205

Manual do KPatience 2

Manual do KPatience 2

Adição de probabilidades. O número de elementos da união dos conjuntos A e B n(aub) = n(a B) Dividindo os dois membros por n(e):

SCC0504 Programação Orientada a Objetos Prof. Luiz Eduardo Virgilio da Silva / Estevam Arantes (Monitor) Projeto

Universidade Federal do ABC Bacharelado em Ciência e Tecnologia Disciplina: Processamento de Informação Data: 31/06/2010. Figura 1 - Labirinto

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Segundo Trabalho Prático

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Sistemas Operacionais I 2016/1

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

SCC-602 Algoritmos e Estruturas de Dados 1 (Engenharia de Computação) Profª. Maria das Graças Volpe Nunes. Trabalho Prático 2

Ferramenta automática de correção de códigos em C Elgio Schlemer Setembro de 2017

É neste ponto que entra o conceito de lógica de programação.

Aula 8 Especificação de Requisitos

Especificação do Trabalho Prático

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

Não utilize caracteres acentuados ou especiais para nomes de pastas e arquivos.

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

Análise do problema. Desenvolvimento de programas. Desenvolvimento do algoritmo. Análise do problema

Identificadores Nome de variáveis, constantes, métodos, etc...

Gauss-Seidel para Solução de Sistemas com Matrizes Banda Usando Armazenamento Especial

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

MAC 115 Introdução à Ciência da Computação ROTHELO

Usando a geração de boletos

Algoritmos e Estruturas de Dados II. Trabalho Prático 1

Pseudocódigo e Visualg

REGULAMENTO TÉCNICO CACHETA

CI218 - Trabalho - 2 o sem/2016

Desenvolvimento de programas

IV.2 Aspectos Léxicos Convencionais

Trabalho Prático. Descrição Considere os seguintes dados a respeito de uma pessoa:

Trabalho de Programação 3 e LP

III Congresso Regional de Emergências Médicas (CREMED-CO)

Unidade de Processamento Baseado em Pilha Fundamentos de sistemas digitais

2ª. Competição Tecnológica (Outubro/2010)

Apresente a tabela de multiplicação na lousa. Discussão com a Classe. Professor apresent a. Alunos prat icam. Encerrament o.

Segunda Parte do Trabalho Prático (Parte II) Valor: 60% Descrição do índice

Segundo Trabalho Prático

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

REGULAMENTO JACKPOT SIERRA

1 Como compilar seu código? 2 Comandos de terminal:

Proposta de teste de avaliação

Comunicado: Janela de Manutenção do Sistema GAR 09/08/2012. Departamento de Produtos Agosto/2012

Primeira Parte do Trabalho Prático (Parte I) Valor: 40% Descrição do arquivo de dados

Trabalho Prático. Descrição do arquivo de dados

INE5408 Estruturas de Dados. Apresentação e Programa da Disciplina

BCC202 - Estrutura de Dados I

Memória secundária. Memória secundária

Especificação do Trabalho Prático

EDITAL DE SUBMISSÃO DE TRABALHOS CIENTÍFICOS XI SEMANA DE ENFERMAGEM II SEMINÁRIO VER-SUS IMPERATRIZ

Transcrição:

Programação II Trabalho 2 Freecell 1. Objetivo O objetivo deste trabalho é implementar o jogo Freecell utilizando o Tipo Abstrato de Dados (TAD) Pilha (stack). Freecell é um jogo de cartas que tem por finalidade agrupar todas as cartas de mesmo naipe (paus, copas, ouro ou espada) em 4 pilhas, seguindo algumas regras. O primeiro passo para começar o jogo é embaralhar as cartas e distribuí las sobre a mesa. A figura abaixo representa uma configuração inicial da mesa. As cartas são embaralhadas e distribuídas em 8 pilhas (nomeadas aqui como pilhas A, B, C,..., H); Há 4 pilhas na mesa (nomeadas aqui como 0, 1, 2 e 3) onde pode se agrupar as cartas pelo naipe; Há ainda 4 espaços reservas (nomeados aqui como W, X, Y e Z) para que se possa colocar uma carta de quaisquer pilhas; A idéia é movimentar todas as cartas contidas nas pilhas A,..., H para as pilhas 0,..., 3, podendo se utilizar os espaços W,..., Z para armazenamento temporário de cartas. Algumas regras devem ser seguidas: A ordem crescente das cartas é: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K; A inserção de cartas nas pilhas A,..., H deve respeitar a ordem decrescente e ainda duas cartas adjacentes não devem ter a mesma cor: preta (paus e espada) e vermelha (ouro e copas). Como exemplo, a seguinte ordem de cartas é aceita: Rei de paus (K), Dama de ouro (Q), Valete de espada (J), 10 de ouro, 9 de

espada, 8 de copas. Assim a última carta colocada na pilha é 8 de copas. Se a pilha estiver vazia, qualquer carta é aceita; Em cada uma das pilhas 0,..., 3 deve haver apenas cartas de mesmo naipe e em ordem crescente: por exemplo, na pilha 0, primeiro deve se colocar um às de copas, depois, sobre o às de copas, deve se colocar um 2 de copas, e assim por diante; Cada espaço W,..., Z pode armazenar no máximo uma carta; As cartas devem ser movimentadas seguindo a definição de pilhas: a última carta colocada na pilha deve ser a primeira a ser retirada da pilha. 2. Implemetação O seu trabalho é fazer um programa em C que implemente ao menos um TAD (com métodos push e pop) e simule o jogo Freecell. O nome das 52 cartas já embaralhadas e os comandos de movimentação de cartas serão repassados ao programa pela entrada padrão (stdin). O nome de uma carta é formado por 2 caracteres: o primeiro caracter indica o naipe da carta ('0' = copas, '1' = paus, '2' = ouro, '3' = espada) e o segundo caracter indica o valor da carta ('A' = às, 'B' = 2, 'C' = 3,..., 'J' = 10, 'K' = Valete, 'L' = Dama, 'M' = Rei). Por exemplo, '1K' refere se à carta Valete de paus. Inicialmente, essas cartas devem ser colocadas nas pilhas A,..., H uma a uma, ou seja, a primeira carta do baralho deve ir para a pilha A, a segunda deve ir para a pilha B, e assim por diante até a pilha H e retornando para A. Esse processo deve ser feito para todas as 52 cartas de entrada. Um comando de movimentação de carta de um lugar para outro é também formado por 2 caracteres. O primeiro caracter indica a pilha (ou espaço) de origem (de onde deve se retirar uma carta) e o segundo caracter indica a pilha (ou espaço) de destino (onde a carta deve ser colocada). Por exemplo, o comando 'A0' indica que deve se retirar uma carta da pilha A e colocá la na pilha 0, e o comando '0X' indica que deve se retirar a carta que está na pilha 0 e colocá la no espaço X. Qualquer movimentação inválida deve ser simplesmente ignorada. O comando '' indica que deve ser impresso na tela o estado atual das pilhas A,..., H. O estado de uma pilha é o nome da última carta colocada na pilha ('' indica pilha vazia). Entrada: Veja o exemplo a seguir: 0A 0B 0C 0D 0E 0F 0G 0H 0I 0J 0K 0L 0M 1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 2A 2B 2C 2D 2E 2F 2G 2H 2I 2J 2K 2L 2M 3A 3B 3C 3D 3E 3F 3G 3H 3I 3J 3K 3L 3M HW H0

CX CY CZ C1 C2 Z1 Z3 1H 3G Saída: 3J 3K 3L 3M 3F 3G 3H 3A 3J 3K 3L 3M 3F 3G 3H 2F 3. Documentação Você deverá documentar seu trabalho no arquivo LEIAME.txt. Sua documentação deve conter: Introdução: descricao do problema a ser resolvido e visão geral sobre o funcionamento do programa. Implementação: descrição da implementação do programa (devem ser detalhadas as estruturas de dados implementadas, o funcionamento das principais funções utilizadas, o formato de entrada e saida de dados, bem como as decisões tomadas relativas aos casos e detalhes de especificação que porventura estejam omissos no enunciado). Conclusão: comentarios gerais sobre o trabalho e as principais dificuldades encontradas em sua implementação. Bibliografia: bibliografia utilizada.

4. Avaliação A nota do trabalho terá um total de 10 pontos. A pontuação restante será calculada automaticamente de acordo com a percentagem de erros/acertos em um benchmark pré definido; Serão contemplados com nota zero os trabalhos que se enquadrarem em uma ou mais situações abaixo: Plágio; Programa não compila; Não está de acordo com as especificações (a não utilização de pilhas, por exemplo). 5. Entrega Este trabalho deve ser feito em grupo de até 2 componentes e entregue até o dia 22/11/2011, às 23:59:59hs. Ele deve ser enviado para mberger@inf.ufes.br. O assunto da mensagem deve ser : prog2:trab2:<nome1>:<nome2> Ex: prog2:trab2:jociel Andrade:Mariella Berger O nome do arquivo com o trabalho enviado em anexo deve ser trab2.tar.gz. Ele será descompactado da seguinte forma: tar xvzf trab2.tar.gz e deverá gerar um arquivo chamado trab2.c com o código do programa e o arquivo de documentação LEIAME.txt. Ao digitar: gcc otrab2 trab2.c deve ser gerado um executável chamado trab2. O recebimento dos trabalhos é automatizado. Siga as instruções à risca pois algum erro na submissão pode inviabilizar a entrega do seu trabalho. Não escreva o seu nome com caracteres estendidos (á, ç, etc.). Não utilize contas de e mail do HOTMAIL, TERRA ou BOL pois as mensagens enviadas por esses servidores não seguem o padrão. Assim, o programa de recebimento automático não consegue detectar o seu e mail.

Não deixe para entregar seu trabalho no último instante. Você poderá perder o prazo e ter seu trabalho invalidado. 3. Observação Importante Mais detalhes serão discutidos em sala de aula. Considerações feitas em sala terão mais relevância do que as contidas nesta especificação. 6. Referências 7. Dúvidas KDE Patience Game (KPatience para Linux) 1995, Paul Olav Tvete Em caso de dúvidas no trabalho contate me por email.