Ensino da Programação
2012-04-17 (criac.)

Objectivos:


O objectivo principal desta ficha é familiarizar o aluno com a utilização e manipulação de listas e algumas estruturas de controlo.

Recursos:

Recursos disponíveis para a realização da ficha:

Exercícios:

  1. Torna o programa mais "inteligente"
  2. Cálculo de distâncias
  3. Jogo de Condução

by jcr

Exercício Nº1: Torna o programa mais "inteligente"

Fig.1: O Adivinho


A solução apresentada por Rui Bento para o problema do "Adivinha o número" está correcta.

No entanto, assume que o utilizador é bem comportado.
  1. O que é que precisaria de acrescentar para que o programa indicasse ao utilizador que está a fornecer respostas contraditórias?
  2. Tente acrescentar o novo raciocínio ao programa e teste-o.


Exercício Nº2: Cálculo de distâncias

Fig.2: Comandos que poderás utilizar


Este é mais um pequeno problema que poderá servir mais tarde para ser incorporado num projecto maior.

Não é necessário criar nenhum cenário, apenas precisarás de um sprite. Usa um à tua escolha.

Tenta realizar as seguintes alíneas:
  1. Tenta fazer com que o sprite siga o rato (sempre que o botão deste é premido o sprite desloca-se para essa posição);
  2. Cria uma variável distância que vai sendo incrementada com o valor da distância percorrida pelo sprite (assume o pixel como a unidade de medida, usa o teorema de Pitágoras para a fórmula da distância ou o sensor que calcula a distância);
  3. Introduz mais realismo: o tempo de deslocação do sprite varia consoante a distância ao ponto de destino.


Exercício Nº3: Jogo de Condução

Fig.3: Um possível cenário


A ideia deste exercício é implementares um jogo de condução por entre obstáculos que poderão ser imóveis ou móveis.

Tenta realizar as seguintes alíneas:
  1. Seleciona/cria um sprite para o teu jogo;
  2. Coloca-o em movimento contínuo fazendo com que seja reativo às setas do teclado para mudar de direção;
  3. Cria um conjunto de sprites "bons" e um conjunto de sprites "maus" (10 em cada conjunto);
  4. Faz com que apareçam em posições aleatórias do monitor;
  5. Quando o teu sprite tocar num sprite "bom" ganha 1 ponto e o sprite bom desaparece;
  6. Se tocar num sprite "mau" perde 1 ponto e o sprite mau desaparece;
  7. Faz com que os sprites bons e maus mudem de posição de x em x segundos;
  8. O jogo deverá terminar quando: a pontuação tiver atingido -3 ou 10 ou ainda se o utilizador carregar na tecla "P";
  9. Sabendo que as variáveis preservam os seus valores entre as execuções do programa, pensa como poderias implementar uma lista de pontuações obtidas: pretende-se guardar o nome do jogador, a data e a pontuação obtida.