(define (aplica_margarida t planeta posicao n limite_vm probab_muta planeta_futuro) (define efeito 0) (define (aplica_margarida_aux t planeta posicao n limite_vm probab_muta planeta_futuro) (cond((string=? "morre" efeito) (morre_margarida planeta posicao)) ((string=? "nada" efeito) planeta_futuro) ((posicao? efeito) (nasce_margarida planeta_futuro efeito (nova_margarida (novo_albedo (albedo_margarida (obtem_margarida planeta posicao)) probab_muta NPA) (tempmin_margarida (obtem_margarida planeta posicao)) (tempmax_margarida (obtem_margarida planeta posicao))))) (else "Erro de input."))) (if (and (integer? t) (>= t 0) (planeta? planeta) (posicao? posicao) (linhas_planeta planeta) (colunas_planeta planeta) (integer? n) (>= n 0) (integer? limite_vm) (>= limite_vm 0) (rational? probab_muta) (<= 0 probab_muta 1) (planeta? planeta_futuro)) (if (posicao_valida? posicao (linhas_planeta planeta) (colunas_planeta planeta)) (begin (set! efeito (efeito_margarida t planeta posicao n limite_vm)) (aplica_margarida_aux t planeta posicao n limite_vm probab_muta planeta) "Erro de consistĂȘncia.") "Erro de input.")))