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

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

Moonlander Projeto Computacional. Função: pilotar nave terreno pilotar nave terreno = (estado1,estado2) Onde estado1 representa o foguete horizontal e.

Apresentações semelhantes


Apresentação em tema: "Moonlander Projeto Computacional. Função: pilotar nave terreno pilotar nave terreno = (estado1,estado2) Onde estado1 representa o foguete horizontal e."— Transcrição da apresentação:

1 Moonlander Projeto Computacional

2 Função: pilotar nave terreno pilotar nave terreno = (estado1,estado2) Onde estado1 representa o foguete horizontal e estado2 representa o foguete horizontal Terreno é uma lista de tuplas de três pontos Nave (xatual,yatual,vx,vy,fx,fy,c)

3 Uma estratégia para cada terreno A função pilotar se comportara de uma forma diferente para cada terreno,por exemplo,desligara o foguete em um quando atingir uma certa velocidade ou uma certa posição.

4 Terreno 2 Terreno proposto no trabalho(terreno ideal,ou seja plano).

5 Usaremos a posição para determina quando o foguete desligara. pilotar nave terreno = (estado1,estado2) where estado1 = if (r1 nave)<(-0.165) then 0 else -1 estado2 = 0

6

7 Usaremos a posição para determina quando o foguete desligara. pilotar nave terreno = (estado1,estado2) where estado1 = if (r1 nave)<(-0.1) then 0 else -1 estado2 = 0 Aumento da posição,provoca o desligamento mais cedo do foguete horizontal,logo ele pousa mais perto da posição inicial. Assim sucessivamente.

8

9

10

11 Conclusão O foguete pousara para esquerda no intervalo de posições (-0.165,0.0).

12 E para direita? Será necessário muda a posição foguete horizontal. Agora ele pousara para o intervalo (0.0005,0.165) pilotar nave terreno = (estado1,estado2) where estado1 = if (r1 nave)>(0.0005) then 0 else 1 estado2 = 0

13

14 Terreno3 (terreno com obstáculo)

15 pilotar nave terreno = (estado1,estado2) where estado1 = if (r1 nave)>(0.45) then -1 else = 1 estado2 = 0

16 ordenaAreaPouso nave terreno Usando mergesort para ordena. intercala xs ys = if null xs || null ys then xs++ys else if snd (head xs) >= snd(head ys) then (head ys):(intercala xs (tail ys)) else (head xs):(intercala (tail xs) ys) ms xs = if null (tail xs) then xs else intercala (ms ys) (ms zs) where ys = take x xs zs = drop x xs x = div (length xs) 2

17 Funções auxiliares Define as inclincoes do terreno inclinacao a b c d = ((b-d)/(a-c)) -- Uma inclinacão para cada lado do triangulo. inclinacao1 (a,b,c) = inclinacao (fst(retira1(a,b,c))) (snd(retira1(a,b,c))) (fst(retira2(a,b,c))) (snd(retira2(a,b,c))) inclinacao2 (a,b,c) = inclinacao (fst(retira1(a,b,c))) (snd(retira1(a,b,c))) (fst(retira3(a,b,c))) (snd(retira3(a,b,c))) inclinacao3 (a,b,c) = inclinacao (fst(retira2(a,b,c))) (snd(retira2(a,b,c))) (fst(retira3(a,b,c))) (snd(retira3(a,b,c))) --Funcoes para manipular tripla retira1 (a,b,c) = a retira2 (a,b,c) = b retira3 (a,b,c) = c retira4 (a,b,c,d,e,f,g) = (a,b) -- retira os dois primeiros termos da nave

18 pontomedio x y = ((fst x + fst y)/2,(snd x + snd y)/2) -- Fornece a distancia entre dois pontos distancia x y = sqrt((fst x- fst y)^2+ (snd x- snd y)^2)

19 Função pousoSeguro pousoSeguro xs = [(terrenovalido (retira1 x,retira2 x,retira3 x))|x<- xs,(terrenovalido1 (retira1 x,retira2 x,retira3 x)] Retorna os terrenos onde é possivel o pouso terrenovalido (a,b,c) = if inclinacao1 (a,b,c) =0 && snd a > snd c && snd b > snd c then [(a,b)] else if inclinacao2 (a,b,c) =0 && snd a > snd b && snd c > snd b then [(a,c)] else if inclinacao3 (a,b,c) =0 && snd c > snd a && snd b > snd a then [(b,c)] else [] terrenovalido1 (a,b,c) =(terrenovalido (a,b,c))/=[]

20 areaPousoedistancia nave terreno Retorna uma dupla contendo o terreno e a distancia da nave até o terreno. areaPousoedistancia nave terreno =[(head y,(distancia (pontomedio (retiradupla1 (head y)) (retiradupla2 (head y))) (retira4 (nave))))|y<-(pousoSeguro (terreno))]

21 ordenaAreaPouso nave terreno =ms (areaPousoedistancia nave terreno)


Carregar ppt "Moonlander Projeto Computacional. Função: pilotar nave terreno pilotar nave terreno = (estado1,estado2) Onde estado1 representa o foguete horizontal e."

Apresentações semelhantes


Anúncios Google