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

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

Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006.

Apresentações semelhantes


Apresentação em tema: "Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006."— Transcrição da apresentação:

1 Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006

2 Programming in Alice © 2006 Dr. Tim Margush 2 Estruturas de Controle Sequencial Sequencial –doTogether{} and doInOrder{} Seleção Seleção –If Repetição Repetição –While, loop

3 Programming in Alice © 2006 Dr. Tim Margush 3 Mecanismos de Controle Expressões e Funções Expressões e Funções –Representando valores Valores podem ser numeros, Booleans ou outros tipos Valores podem ser numeros, Booleans ou outros tipos Uma expressão booleana e funções são usadas para controlar a seleção(if) e repetição(while) Uma expressão booleana e funções são usadas para controlar a seleção(if) e repetição(while) –if (expressão é true) faz algo –while (expressão é true) faz algo

4 Programming in Alice © 2006 Dr. Tim Margush 4 Métodos x Funções Métodos representam uma ação Métodos representam uma ação –object_name.method_name( ); Funções representam valores Funções representam valores –object_name.function_name( ); –Funções são usadas como argumentos ou como expressões para seleção e repetição Algo acontece ao objeto (Ex: mover, girar) Retorna um valor dependendo das propriedades de um objeto

5 Programming in Alice © 2006 Dr. Tim Margush 5 Valores Em programação valores podem ser de diferentes tipos Em programação valores podem ser de diferentes tipos –Tipos comuns são: numeros, letras, Booleans, strings, e objetos –Numeros normalmente são divididos entre integers(inteiros) e float(reais), as vezes podendo ter até outros tipos Misturar tipos normalmente causa problemas Misturar tipos normalmente causa problemas

6 Programming in Alice © 2006 Dr. Tim Margush 6 Funções embutidas Cada objeto tem um conjunto de funções embutidas que podem ser acessados na aba de funções do objeto Cada objeto tem um conjunto de funções embutidas que podem ser acessados na aba de funções do objeto –Funções estão agrupadas por funcionalidades (Ex: distância, tamanho, posição dos eixos, etc..) Uma chamada da função retorna a resposta para uma pergunta(ex: Distância do objeto até o chão Uma chamada da função retorna a resposta para uma pergunta(ex: Distância do objeto até o chão

7 Programming in Alice © 2006 Dr. Tim Margush 7 Funções úteis object.distanceTo( ) object.distanceTo( ) –Distância entre o objeto e o alvo Movimentação original (1m) Arraste a função para substituir o parametro(1m) Escolha o alvo como parametro Nova movimentação com a distância entre o objeto e o alvo

8 Programming in Alice © 2006 Dr. Tim Margush 8 Evitando colisões Para determinar quando dois objetos estão próximos você precisa considerar o volume e a posição do seu centro (distanceTo x colisão) Para determinar quando dois objetos estão próximos você precisa considerar o volume e a posição do seu centro (distanceTo x colisão) distanceTo() perto Centro perto da traseira do sapo A cabeça vai mais alto que a cauda

9 Programming in Alice © 2006 Dr. Tim Margush 9 Tricks para colisão Em conjunto com distanceTo, considere… Em conjunto com distanceTo, considere… x.distanceAbove(y) x.distanceAbove(y) –mede a distância vertical entre a base de x e o topo de y x.distanceBelow(y) x.distanceBelow(y) –Amede a distância vertical entre o topo de x e a base de y Veja também Veja também –distanceToTheLeftOf –distanceToTheRightOf –distanceInFrontOf –distanceBehind y x

10 Programming in Alice © 2006 Dr. Tim Margush 10 Usando o Editor Para usar uma função como argumento: Para usar uma função como argumento: –Primeiro crie a instrução com um simples argumento (ex 1m) –Arraste a função para o lugar do argumento para substituí-lo pelo retorno da função Você pode aplicar também funções aritméticas ao retorno da função clicando na seta no final da função Você pode aplicar também funções aritméticas ao retorno da função clicando na seta no final da função Clique, depois escolha a operação

11 Programming in Alice © 2006 Dr. Tim Margush 11 Dimensões Objetos tem 3 dimensões Objetos tem 3 dimensões Voce pode determinar o tamanho do box do objeto utilizando essas funções: Voce pode determinar o tamanho do box do objeto utilizando essas funções: –obj.getWidth() –obj.getHeight() –obj.getDepth() Dimensões são alteradas quando sub- partes se movem

12 Programming in Alice © 2006 Dr. Tim Margush 12 Execução condicional Alice usa a estrutura IF-ELSE Alice usa a estrutura IF-ELSE –if (condição é true){ faz isso faz isso –}else{ faz outra coisa faz outra coisa –} Perceba esses dois blocos Perceba esses dois blocos –SE (também chamado THEN/IF) –SENÃO (também chamado ELSE) condição Booleana SE (THEN/IF) SENÃO (ou ELSE) truefalse

13 Programming in Alice © 2006 Dr. Tim Margush 13 Funções Booleanas x.isSmallerThan(y) x.isSmallerThan(y) x.isWiderThan(y) x.isWiderThan(y) x.isAbove(y) x.isAbove(y) x.isBehind(y) x.isBehind(y) ELSE pode ser deixado em branco Se necessário, o treinador precisa abaixar o braço para passar na porta

14 Programming in Alice © 2006 Dr. Tim Margush 14 Operadores relacionais Comparação entre dois numeros é algo comum: Comparação entre dois numeros é algo comum: –if (x == y){ se x é igual a y se x é igual a y –if (x != y){ se x é diferente de y se x é diferente de y –if (x > y){ se x é maior de y se x é maior de y –if (x >= y){ se x é maior ou igual de y se x é maior ou igual de y

15 Programming in Alice © 2006 Dr. Tim Margush 15 Usando comparações Utilizando comparações: Utilizando comparações: –Selecione a aba de funções do objeto World –Arraste a função de comparação desejada para o código –Escolha os valores numéricos Arraste World!

16 Programming in Alice © 2006 Dr. Tim Margush 16 Usando comparações Arraste as propriedades desejadas para substituir os valores numéricos Arraste as propriedades desejadas para substituir os valores numéricos

17 Programming in Alice © 2006 Dr. Tim Margush 17 Repetição Em Alice existem quatro estruturas de repetição Em Alice existem quatro estruturas de repetição –Loop(FOR) utiliza um contador para controlar as repetições index < times index = 0 código true false index++ for (int index=0; index<times; index++){ bloco de código } contador condição de parada incremento do contador

18 Programming in Alice © 2006 Dr. Tim Margush 18 Ande 5 passos

19 Programming in Alice © 2006 Dr. Tim Margush 19 Outras estruturas de repetição Alice também tem o while Alice também tem o while while(condição é true){ while(condição é true){ –Bloco de código } condição código true false Em Alice existe um for all que repete a ação para cada item em uma lista. As ações podem ser feitas sequenciais ou em paradalelo(todas juntas)

20 Programming in Alice © 2006 Dr. Tim Margush 20 Exemplo: Caça ao Coelho Lobo caça o coelho! Lobo caça o coelho! http://www.cs.uakron.edu/~margush/289Alice/hunt.a2w http://www.cs.uakron.edu/~margush/289Alice/hunt.a2w Loop

21 Programming in Alice © 2006 Dr. Tim Margush 21 Testando a proximidade Quando o coelho está perto da cabeça do lobo, ele grita! Quando o coelho está perto da cabeça do lobo, ele grita! –Note o uso da comparação como uma expressão booleana na condição do IF abaixo

22 Programming in Alice © 2006 Dr. Tim Margush 22 Ficando visível! A função isFarFrom que diz se o coelho está longe do centro do chão é utilizada para fazê-lo voltar ao centro A função isFarFrom que diz se o coelho está longe do centro do chão é utilizada para fazê-lo voltar ao centro (SENÃO/ELSE)Caso contrário ele utiliza a função Random para escolher uma direção aleatória (turn left, entre -0.25 e 0.25) (SENÃO/ELSE)Caso contrário ele utiliza a função Random para escolher uma direção aleatória (turn left, entre -0.25 e 0.25)

23 Programming in Alice © 2006 Dr. Tim Margush 23 Gerando numeros aleatórios Random.nextDouble() é uma função do objeto mundo Random.nextDouble() é uma função do objeto mundo –Retorna um numero entre um valor minimo e máximo A faixa de valores padrão é entre 0 e 1 A faixa de valores padrão é entre 0 e 1 Escolha uma faixa maior e veja o resultado Escolha uma faixa maior e veja o resultado O Coelho vira pra esquerda algum valor entre -0.25 e 0.25 O Coelho vira pra esquerda algum valor entre -0.25 e 0.25 –Virar pra esquerda com um valor negativo na verdade vai fazer o coelho virar para direita

24 Programming in Alice © 2006 Dr. Tim Margush 24 A Caça! O Lobo sempre vira em direção a última posição do coelho O Lobo sempre vira em direção a última posição do coelho –A movimentação do lobo está dentro do dpTogether, junto com o movimento do coelho –O Coelho se move um pouco mais rapido que o lobo

25 Programming in Alice © 2006 Dr. Tim Margush 25 Melhorias? Mover as pernas Mover as pernas –Coelho e lobo Virar a cabeça do coelho para olhar para o lobo Virar a cabeça do coelho para olhar para o lobo –Algumas vezes olha pra trás para ver se o lobo está muito longe Movimentar a boca do lobo Movimentar a boca do lobo –Só quando chega perto do coelho


Carregar ppt "Programando com Alice Tim Margush Department of Computer Science University of Akron © 2006."

Apresentações semelhantes


Anúncios Google